VC++6 (on Windows XP)
で動かしています。
下記のコード、
以前は、
if (*lpCmdLine == 0)
のところで、0にはならず、うまく通り抜けたと思うのですが、
今は、0になり、コードが進みません。
何が悪いと考えられるのでしょうか?
=====================
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hwnd;
MSG msg;
WNDCLASS winc;
if (*lpCmdLine == 0)
{
MessageBox(NULL , TEXT(Specify File Name of Unexisted .wav
('.wav' is not needed).) ,
NULL , MB_OK);
return 0;
}
strFile = lpCmdLine;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = 0;
winc.cbWndExtra = DLGWINDOWEXTRA;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = CreateSolidBrush(GetSysColor(COLOR_MENU));
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT(Rainbow);
if (!RegisterClass(&winc)) return -1;
hwnd = CreateDialog(hInstance , TEXT(Rainbow) , 0 , NULL);
if (hwnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
>以前は、
>if (*lpCmdLine == 0)
>のところで、0にはならず、うまく通り抜けたと思うのですが、
>今は、0になり、コードが進みません。
>何が悪いと考えられるのでしょうか?
デバッガーで動作を追ってみましたか?
あなたの問題のプログラムに引数つきで呼出す時と引数なしで呼出す時とで
何か違いはありましたか?
以前と、今回とで何が違っているのか何も違っていないのか
当方には分り兼ねますので、あくまで推測に過ぎませんが
呼出し方に違いがあるのか、動作環境が変ったのか位しか思いつきません。
以前と以後の動作環境と開発環境の違いをきちんと示さないと
回答がもらえないと思います。
現状だと、
vc 6.0 SP6はインストールしていますか?
lpCmdLineはstaticもしくはmalloc()等で宣言してありますか。
(C++を使っているときは、malloc()でなくnewになりますね。)
しか思い当たりません。
なんつーか、単にプロジェクトの設定で、
デバッグ - プログラムの引数
の設定が消えただけなのでは?