2013-01-15 41 views
0

當試圖通過我的程序通過命令行傳遞參數(例如。-w 1280 -h 1024)時嘗試使用WinMain時遇到問題。我瀏覽了所有可以找到的主題,並創建了可以構建和運行的代碼,但參數完全被忽略!通過WinMain和CommandLineToArgvW的命令行參數

我的代碼:

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
szArgList[i] == L"-w" 
szArgList[i] == L"-h" 

C和C++將通過指針而不是字符進行比較。使用strcmp。