#include <windows.h>
#include <iostream>
// Объявление типа функции, которую мы будем вызывать из .exe
typedef void (*ExternalFunction)();
// Функция, которая вызывает функцию из внешнего .exe файла
void CallExternalFunctionFromExe()
{
// Путь к вашему .exe файлу
LPCSTR exePath = "ExternalProgram.exe";
// Загрузка .exe файла
HINSTANCE hInstance = LoadLibraryA(exePath);
if (hInstance != NULL)
{
// Получение указателя на экспортируемую функцию из .exe файла
ExternalFunction func = (ExternalFunction)GetProcAddress(hInstance, "ExternalFunctionFromExe");
if (func != NULL)
{
// Вызов функции из .exe
func();
}
else
{
std::cerr << "Ошибка: не удалось получить адрес функции из .exe" << std::endl;
}
// Выгрузка .exe файла
FreeLibrary(hInstance);
}
else
{
std::cerr << "Ошибка: не удалось загрузить .exe файл" << std::endl;
}
}
// Экспортируемая функция из DLL
extern "C" __declspec(dllexport) void UseExternalFunction()
{
CallExternalFunctionFromExe();
}