パラメーター1を「char」から「lpcwstr」に変換することはできません

StackOverflow https://stackoverflow.com/questions/3924926

質問

私はこのエラーを取得し続けます:cannot convert parameter 1 from 'char' to 'LPCWSTR'

int main(int argc, char argv[])    
{

   // open port for I/O
   HANDLE h = CreateFile(argv[1],GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

   if(h == INVALID_HANDLE_VALUE) {
       PrintError("E012_Failed to open port");

誰かが助けることができますか?

役に立ちましたか?

解決

そのはず

int main(int argc, char* argv[]) 

HANDLE h = CreateFileA(argv[1],GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

他のヒント

プロジェクトのプロパティに移動し、構成プロパティ/一般に、文字セットを「設定しない」に変更します。これにより、コンパイラは、デフォルトで選択されているUnicode文字が必要であるとは想定していません。

alt text

これは、Visual Studioがデフォルトで作成する主な機能です。

int _tmain(int argc, _TCHAR* argv[])

_unicodeが定義されているかどうかに応じて、_tcharはcharまたはwchar_tであると定義されます。 API関数でも同じことが起こります。明示的なcreatefileaを使用しないことをお勧めします。メインを変更して、createfileを使用します。

コンパイラ設定に応じて キャラクターセット, 、マルチバイト /ワイディチャー変換を実行するか、それが何であるかを気にしない場合はキャラクターセットを変更する必要がある場合があります。

MultiBytetowideCharで変換するには、次のことを参照してください...

http://www.codeguru.com/forum/showthread.php?t=231165

Unicode Enabledをコンパイルしていると思います。次に char argv[], argv aです char アレイ、だから argv[1] aです char, 、 と CreateFile 欲しい const wchar_t* 最初のパラメーターとして、ではありません char.

そうは言っても、あなた main 定義も壊れています char* argv[]. 。その変更があれば、電話することができます CreateFileA.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top