调用DLL问题(.h文件和.pas文件的转换)(100分)

  • 主题发起人 主题发起人 程序人生
  • 开始时间 开始时间

程序人生

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的dll是c/C++写的,现在我要在delphi中调用它,应该怎么做阿?<br>我这里有.h文件 ,请问怎么把它翻译成pas文件。<br>下面是调用my.dll文件的.h文件。<br><br>/******************************************************************************<br>mydb.h<br>/******************************************************************************<br>#ifndef __InocDB_DEFINED__<br>#define __InocDB_DEFINED__<br><br>//#ifndef UNIX<br>//#include "cavo.h"<br>//#else<br>#ifdef BT_PSZ<br>#undef BT_PSZ<br>#endif<br>#define BT_PSZ &nbsp; 17<br>#ifdef BT_LONG<br>#undef BT_LONG<br>#endif<br>#define BT_LONG &nbsp;1<br>//#endif<br><br>#include "DBFStruc.h"<br><br>///////////////////////////////////////////////////////////////////////////////<br>// my ERROR Codes start from ERDD_USER + 0<br>//<br>#define ERDD_USER 2000<br>#define INOCDB_ERR_NEED_EXCLUSIVE ERDD_USER + 1<br>#define INOCDB_ERR_INVALID_WORKAREA ERDD_USER + 2<br>#define INOCDB_ERR_INSERTREC_FAILED ERDD_USER + 3<br>#define INOCDB_ERR_READREC_FAILED ERDD_USER + 4<br>#define INOCDB_ERR_UPDATEREC_FAILED ERDD_USER + 5<br><br>#ifdef __cplusplus<br>extern "C" {<br>#endif<br><br>extern DWORD APIENTRY InocDB_DLLInit(HANDLE* phContextObj);<br>extern void &nbsp;APIENTRY InocDB_DLLDeInit(HANDLE hContextObj);<br><br>#ifdef __cplusplus<br>}<br>#endif<br><br>#endif // __InocDB_DEFINED__<br><br>-----------------------------------------<br><br>delphi该怎么做,才能调用里面的函数??<br><br>最好能给出具体的是现代码。<br><br><br>
 
对C还是需要多了解一些<br><br>const<br>&nbsp; ERDD_USER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 2000;<br>&nbsp; INOCDB_ERR_NEED_EXCLUSIVE &nbsp; &nbsp; = ERDD_USER + 1;<br>&nbsp; INOCDB_ERR_INVALID_WORKAREA &nbsp; = ERDD_USER + 2;<br>&nbsp; INOCDB_ERR_INSERTREC_FAILED &nbsp; = ERDD_USER + 3;<br>&nbsp; INOCDB_ERR_READREC_FAILED &nbsp; &nbsp; = ERDD_USER + 4;<br>&nbsp; INOCDB_ERR_UPDATEREC_FAILED &nbsp; = ERDD_USER + 5;<br><br>function InocDB_DLLInit(var phContextObj: THandle): DWORD; stdcall; external 'youdllname';<br>procedure InocDB_DLLDeInit(hContextObj: THandle); stdcall; external 'youdllname';
 
最好使用动态调用的方式。<br>http://www.ccw.com.cn/htm/app/aprog/01_10_29_2.asp
 
多人接受答案了。
 
后退
顶部