###発生している問題・エラーメッセージ
win32apiのGetCommandLine()でコマンドライン引数をうけとると
"C:Users\ユーザー名\documents\visual studio
2015\Projects\Win32Project3\Debug\Win32Project3.exe"
\Users\ユーザー名\Desktop\test.txt
とコマンドライン引数だけでなく実行ファイルのパスも受け取ってしまって
下記のソースコードのCreateFile()が失敗します
GetComanndLine()を使わない方法でもいいのでコマンドライン引数をうけとってCreateFile()を実行する方法を教えてください
コマンドライン引数はソリューションエクスプローラー>プロパティ>デバッグ>コマンド引数から設定しました
###該当のソースコード
c++
1#include <windows.h> 2 3int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR lpCmdLine,int nCmdShow) 4{ 5 HANDLE hFile; 6 7 hFile = CreateFile(GetCommandLine(), GENERIC_READ, 0, NULL,CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); 8 if (hFile == INVALID_HANDLE_VALUE) 9 { 10 MessageBox(NULL, GetCommandLine(),TEXT("エラー"), MB_OK); 11 return 1; 12 } 13 14 CloseHandle(hFile); 15 16 return 0; 17}
###試したこと
WinMainのlpCmdLine引数はPSTRからLPCWSTRへの型変換ができないのでCreateFile()の引数にできなかったです
CommandLinetoArgvW()はLPWSTRからLPCWSTRの型変換ができないのでCreateFile()の引数にできなかったです
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/05 10:55
退会済みユーザー
2017/05/05 11:29
2017/05/05 15:42 編集