次のコードを使用して、BATスクリプトを開始しました。プロジェクトにバットファイルを埋め込むにはどうしたらいいですか?
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
std::wstring env = GetEnvString();
env += L"myvar=boo";
env.push_back('\0'); // somewhat awkward way to embed a null-terminator
STARTUPINFO si = { sizeof(STARTUPINFO) };
PROCESS_INFORMATION pi;
wchar_t cmdline[] = L"cmd.exe /C C:\\Users\\jrowler\\Desktop\\test\\startsimulator.bat";
if (!CreateProcess(NULL, cmdline, NULL, NULL, false, CREATE_UNICODE_ENVIRONMENT,
(LPVOID)env.c_str(), NULL, &si, &pi))
{
std::cout << GetLastError();
abort();
}
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
これは実際には完全に機能しますが、そのバットファイルを取得して何らかの形でプロジェクトに組み込むことが可能かどうか疑問に思っていましたか?最終的にこのプロジェクトはいくつかの人々に配布されるでしょう。私はそれをユーザーが.batを別々にダウンロードして、正しい場所に留まることを要求しないように設定したいと思います。
リソースとして含め、必要に応じてディスクに書き込みます。 –
batファイルをバイト配列(または文字列)として保存し、一時フォルダーに書き込み、それを呼び出すことができます...? – npocmaka
[DLLの一部としてVC++静的ライブラリにカスタムバイナリリソースをロードする方法は?](http://stackoverflow.com/questions/9240188/how-to-load-a-custom-binary-resource) -in-a-vc-static-library-d-a-dllの一部として)と[ネイティブWindowsアプリケーションのリソースにテキストファイルを埋め込む](http://stackoverflow.com/q/2933295/1889329) 。 – IInspectable