web-dev-qa-db-ja.com

パラメーター1を「char」から「LPCWSTR」に変換できません

このエラーが引き続き発生します: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");

誰か助けてもらえますか?

28
sebastian

そのはず

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

そして

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

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

alt text

112

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

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

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

5

CharacterSetのコンパイラ設定に応じて、マルチバイト/ワイド文字変換の実行が必要になる場合があります。 。

MultiByteToWideCharを使用した変換については、以下を参照してください...

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

2
Allbite