реклама на сайте
подробности

 
 
> API функция WriteFile
LAS9891
сообщение Aug 26 2015, 06:47
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



Привет всем. Пробую написать приложение для общения с COM-портом через API функции. Есть такой код в C++ Builder 6:
CODE
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "COMport.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

HANDLE Com_Handle;




void __fastcall TForm1::ConnectBtnClick(TObject *Sender)
{
//-----------------------------------------------------------------
LPCTSTR lpFileName = "COM1";
DWORD dwDesiredAccess = GENERIC_READ|GENERIC_WRITE; // 0xС0000000
DWORD dwShareMode = NULL;
LPSECURITY_ATTRIBUTES lpSecurityAttributes = NULL;
DWORD dwCreationDistribution = OPEN_EXISTING; // 0x00000003
DWORD dwFlagsAndAttributes = NULL;
HANDLE hTemplateFile = NULL;
//-----------------------------------------------------------------


Com_Handle = CreateFile(lpFileName,
dwDesiredAccess,
dwShareMode,
lpSecurityAttributes,
dwCreationDistribution,
dwFlagsAndAttributes,
hTemplateFile);
}
//---------------------------------------------------------------------------




void __fastcall TForm1::SendBtnClick(TObject *Sender)
{

BOOL SendState ;

LPCVOID lpBuffer; // Указатель на буфер, содержащий данные, которые будут записаны в файл.
DWORD nNumberOfBytesToWrite ;//= 1;// Число байтов, которые будут записаны в файл.
LPDWORD lpNumberOfBytesWritten; // Указатель на переменную, которая получает число записанных байтов
LPOVERLAPPED lpOverlapped; // Указатель на структуру OVERLAPPED



SendState = WriteFile(Com_Handle,
lpBuffer,
nNumberOfBytesToWrite,
lpNumberOfBytesWritten,
lpOverlapped);


//CloseHandle(Com_Handle);

}
//---------------------------------------------------------------------------




void __fastcall TForm1::Button3Click(TObject *Sender)
{

}
//---------------------------------------------------------------------------


На форме расположены 3 кнопки. Кнопка ConnectBtn открывает COM-порт. А кнопкой SendBtn пробую что-нибудь отправить. Проект компилируется и запускается, но при нажатии на кнопку SendBtn возникает error вот в таком окне:
Прикрепленное изображение


Что я делаю не так в функции WriteFile? Как исправить?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 08:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01913 секунд с 7
ELECTRONIX ©2004-2016