如何调用这个动态库函数(50分)

  • 主题发起人 主题发起人 whsunbin
  • 开始时间 开始时间
W

whsunbin

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个函数为动态库pbGetRawImage(OUT void *image)<br>我在Delphi中应如何定义,和调用
 
你在動態鏈接庫中要定義函數pbGetRawImage(OUT void *image);加上stdcall;<br>在export下面加上函數的名稱<br>在調用前先定義一個函數類型<br>type Tfunction=procedure(OUT void *image);注意形式要和你調用的函數一樣。<br>定義一個變量AFunction:Tfunction;<br>然後在程序中聯結動態鏈接庫。<br>var<br>&nbsp; HInst:THandle;<br>&nbsp; FPointer:TFarProc;<br>HInst:=loadlibrary('動態鏈接庫的名字');<br>if HInst&gt;0<br>&nbsp; FPointer:=GetProcAddress(HInst,Pchar'pbGetRawImage');<br>if FPointer&lt;&gt;nil th &nbsp;en<br>&nbsp; AFunction:=Tfunction(FPointer);<br>這樣在程序中使用AFunction就可以調用動態鏈接庫中的這個函數了
 
TFarProc是什么数据类型,和void *image能对应吗?
 
看看有关书籍吧
 
真的没人知道吗?<br>有没有人对Delphi和VC都熟悉,我在加100分
 
在Delphi中使用function pbGetRawImage(image: Pointer):integer;stdcall就可以了,<br>因为C++中函数默认返回类型为整型。
 
&nbsp; 接着wangzheking说的,<br>&nbsp; &nbsp;当定义了<br>&nbsp; &nbsp; type TFunction=procedure(OUT void *image);<br>&nbsp; &nbsp;可以<br>&nbsp; &nbsp;var<br>&nbsp; &nbsp;MyFunction: TFunction;<br>&nbsp; &nbsp;然后,<br>&nbsp; &nbsp;HInst:=loadlibrary('动态链接库');<br>&nbsp; &nbsp;if HInst &lt;&gt; 0<br>&nbsp; &nbsp;@MyFunction := GetProcAddress(HInst,Pchar'pbGetRawImage');<br>&nbsp; &nbsp;这样,MyFunction就跟你要调用的函数一样用了。
 
谢谢<br>还有100分请到<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=782825<br>领取
 
后退
顶部