Kar*_*ick 3 com dll registration visual-c++
我有一个使用脚本构建的COM DLL.没有可用的Visual Studio项目.当我使用命令regsvr32" c:\windows\system32\dllname.dll" 注册dll时,不会显示任何消息.
我在函数DllRegisterServer和DllMain中添加了一个DebugBreak()以期望显示调试对话框.但没有发生任何事
DLL中预期的条目不会添加到注册表中.
有关DLL正确注册可能缺少的内容以及没有显示消息的原因的任何建议.
我该如何调试呢.
DebugBreak 在未调试的调试器和崩溃进程下中断.
你需要的是在C++项目设置,调试下设置Visual Studio,以便它用你的DLL启动C:\ Windows\system32\regsvr32.exe,即"$(TargetPath)"显式完整路径.开始调试,你的断点将被击中.
请注意,在64位操作系统中调试32位DLL,您将需要C:\ Windows\syswow64\regsvr32.exe.
UPD.没有Visual Studio项目可用的事实并不是一个障碍.一个假的项目,只需用正确的命令行启动调试会话就可以了.
除此之外,如果你仍然能够更新的源代码,您可以添加MessageBox到DllRegisterServer,ESP.而不是DebugBreak,启动COM注册,弹出消息框,然后附加Visual Studio调试器(无需VS项目),设置断点,然后关闭消息框,让执行继续并到达感兴趣的点.