我有
ADDRESS的运行时错误216
注册使用Delphi XE2构建的64位dll时(我有更新3)。
从命令提示符我做(注意:system32文件夹包含64位exe!)
c:\windows\system32\regsvr32.exe My64bitdll.dll
并在“dll成功安装消息”之后 我有运行时错误。
我想调试注册过程,不知何故使用Run / Parameters / host。
有人可以发布正确的程序吗?在其他一些问题中,如this one提到了一个bug,但是seems fixed now,我有一个比这个更早的delphi版本。
更新 此外,欢迎任何关于RunTime错误的评论。
答案 0 :(得分:5)
然后像任何其他DLL一样调试DLL。
运行时错误216是访问冲突。
答案 1 :(得分:1)
1)此运行时错误可能只是程序退出。例如,您是否会调试DllMain的内部,您可以轻松地通过退出点并尝试跟踪结束的DLL,这将通过RE。进程退出看起来不像从子例程返回 - 而是作为对特殊系统API函数的调用。但是调试器不理解它并继续跟踪现在死的项目。
2)我认为使用RegSvr32.exe或TRegSvr.exe进行debuging并不重要。所有RegSvr32都从DLL调用预定义函数。你调试你的DLL或RegSvr32本身?
2.1)如果后者 - 我听说有RegSvr32的来源,可能还有调试符号,但是要使用一些Microsoft调试器。
2.2)如果是前者,那么现在应该有区别如何调用这些函数,你只需要调试这些函数。只需从File not found when registering DLL with TFileRun and regsvr32获取任何代码并将其用作主机。