Russian Qt Forum
Ноябрь 23, 2024, 17:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с com- portom WinApi  (Прочитано 3109 раз)
tw333k
Гость
« : Октябрь 11, 2010, 12:46 »

Собственно не получается открыть порт
Код:
	// Открытие порта 
char path[]={'\\','\\','.','\\','C','O','M',numPort+'0',0};
    HANDLE  h=CreateFile(path,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_FLAG_NO_BUFFERING,0);

выдаёт ошибку 1>c:\к1\blabla\blabla\testing.cpp(6) : error C2664: CreateFileW: невозможно преобразовать параметр 1 из 'char [9]' в 'LPCWSTR'
1>        Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции


и вообще подскажите где можно посмотреть примеры работы с com-portom под winApi
Записан
Barmaglodd
Гость
« Ответ #1 : Октябрь 11, 2010, 14:03 »

Проблема не в COM-порте Подмигивающий
Либо не используй unicode при сборке, либо читай про TCHAR Подмигивающий
Это вообще супер: numPort+'0', А если номер больше 9?
Записан
Barmaglodd
Гость
« Ответ #2 : Октябрь 11, 2010, 14:03 »

Про TCHAR в любом случае почитай Улыбающийся
Записан
Alex_cs_gsp
Гость
« Ответ #3 : Октябрь 11, 2010, 15:56 »

Код:
std::wstring _FormatPortName(unsigned uPortNum, bool bUNC);


int main()
{
    const std::wstring kwstrPortName(_FormatPortName(uPortNum, true));


     HANDLE hPort = CreateFile(
kwstrPortName.c_str(),
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0/*FILE_FLAG_OVERLAPPED*/,
0
);

if (hPort == INVALID_HANDLE_VALUE)
throw CComPortError();


//....

return 0;
}



std::wstring _FormatPortName(unsigned uPortNum, bool bUNC)
{
const unsigned kuBuffSize = 12;
wchar_t wszPortName[kuBuffSize];
*wszPortName = L'0';

swprintf_s(wszPortName, kuBuffSize, bUNC ? L"\\\\.\\COM%u" : L"COM%u", uPortNum);

return wszPortName;
}

« Последнее редактирование: Октябрь 11, 2010, 16:00 от Alex_cs_gsp » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 21.