project properties -> debugging -> command arguments
セクションでアプリのコマンド ライン引数を設定しました。
コマンドラインからプログラムを直接実行すると、次のようになります。
progname arg1 arg2
だから私はVSのコマンドライン引数をに設定しました
arg1 arg2,
ここで説明したように。
ただし、プログラムはコマンドラインから実行する場合と同じようには実行されないようです。引数はテキスト ファイルであり、コマンド ラインではこれらのテキスト ファイルを正しくロードできますが、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;
}
次のように実行される Bullet を使用しています。
progname.exe arg1 arg2,
arg1
は物理エンジン名で、arg2
ロードする物理ファイルですが、ハングアップしarg1
ます。
コマンドラインでこれを呼び出す具体的な方法は次のとおりです。
progname.exe Bullet filename.
コマンドラインでこれを行うと機能しますが、これらの引数をデバッガーに渡すと、could not load physics engine
.
これは、別のソースからの物理エンジン ローダーの内部の結果である可能性がありますが、コマンド ラインまたは VS のデバッガー設定でこれらの引数を渡すかどうかに関係なく、これは同じように機能するはずです。
UAC 設定を調べて、その内容を確認します。