|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.08.2016, 03:21 | #1 |
Пользователь
Регистрация: 02.01.2014
Сообщений: 12
|
Com port и С++
Хочу отослать данные по ком порту на контроллер.Вот только беда,не отсылается всё сообщение,а только один символ.Как это исправить?
LPCTSTR sPortName = L"COM4"; CString ed=L"asdasd"; CString q=L"k"; hSerial = ::CreateFile(sPortName,GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FIL E_ATTRIBUTE_NORMAL,0); ed=ed+q; char buffer[30]; char *b = (char*)ed.GetBuffer(); strcpy(buffer,b); DCB dcbSerialParams = {0}; dcbSerialParams.DCBlength=sizeof(dc bSerialParams); dcbSerialParams.BaudRate=CBR_9600; dcbSerialParams.ByteSize=8; dcbSerialParams.StopBits=ONESTOPBIT ; dcbSerialParams.Parity=NOPARITY; DWORD dwSize = sizeof(buffer); DWORD dwBytesWritten; LPOVERLAPPED ov; BOOL iRet = WriteFile (hSerial,buffer,dwSize,&dwBytesWrit ten ,NULL); CloseHandle(hSerial); |
25.08.2016, 08:01 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Подсказка:
char *b = (char*)ed.GetBuffer(); strcpy(buffer,b); strcpy копирует строчку до первого нуля, и натыкается на него еще в первой же букве, поскольку это уникод. Поменяйте тип проекта и/или не используйте LPTSTR / CString |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
com port | kollfer | Общие вопросы Delphi | 3 | 12.04.2012 17:34 |
com port | player891 | Общие вопросы Delphi | 0 | 21.03.2012 19:26 |
ip:port | Reglament_ | Работа с сетью в Delphi | 3 | 29.12.2011 18:50 |
Port | Diunix | SQL, базы данных | 0 | 18.10.2011 10:06 |
Com Port | Pepelyaev | Общие вопросы Delphi | 5 | 26.11.2006 22:31 |