有没有办法在加载后从 DLL 运行函数?所以它的行为与 main() 函数完全一样。我将dll加载到我的应用程序中,并且在加载dll本身而没有来自应用程序的任何调用后,它会执行吗?
就像 DllMain 函数一样,但是当我将 dll 注入应用程序时它可以工作。我希望它能够正常工作,但是当我通过 LoadLibrary 加载它时。
DllMain
将被调用以响应 a LoadLibrary
,但您仅限于您可以在其中可靠地执行的操作。如MSDN DllMain文档中所述,它不会对线程间通信做出良好反应。最好把这样的代码放在一个Init
函数中。以我的经验,你在 DllMain 中堆的越多,你遇到的问题就越多;尽量少做。
如果您真的不能使用 Init 函数,请尝试在 DllMain(附加)中创建一个线程并从那里调用您的函数。