Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////
- // begin - Запуск EXE с необходимым окружением для DLL
- //////////////
- #include <string>
- #include <windows.h>
- using namespace std;
- // 1ый проект - Лаунчер
- // запуск целевого EXE с необходимыми путями для DLL
- int main()
- {
- // создаем Окружение для DLL
- // добавляем Относительный путь в сист. перем. Path
- string env = "PATH=./mydll_1234;";
- size_t bufSze;
- char* buf;
- // сохраняем путь сист. переменной Path, добавляем свой путь, устанавливаем Path
- _dupenv_s(&buf, &bufSze, "PATH");
- env.append( buf );
- // Прибиваем "гвоздями" окружение
- // лучше передавать 7ым аргументом в CreateProcess
- //_putenv( env.c_str() );
- // запускаем приложение
- STARTUPINFO sti;
- ZeroMemory(&sti,sizeof(STARTUPINFO));
- PROCESS_INFORMATION pi;
- // 2ым параметром путь к EXE
- CreateProcess(NULL, "test.exe", NULL, NULL, FALSE, NULL, (LPVOID)env.c_str(), NULL, &sti, &pi);
- return 0;
- }
- /////////////
- // для /subsystem: Windows
- int main_Launcher(int argc, char* argv[], int (*ptrMain)() )
- {
- return ptrMain();
- }
- int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT)
- {
- return main_Launcher(__argc, __argv, &main );
- }
- /////////////
- /////////////////////////////////
- //////////////////////
- ///////////
- #include <windows.h>
- #include "SFML/Graphics.hpp"
- using namespace sf;
- // 2ой проект - целевой EXE
- // портируемый код
- int main()
- {
- RenderWindow win(VideoMode(800, 600), "123");
- win.setVerticalSyncEnabled(true);
- Event eV;
- while( win.isOpen() )
- {
- while( win.pollEvent(eV) )
- {
- if(eV.type == Event::Closed) win.close();
- }
- win.clear();
- win.display();
- }
- return 0;
- }
- /////////////
- // для /subsystem: Windows
- int main_Launcher(int argc, char* argv[], int (*ptrMain)() )
- {
- return ptrMain();
- }
- int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT)
- {
- return main_Launcher(__argc, __argv, &main );
- }
- /////////////
- /////////////////////
- //end - Запуск EXE с необходимым окружением для DLL
- //////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement