我已经在“项目属性->调试->命令参数”部分为我的应用程序设置了命令行参数。如果我直接从命令行运行程序,则输入“progname arg1 arg2”。因此,如此处所述,我已在VS中设置了命令行参数“arg1 arg2”。但是,该程序似乎并不像从命令行中运行一样运行。这些参数是文本文件,在命令行中可以正确加载这些文本文件,在VS2010中则不行,有任何想法吗?
编辑:帖子的更新/澄清:
我没有得到任何异常。
在我的解释中,问题可能过于简单化。实际上,我正在加载物理引擎,这应该在运行时确定,因此我需要命令行参数。
用于加载物理引擎的代码(高级别)是:
如果我在命令行上执行这个操作,它是可行的,但如果我将这些参数传递给调试器,就会出现一个问题,指出“无法加载物理引擎”。这可能是物理引擎加载器内部的结果,该加载器来自另一个来源,但我猜想,无论我是在命令行还是在VS调试器设置中传递这些参数,它应该以相同的方式工作。我将查看UAC设置并了解它们的内容。
编辑:帖子的更新/澄清:
我没有得到任何异常。
在我的解释中,问题可能过于简单化。实际上,我正在加载物理引擎,这应该在运行时确定,因此我需要命令行参数。
用于加载物理引擎的代码(高级别)是:
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;
}
我正在使用Bullet,其运行方式如下:
progname.exe arg1 arg2,
arg1
是物理引擎的名称,arg2
是要加载的物理文件,但出现了arg1
卡住的情况。
我在命令行上特定的调用方式是:
progname.exe Bullet filename.
如果我在命令行上执行这个操作,它是可行的,但如果我将这些参数传递给调试器,就会出现一个问题,指出“无法加载物理引擎”。这可能是物理引擎加载器内部的结果,该加载器来自另一个来源,但我猜想,无论我是在命令行还是在VS调试器设置中传递这些参数,它应该以相同的方式工作。我将查看UAC设置并了解它们的内容。