VC++2005 で シリアルポートがやっと使えるようになりました。
VC++6.0 で動いていたソースですが、 VC++2005 上でコンパイルすると、CreateFile でエラーが発生します。
[ソース]
Shandle = CreateFile( "COM1" , GENERIC_READ | GENERIC_WRITE , 0 , NULL , OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , NULL );
[エラー]
error C2664: 'CreateFileW' : 1 番目の引数を 'char [256]' から 'LPCWSTR' に変換できません。
そこで、エラーがでないようにキャストするとエラーは無くなります。
[ソース]
Shandle = CreateFile( (LPCWSTR)"COM1" , GENERIC_READ | GENERIC_WRITE , 0 , NULL , OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , NULL );
しかし、ハンドルが取得できませんでした。
■解決方法
VC++2005 で CreateFile と記述すると、CreateFileW になってしまうため、"COM1"などのシリアルポートのハンドルが取得できなくなると思います。
そこで、 CreateFileA を使用します。
[ソース]
Shandle = CreateFile( "COM1" , GENERIC_READ | GENERIC_WRITE , 0 , NULL , OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , NULL );
これで、ハンドルが正常に取得できるようになりました。
0 件のコメント:
コメントを投稿