The task is this - you need to get the address of the module I need in a foreign application from my application. My attempts:
const HANDLE process_controll::ProcessControll::getProcessHandle(const tstring & processName, const DWORD& accessFlag) { return OpenProcess(accessFlag, false, getID(processName)); } DWORD getModuleAdrEx(const TCHAR * processName, TCHAR* moduleName) { HANDLE procHandle = t_proc.getProcessHandle(processName); if (!procHandle) { msg_er_full; return 0; } HMODULE module{}; if (!GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, moduleName, &module)) { msg_er_full; return 0; } MODULEINFO moduleInf{}; if (GetModuleInformation(procHandle, module, &moduleInf, sizeof(MODULEINFO)) == NULL) { return 0; } CloseHandle(procHandle); return moduleInf.lpBaseOfDll; } Actually, the function GetModuleInformation returns "failure", and, accordingly, in moduleInf.lpBaseOfDll - 0.
ps process ID 100% true always finds, the process handle is also not equal to 0, GetModuleHandleEx returns the "truth".