2013-04-01 131 views
4

我在project properties -> debugging -> command arguments部分設置了我的應用程序的命令行參數。使用命令行參數調試VS2010

如果我運行命令行程序直接我做的:

progname arg1 arg2

所以我設置的VS命令行參數

arg1 arg2,

描述here.

但是,該程序似乎並沒有運行在運行相同的方式從命令行中刪除它。參數是文本文件,並且在命令行中可以正確加載這些文本文件,在VS2010中它不會以某種方式加載。任何想法爲什麼?


編輯:更新/澄清後:

我沒有得到任何異常。

我可能已經在我的解釋中過分簡化了這個問題。我實際上沒有加載文本文件,我正在加載一個物理引擎,這應該在運行時確定,所以我需要命令行參數。

用於加載的物理引擎,在高層次的代碼是:

if (argc > 2) 
{ 
    #ifndef PAL_STATIC 
     PF->LoadPALfromDLL(); 
    #endif 
     //DebugBreak(); // for debugging ;) 
     PF->SelectEngine(argv[1]); 

     if (!pp) { 
    #ifdef _WIN32 
      MessageBox(NULL,L"Could not start physics!",L"Error",MB_OK); 

     /*^This is the error I am getting, i.e. pp is NULL, 
     so "PF->SelectEngine(argv[1]);" is not loading engine correctly */ 

    #else 
      printf("Could not start physics engine %s!\n",argv[1]); 
    #endif 

    return -1; 
}

我使用的子彈,這是像這樣運行:

progname.exe arg1 arg2, 

arg1是物理引擎名稱和arg2是一個物理文件加載,但它掛在arg1

我調用這個命令行上的具體方法是:

progname.exe Bullet filename. 

如果我這樣做就可以了工作的命令行,但如果我通過這些參數來調試,我得到一個問題說could not load physics engine

這可能是物理引擎加載程序內部來自另一個源的結果,但我的猜測是,這應該以相同的方式工作,無論我在命令行還是在調試器設置中傳遞這些參數VS.

我會看看UAC設置,看看他們說什麼。

+0

你加載使用絕對路徑的文本文件,或相對路徑(「C:\ temp \ blah.txt」vs「blah.txt」)?我的猜測是通過VS運行的應用程序正在使用不同的裝配位置路徑。 –

+0

絕對,例如E:/path/file.txt,也許生病嘗試反斜槓? – user2011985

+0

反斜槓也不起作用 – user2011985

回答