windows执行完LoadLibrary()后,可以删除源动态库文件,函数不会锁库文件

windows执行完LoadLibrary()后,可以删除源动态库文件,函数不会锁库文件。

#include 
#include 

int main()
{
    char path[MAX_PATH]{};

    GetCurrentDirectoryA(sizeof(path), path);
    HMODULE lib = LoadLibraryA("testdll.dll");
    int rmret = remove("testdll.dll");
    std::cout << "remove ret=" << rmret << "," << path << "," << GetLastError() << std::endl;
    auto func = (const char*(*)())GetProcAddress(lib, "test1");
    std::cout << "Hello World!\n" << func() << std::endl;
    return 0;
}

运行结果:

remove ret=-1,C:\Users\Administrator\source\repos\testdll\ConsoleApplication1,2
Hello World!
0.1.0

你可能感兴趣的:(windows动态库,LoadLibrary)