帮帮我,一个要命的问题(200分)

  • 主题发起人 主题发起人 红蜻蜓
  • 开始时间 开始时间

红蜻蜓

Unregistered / Unconfirmed
GUEST, unregistred user!
我在作一个系统时,需要用到dll。我在exe程序中定义了一个ADOConnection1对象,在dll
中也定义了一个ADOCommand1对象,我想通过Procedure xx(var FADOCon: TADOConnection)
过程实现ADOCommand1.connection:= FADOCon,可是要出错。谁能帮帮我。
 
没玩过耶!
把参数换成个TADOConnection指针试试!
 
出什么错,参数没传进去?
另外参数不用加 var ,传的本来就是指针.
 
我说的是指针变量,可以当INTEGER用的!
然后再用IS,AS……,不知行不行……
 
Procedure xx(var FADOCon:var TADOConnection)
 
你說的是程序建共享內存的問題.
程序和dll之間共用內存或者String參數的時候要用到ShearMem,吧uses這個單元就行了
 
将参数类型用long代替,例如Procedure xx(pConnection: Long);
exe调用过程是用如下形式:
procedure xx(Long(FConnection));
在dll中先将参数强制转换成TADOConnection,然后再赋给ADOCommand,例如:
FConnection := TADOConnection(pConnection);
ADOCommand1.Connection := FConnection;
 
这样用绝对是没问题的,可能是你没引用什么单元之类的。你可以参
考一下Richard3000的方法。
晕!真搞不懂上面的有些朋友有没有这样用过,如果没有就不要瞎扯。越说越离谱.
 
我的问题已经解决,正如无忧鱼所说,是引用的问题。但谢谢各位朋友。
 
多人接受答案了。
 
后退
顶部