50分高手白捡的分(关于dll编写及调用的问题)(50分)

  • 主题发起人 主题发起人 lmeagle01
  • 开始时间 开始时间
这个问题不好吗?
 
use ComObj<br><br>在程序里面加上<br>initialization<br>&nbsp; CoInitialize;<br>end.<br>
 
在你DLL中的函数内加入这个看看<br><br>&nbsp; CoInitialize(nil);<br>&nbsp; try<br>&nbsp; &nbsp; &nbsp;//你的函数体<br>&nbsp; finally<br>&nbsp; &nbsp; CoUninitialize;<br>&nbsp; end;
 
uses ActiveX <br><br><br>.....<br><br>var<br>&nbsp; Fr: TFr;<br><br>implementation<br><br>{$R *.dfm}<br><br>.....<br><br>initialization<br>&nbsp;CoInitialize(nil);<br>finalization<br>&nbsp;CoUninitialize;<br>end. &nbsp;
 
&gt;&gt;function DealErr(var &gt;&gt;errmsg:string;errNum:integer;errUnit:string;errMan:string):integer;stdcall;<br><br>你的参数用的是string类型,换成pchar试试
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2547045
 
&gt;&gt;function DealErr(var &gt;&gt;errmsg:string;errNum:integer;errUnit:string;errMan:string):integer;stdcall;<br><br>你的参数用的是string类型,换成shortstring试试 &nbsp;<br>
 
这种情况我也碰到过,是因为 Dll 中 Uses 语句用到的单元没有被调用程序窗口的 Uses语句引用引起的。你比较一下就能发现问题了。
 
在调用单元的Uses中加入DB, ADODB就行了.
 
这个问题我已经解决了,感谢大家的帮助,谢谢!!!
 
多人接受答案了。
 
后退
顶部