Sorry if this is a basic question, as I'm very new at this.
I'm trying to get an .exe to load a dummy .dll. I've created an example .dll project in VC++ 2019, added the functions listed in the .exe's import table, made sure to declare extern "C" __declspec(dllexport)
, using a hex editor changed the ordinals in the import table to match the new .dll and made sure the filename matches. Still, when I run the .exe with this .dll in its folder, I get this kind of error message:
The procedure entry point MyFunction2 could not be located in the dynamic link library MyDll.dll
I've rechecked that I haven't missed any of the function names in the import table, and that none of the function names in the .dll got mangled. Are the offsets for functions entry points in the .dll file hardcoded in the PE format? What am I missing that could cause the application to reject the .dll?
Edit: The program doesn't import LoadLibrary
, CreateProcess
, ShellExecute
nor any other functions I know which handle processes and libraries.