【发布时间】:2014-05-20 11:38:26
【问题描述】:
我尝试了几种不同的方法,但都不起作用。
我试过的方法一:
启动 VB 程序并运行直到 DLL 运行。 打开 VC++(无项目)并选择 Build |开始调试 |附加到进程 附加到 VB 程序 在VC++中打开DLL源代码文件,在代码中选择一个断点。 继续运行VB程序,并没有跳转到VC++。
我试过的方法二:
“经过长时间的努力找到了答案。实际上我们必须在Projects->settings->debug->category->general->Executable for debug session中给出VB6.exe的路径。然后当你尝试通过在需要检查的函数中设置断点来调试 VC++ dll,将打开一个新的 VB6 IDE。请选择实际调用 VC++6 dll 的 VB6 Dll 项目。运行该应用程序,当对 VC++6 的函数调用来自 VB6 函数,控件自动转到 VC++ IDE,您可以像使用 usua 一样对其进行调试”来自 MSDN---->它只是转到 VB 应用程序中的下一行代码,没有像方法 1 那样进入 VC++ IDE。
VB 应用程序声明 dll 文件如下:
dim query as object
query=CreateObject("ClientServer.getResultClass")
query.execute(parameter1,parameter2)
我不确定是否需要将调试 dll 放到特定的位置,或者我可能需要注册调试 dll 文件(我检查了 gedit,ClientServer.getResultClass 已注册)。
【问题讨论】:
-
您可能需要注册调试DLL。您可以使用 SysInternals ProcessView 来检查 vb6 是否真的在调用调试 DLL 或仍在您的系统上注册的其他版本。
-
谢谢,Debug Dll 名称最后包含 D。是否必须更改名称并替换原始 DLL 文件或将其放在同一个文件夹中。
标签: vb.net visual-c++ dll vb6