Skip to content

How can load references dll still using MemoryLoadLibrary#119

@jeffjiang0613

Description

@jeffjiang0613

I have a library named a.dll, a.dll has a reference b.dll.
When I want to use MemoryLoadLibrary to load a.dll, the default references loader is LoadLibraryA, when I changed the loader to my own loader like the code below, it crashed. How to change the return value of MemoryLoadLibraryEx to a value like the return value of LoadLibraryA?

HCUSTOMMODULE LoadLibrary_R(LPCSTR filename, void* userdata){bool isFound = false; for(auto it: names){if (strcmp(it, filename) == 0){isFound = true; break} } if (isFound){size_t size; auto buffer = readFileToBuffer(filename, &size); auto t = (HMODULE)((PMEMORYMODULE)MemoryLoadLibraryEx(buffer, LoadLibrary_R, _GetProcAddress, _FreeLibrary, NULL))->codeBase; //still wrong //auto t = (HMODULE)MemoryLoadLibraryEx(buffer, LoadLibrary_R, _GetProcAddress, _FreeLibrary, NULL)); return t} else{HMODULE result = LoadLibraryA(filename); if (result == NULL){return NULL} return (HCUSTOMMODULE)result} } 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions