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)


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS