windows执行完LoadLibrary()后,可以删除源动态库文件,函数不会锁库文件
windows执行完LoadLibrary()后,可以删除源动态库文件,函数不会锁库文件。
#include <iostream>
#include <Windows.h>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