- 追加された行はこの色です。
- 削除された行はこの色です。
exeファイルの場所をカレントディレクトリに変更して、同じディレクトリにある"_orig"を付加した名前のexeを呼び出すラッパーです。Windows専用です。
** 使用例 [#g02011f7]
C:\Program Files\foo\bar.exe
- カレントディレクトリ: C:\Program Files\foo
- 実行ファイル: C:\Program Files\foo\bar_orig.exe
** ソース [#m4e76145]
ライセンス: パブリックドメイン
#define UNICODE
#include <windows.h>
#include <string>
typedef std::basic_string<TCHAR> TString;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
TCHAR buf[MAX_PATH];
GetModuleFileName(NULL, buf, sizeof(buf));
GetModuleFileName(NULL, buf, MAX_PATH);
TString mfn = buf;
TString dir = mfn.substr(0, mfn.rfind('\\'));
TString exe = mfn.substr(0, mfn.rfind('.')) + TEXT("_orig.exe");
LPTSTR cmdl = GetCommandLine();
LPTSTR arg = cmdl;
bool dq = false;
for (LPTSTR p = cmdl; *p != 0; p++)
{
if (*p == '\"')
{
dq = !dq;
}
else if (!dq && *p == ' ')
{
arg = p + 1;
break;
}
}
TString cmd = TEXT("\"") + exe + TEXT("\" ") + arg;
STARTUPINFO sinfo;
GetStartupInfo(&sinfo);
PROCESS_INFORMATION pinfo;
return CreateProcess(NULL, (LPTSTR)cmd.data(), NULL, NULL, FALSE,
0, NULL, dir.data(), &sinfo, &pinfo);
}
** コメント [#l88e1db7]
#comment(below)