パラメーター1を「char」から「lpcwstr」に変換することはできません
-
29-09-2019 - |
質問
私はこのエラーを取得し続けます: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文字が必要であるとは想定していません。
これは、Visual Studioがデフォルトで作成する主な機能です。
int _tmain(int argc, _TCHAR* argv[])
_unicodeが定義されているかどうかに応じて、_tcharはcharまたはwchar_tであると定義されます。 API関数でも同じことが起こります。明示的なcreatefileaを使用しないことをお勧めします。メインを変更して、createfileを使用します。
コンパイラ設定に応じて キャラクターセット, 、マルチバイト /ワイディチャー変換を実行するか、それが何であるかを気にしない場合はキャラクターセットを変更する必要がある場合があります。
MultiBytetowideCharで変換するには、次のことを参照してください...
Unicode Enabledをコンパイルしていると思います。次に char argv[]
, argv
aです char
アレイ、だから argv[1]
aです char
, 、 と CreateFile
欲しい const wchar_t*
最初のパラメーターとして、ではありません char
.
そうは言っても、あなた main
定義も壊れています char* argv[]
. 。その変更があれば、電話することができます CreateFileA
.
所属していません StackOverflow