COM编程的简单问题 (100分)

  • 主题发起人 主题发起人 蝴蝶沧海
  • 开始时间 开始时间

蝴蝶沧海

Unregistered / Unconfirmed
GUEST, unregistred user!
我正在写一个COM组件,是从TAutoObject继承的。我在Initialize方法中进行了分配内存
的操作,可是我应该在哪里把分配的内存释放呢?TAutoObject类并没有Finalize之类的
方法呀。构造函数和析构函数不会执行。另外我调试COM的时候好像设置断点没有用?我
只能用写log文件的方式进行调试,好累!
很急!请大虾帮忙,解决了立刻送分!
 
实现IUnKnow的_Release方法,释放你所分配的内存,别忘了返回Integer数字,
因为客户端没释放一个COM,会调用一次,同时Count-1,Count为0时全部释放。
 
com 是可以调试的,但是有时会因为某些原因不能调试,你可以搜索以下
多得很
不要把东西直接写成com组件
应该写成delphi能用的单元类,需要com的时候在引出,这样最好
在delphi应用程序调试好后在做成com,类的使用也很方便,变成思路也没有改变


例如
本想做个com组件,Tmycom
其中有个方法是setname
Tmycom。setname


那么你可以想写应用程序一样写个单元,建个类,Tmycomd,写方法setname
调试通过后
把这个类在com中使用就可以了,com中部些具体的功能
procedure Tmycom。setname
begin
mycomd.setname
end;
 
1)
procedure Initialize
override;
destructor Destroy
override;
2) 菜单 run - parameters - Host Application ,填写调用com的程序,启动。
如果此程序是 project group中的一个,两个程序将同时处于调试状态。如果
是特殊程序调用,可以Attach Process.
 
“外我调试COM的时候好像设置断点没有用?我
只能用写log文件的方式进行调试,好累!

:告诉你一个调试COM编程的方法;
1。新建一个工程组(dpg文件。Delphi Project Group);
2.再建一个工程,比如:Project1;
3.在Project中放置一个Button,在Botton单击事件理,调用产生并调用你的COM组件;
4。把Project1和你的Com工程都放到前面建立的工程组里面;
调试的时候,只要在你想调试的那个工程名上双击,然后设断点、等等就可以了。

 
后退
顶部