命令行参数通过WinMain和CommandLineToArgvW

时间:2013-01-15 02:56:27

标签: winmain command-line-parsing

我在尝试使用WinMain时尝试通过命令行(例如-w 1280 -h 1024)通过我的程序传递参数时遇到问题。我查看了我能找到的每个主题,并创建了构建和运行的代码,但参数被完全忽略了!

我的代码:

LPWSTR *szArgList;
int argCount;

szArgList = CommandLineToArgvW(GetCommandLineW(), &argCount);

for(int i = 1;i < argCount;i++)
{
    if(i + 1 != argCount)
    {
        if(szArgList[i] == L"-w")
        {
            width = _wtoi(szArgList[i+1]);
        }
        else if(szArgList[i] == L"-h")
        {
            height = _wtoi(szArgList[i+1]);
        }
    }
}
MSG msg;
BOOL done=FALSE;
if(MessageBox(NULL,"Fullscreen?", "my window", MB_YESNO|MB_ICONQUESTION)==IDNO)
{
    fullscreen=FALSE;
}
if(!CreateGLWindow("Window",width,height,16,fullscreen))
{
    return 0;
}

尝试将传递为“window.exe -w 800 -h 600”(当然没有引号) 我睡眠堕落的代码中缺少什么东西?

1 个答案:

答案 0 :(得分:1)

szArgList[i] == L"-w"
szArgList[i] == L"-h"

C和C ++将通过指针而不是字符进行比较。使用strcmp。