我读过,从DllMain [source]拨打LoadLibrary()
并不安全。从main()调用LoadLibrary是否安全?
但是从控制台应用程序的入口调用main()
是否安全?我似乎无法找到关于此的任何信息。
谢谢!
我读过,从DllMain [source]拨打LoadLibrary()
并不安全。从main()调用LoadLibrary是否安全?
但是从控制台应用程序的入口调用main()
是否安全?我似乎无法找到关于此的任何信息。
谢谢!
是的,它是安全的。如果你不能从main
打电话给LoadLibrary
,你不能在控制台进程中的任何地方调用它,这将是愚蠢的。
DllMain
是特殊的,因为在调用期间“loader lock”被保留,并且在进程完全初始化之前调用它(对于静态链接的dll)。
从你自己的链接:
入口点函数应该只进行简单的初始化或终止任务。 它不能调用LoadLibrary或LoadLibraryEx函数(或调用这些函数的函数),因为可能会在DLL加载顺序中创建依赖关系循环。
由于控制台应用程序不是DLL加载链的一部分,所以它是安全的