delphi编写dll时如何调试?(50分)

  • 主题发起人 主题发起人 ETimeFly
  • 开始时间 开始时间
E

ETimeFly

Unregistered / Unconfirmed
GUEST, unregistred user!
dll源程序在delphi中是无法直接运行的。
我每次都是在关键部分加messagebox,显示变量的值,然后便宜,调用,根据messagebox显示的值来判断什么地方出了错!非常麻烦。
 
可以下断点调试,设置hostapplication即可
 
设置:RUN/Parameters/Host Application为做的项目的EXE文件,在调试就行了,当然其他的设置与调试其他程序是一样的
 
请例出代码:
查查有没有加stdcall或者什么的……
最好贴出,让大家看看!
 
要在Host Application里调用这个dll是吗?

如果使用这个dll的程序是别人的,没有源代码,能作为Host Application吗?
 
没有源码,你调试什么?你只能调试你自己的调用程序,dll中的不行。除非用反汇编的方法
 
楼上的:
我的意思是这样的:
比如你写了一个软件,这个软件可以二次开发,其二次开发的方式是给程序提供dll。
你公布了这种dll的接口。我根据你的接口,写了一个dll,我要调试我的dll,怎么进行!
 
呵呵,先把你的源码贴出来啊,如果是二次开发,应该会加有没有加stdcall的
 
我的dll已经写成功了,现在是反思一下,调试dll有没有好的方法?(我是用messagebox来显示关键变量的值)

我问的是如何调试自己的dll,
调试dll不是要设置Host Application吗?什么样的程序能作为Host Application?
 
我想通过设断点调试exe文件的方法你应该知道吧。
那调试dll时只要将调用该dll的exe文件设为运行参数(Host Application),就和调试普通的exe一样了。
 
你自己写一个很简单的EXE,调用一下DLL就行
把这个EXE做你的Host Application就行
 
真的这么简单?
 
就是这样,凡调用dll的程序都行,你在该程序中调用dll中的函数,在dll的源码中设置断点就行了。但dll必须有源码
 
调试dll不是要设置Host Application吗?什么样的程序能作为Host Application?
如果使用这个dll的程序是别人的,没有源代码,能作为Host Application吗?
回答:
你要调试的是dll,所以、你只要有dll源码就行,
设置:RUN/Parameters/Host Application然后 OK;
这样你就可以直接设置断点运行dll程序了,
只要调用了你的dll函数的任何可执行程序都行。
 
多人接受答案了。
 
后退
顶部