简体   繁体   English

在 Windows Server 2003 中注册 dll 的问题

[英]Problems registering a dll in Windows Server 2003

I have a dll (build using C++ and MFC) and when I try to register我有一个 dll(使用 C++ 和 MFC 构建),当我尝试注册时

regsvr32 myDll.dll regsvr32 myDll.dll

the prompt shows no errors and also doesn't show that the dll has been registered but on the Task Manager the process " regsvr32.exe*32 " get " stuck " (the process doesn't consume any CPU, doesn't die and just stay there until I kill him).提示没有显示错误,也没有显示 dll 已注册,但在任务管理器上,进程“ regsvr32.exe*32 ”被“卡住”(该进程不消耗任何 CPU,不会死亡,并且呆在那里直到我杀了他)。

The problem started after I added CreateTimerQueue on my code and only occurs on Windows Server 2003.在我的代码中添加CreateTimerQueue之后,问题就开始了,并且只发生在 Windows Server 2003 上。

Accordingly to the documentation this function it's accepted on Window Server 2003.根据文档,此功能在 Window Server 2003 上被接受。

My dll it's compiled in 32-bits and I'm using the regsvr32 inside the sysWOW64 but also tried using the one inside system32.我的 dll 是 32 位编译的,我在 sysWOW64 中使用 regsvr32,但也尝试使用 system32 中的一个。

Thanks in advance!提前致谢!

It looks like others have also experienced deadlocks with CreateTimerQueue in DllMain - see this .看起来其他人也遇到过DllMain CreateTimerQueue死锁 - 请参阅此内容 So rework your code so that the function is not called from DllMain .因此,重新编写代码,以免从DllMain该函数。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM