Loading dynamcally a DLL inside another DLL

0

I'm trying to convert the functionality of our old code to a DLL.

One of the function wants to export from our old code use a dynamically linked DLL (that I'm gonna call other)

std::wstring otherDLL = L"C:\\PATH\\TO\\OTHER\\DLL"
if (!(libOther = LoadLibraryW(otherDLL.c_str()))){
     return;
}

In our old code, this portion of code works just fine.

So I added in my new DLL the following code:

extern "C++" std::wstring test_load(void){
    std::wstring otherDLL = L"C:\\PATH\\TO\\OTHER\\DLL"
    if (!(libOther = LoadLibraryW(otherDLL.c_str()))){
         return L"Not Loaded";
    }
    return L"Loaded";
}

(this function is not launched during DLLMain). If I try to launch test_load from my DLL in another exe

#include "MyNewDLL.h"
int main()
{
    std::wcout << test_load();
}

I get following error

Unhandled exception at 0x7BDE20f3 (ucrtbased.dll) in Test.exe: 0xC00000005: Access violation reading location 0x00000000

What's strange is that if I try to load the OtherDLL from the main that is not inside MyNewDLL, there is no error and I can use it just fine.

Any Idea where my problem could come from ?

c++
dll
dynamic-dll-import
asked on Stack Overflow Mar 4, 2020 by ChristineA • edited Mar 4, 2020 by MK Patel

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0