我在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設置,看看他們說什麼。
你加載使用絕對路徑的文本文件,或相對路徑(「C:\ temp \ blah.txt」vs「blah.txt」)?我的猜測是通過VS運行的應用程序正在使用不同的裝配位置路徑。 –
絕對,例如E:/path/file.txt,也許生病嘗試反斜槓? – user2011985
反斜槓也不起作用 – user2011985