我在dll中可以包含可视化界面,放入一般的可视化组件如(label,edit,button)都没有什么问题但是如果我放入象adoconnection,adoquery这样的数据组件时,在程序一调用该dll时就出错.不知是在dll中本身就不能用数据组件还是我的方法问题.还有一个问题请教,有没有什么单步运行调试dll的方法.把函数和过程一封装入dll,就好象没有办法在运行程序时单步测试到该函数或过程,这样编起来就很麻烦.
调试欢乐多
你是需要使用
CoInitialize(nil);
CoUnInitialize;
来初始化ActiveX COM的
在Dll初始化时执行单步运行调试dll是需要写另外一个叫Dll Host的程序的(负责调用Dll的程序),Delphi中加载那个Host来单步调试dll,
procedure DllProcHandler(Reason:DWord);
begin
Case Reason of
DLL_PROCESS_ATTACH, DLL_THREAD_ATTACH: CoInitialize(nil);
DLL_PROCESS_DETACH, DLL_THREAD_DETACH: CoUnInitialize;
end;
end;exports ....begin
DLLProc:=@DLLProcHandler;
DLLProcHandler(DLL_PROCESS_ATTACH);
end.