私はwin32でコーディングしていましたが、私のプログラムは実際にはvsではデバッグモードで動作しますが、リリースモードではなく、vsの外部でも動作しません。
int _tmain(int argc, _TCHAR* argv[])
{
//assert that there are 3 parameters.
assert(argc==4);
LPCTSTR inputPath = argv[1];
LPCTSTR sharedName = argv[2];
LPCTSTR logPath = argv[3];
argcが正しくない場合もあり(300000を超える場合もありますが、4である必要があります)、場合によっては
LPCTSTR sharedName = argv[2];
行は無視されます!このプログラムをリリースモードでデバッグするときはジャンプし、変数名の上にカーソルを合わせると何も起こりません。変数を右クリックして[ウォッチの追加]を選択すると、エラーlogPath CXX0017が表示されます。エラー:シンボル "logPath"が見つかりません。
もちろん、vsのコマンド引数を "ab c"(引用符なし)に設定しました。
どうなり得るか?簡略化されたプログラムの実行:// test.cpp:コンソールアプリケーションのエントリポイントを定義します。//
#include "stdafx.h"
#include "stdafx.h"
#include <windows.h>
#include <assert.h>
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[])
{
assert(argc==4);
LPCTSTR inputPath = argv[1];
LPCTSTR sharedName = argv[2];
LPCTSTR logPath = argv[3];
_getch();
}
同じ結果が得られます。デバッガーがgetch行にジャンプし、ウォッチを追加しようとすると、logPath CXX0017:エラー:symbol"logPath"が見つかりません
inputPathCXX0017:エラー:symbol"inputPath"が見つかりません
sharedNameCXX0017:エラー:symbol "sharedName"見つかりません