Название: Ошибка при работе с CreateFile Отправлено: BNN от Ноябрь 09, 2005, 10:30 Код:
При компиляции выдается ошибка: cannot convert `const char*' to `const WCHAR*' for a rgument `1' to `void* CreateFileW(const WCHAR*, DWORD, DWORD, _SECURITY_ATTRIBUT ES*, DWORD, DWORD, void*)' Сколько не искал ни у кого вроде таких ошибок не возникает. Компилирую gcc (MinGW). В чем проблема? Название: Re: Ошибка при работе с CreateFile Отправлено: BNN от Ноябрь 09, 2005, 10:52 Цитата: "BNN" Код:
При компиляции выдается ошибка: cannot convert `const char*' to `const WCHAR*' for a rgument `1' to `void* CreateFileW(const WCHAR*, DWORD, DWORD, _SECURITY_ATTRIBUT ES*, DWORD, DWORD, void*)' Нашел! В MInGW в файле winbase.h обьявлены две функции CreateFile: Код: WINBASEAPI HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE); В программе нужно указывать какую функцию используешь, в зависимости от типа аргумента. Я указал: Код: CommPort=CreateFileA( "COM1",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); и все заработало. Название: Ошибка при работе с CreateFile Отправлено: Admin от Ноябрь 09, 2005, 14:41 еще не все
в WINXP работать не будет так надо Код: HANDLE handl; Название: Ошибка при работе с CreateFile Отправлено: pastor от Февраль 04, 2006, 00:47 Цитата: "Admin" еще не все в WINXP работать не будет так надо Код: HANDLE handl; Такой вызов функции Код: CreateFile( "COM1",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL) прекрасно работает под WinXP. Проверено 1000 раз!!! Дело в следующем: если мы пытаемся открыть порт с именами COM1-COM9, то приставку \\.\ можно не писать (система сама это поправит), а если мы пытаемся открыть порт с номером больше 9, то здесь действительно произойдет ошибка открытия порта. В этом случае необходимо дописать данную приставку. |