Ive использовал следующий код, чтобы запустить скрипт bat.Как вставить файл 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 как массив байтов (или строку), записать его в папку temp, а затем вызвать его ...? – npocmaka
Возможный дубликат [Как загрузить пользовательский двоичный ресурс в статической библиотеке VC++ как часть DLL?] (Http://stackoverflow.com/questions/9240188/how-to-load-a-custom-binary-resource -in-a-vc-static-library-as-part-of-a-dll) и [Вставить текстовый файл в ресурс в родном приложении Windows] (http://stackoverflow.com/q/2933295/1889329) , – IInspectable