vc语言下的头文件内容:#ifndef CXK_CTRLH
#define CXK_CTRLH
//---------------------------------------------------------------------------typedef   struct
{
   char  CPMC    [50] ;   //  厂牌名称
   char  CX      [50] ;   //  型号
   char  LX      [50] ;   //  类型
   char  GB      [50] ;   //  国别
   char  SCCJ    [50] ;   //  生产厂家
   char  CXXL    [50] ;   //  车型系列
   char  CYS     [50] ;   //  乘员数
   char  ZZL     [50] ;   //  总质量
   char  ZBZL    [50] ;   //  整备质量
   char  LTGG    [50] ;   //  轮胎规格
   char  ZGCS    [50] ;   //  最高车速
   char  DZ      [50] ;   //  灯制
   char  DK      [50] ;   //  灯宽
   char  DG      [50] ;   //  灯高
   char  QDXS    [50] ;   //  驱动型式
   char  ZS      [50] ;   //  轴数
   char  QDZ     [50] ;   //  驱动轴
   char  ZCZ     [50] ;   //  驻车轴
   char  FXPZJ   [50] ;   //  方向盘直径
   char  QSSX    [50] ;   //  前束上限
   char  QSXX    [50] ;   //  前束下限
   char  CLWQJSX [50] ;   //  车轮外倾角上限
   char  CLWQJXX [50] ;   //  车轮外倾角下限
   char  ZXNQJSX [50] ;   //  主销内倾角上限
   char  ZXNQJXX [50] ;   //  主销内倾角下限
   char  ZXHQJSX [50] ;   //  主销后倾角上限
   char  ZXHQJXX [50] ;   //  主销后倾角下限
   char  WCZXJSX [50] ;   //  外侧转向角上限
   char  WCZXJXX [50] ;   //  外侧转向角下限
   char  NCZXJSX [50] ;   //  内侧转向角上限
   char  NCZXJXX [50] ;   //  内侧转向角下限
   char  SFDP    [50] ;   //  是否电喷
   char  SFABS   [50] ;   //  是否ABS
   char  ZDFS    [50] ;   //  制动方式
   char  SFDLXG  [50] ;   //  是否独立悬挂
   char  ZCCD    [50] ;   //  车身长度
   char  ZCKD    [50] ;   //  车身宽度
   char  ZCGD    [50] ;   //  车身高度
   char  ZJ      [50] ;   //  轴距   //------------------发动机-------------
   char  ZZCS    [50] ;   //  制造厂商
   char  FDJXH   [50] ;   //  发动机型号
   char  GS      [50] ;   //  缸数
   char  RLZL    [50] ;   //  燃料种类
   char  DHFS    [50] ;   //  点火方式
   char  EDNJ    [50] ;   //  额定扭矩
   char  EDNJZS  [50] ;   //  额定扭矩转速
   char  EDGL    [50] ;   //  额定功率
   char  EDGLZS  [50] ;   //  额定功率转速
   char  DHSX    [50] ;   //  点火顺序
   char  QDDY    [50] ;   //  启动电压
   char  QDDL    [50] ;   //  启动电流
   char  QDZS    [50] ;   //  启动转速
   char  CDDY    [50] ;   //  充电电压
   char  CDDL    [50] ;   //  充电电流
   char  QGYL    [50] ;   //  汽缸压力
   char  DSZS    [50] ;   //  怠速转速
   char  TQJ     [50] ;   //  提前角
   char  BHJ     [50] ;   //  闭合角
   char  CDJ     [50] ;   //  重叠角
   char  DHGY    [50] ;   //  点火高压
   char  JYYLSX  [50] ;   //  机油压力上限
   char  JYYLXX  [50] ;   //  机油压力下限
   char  EDYH    [50] ;   //  额定油耗
   char  PL      [50] ;   //  排量
   char  DSZKD   [50] ;   //  怠速真空度
}_CarTypesStruct_HN; extern "C"  bool  _stdcall OpenDataBase       (HWND hMainWnd);   //打开数据源    返回true 成功   返回false 失败 
 extern "C"  bool  _stdcall ClosDataBase       (HWND hMainWnd);   //关闭数据源    返回true 成功   返回false 失败
 extern "C"  bool  _stdcall UpdateCarTypes     (HWND hMainWnd);   //更新车型数据//两种联网方式
 //----------------1弹出选择窗体-----------------------------
 extern "C"  bool  _stdcall ChoiceCarTypes     (HWND hMainWnd,_CarTypesStruct_HN & CarTypesStruct);  //查询车型数据  返回true 成功   返回false 失败 //c++用
 extern "C"  bool  _stdcall ChoiceCarTypes_ByVB(HWND hMainWnd,char * CarTypesStruct);  //查询车型数据  返回true 成功   返回false 失败 //de / vb用
//---------------------2字符串操作---------------------------
 extern "C"  bool  _stdcall GetCPMC_List     (HWND hMainWnd,char * CPMC_List);                             //参数(返回参数“厂牌列表”)返回true 成功   返回false 失败
 extern "C"  bool  _stdcall GetCX_List       (HWND hMainWnd,char * CPMC,char * CX_List);                   //参数( 厂牌 ,返回参数“车型列表”)返回true 成功   返回false 失败
 extern "C"  bool  _stdcall GetFDJXH_List    (HWND hMainWnd,char * CX,char * FDJXH_List);                  //参数( 车型,返回参数“发动机列表”)返回true 成功   返回false 失败
 extern "C"  bool  _stdcall GetCar_InfoStr   (HWND hMainWnd,char * CX,char * FDJXH,char * CarTypesStruct); //参数(车型,发动机,返回数据列表)   返回true 成功   返回false 失败
 extern "C"  bool  _stdcall GetCar_InfoStruct(HWND hMainWnd,char * CX,char * FDJXH,_CarTypesStruct_HN & CarTypesStruct);//参数(车型,发动机,返回数据结构)   返回true 成功   返回false 失败
//-----------------------------------------------------------#endif请问 :
我现在需要调用三个方法分别是:
OpenDataBase
ChoiceCarTypes_ByVB
ClosDataBase
在delphi下怎么声明和使用
我的声明如下:
unit calldll;
interface
function ChoiceCarTypes(hMainWnd:HWND ,@CarTypesStruct:_CarTypesStruct_HN):Boolean; stdcall;
function OpenDataBase(hMainWnd:HWND):Boolean; stdcall;
function ClosDataBase(hMainWnd:HWND):Boolean; stdcall;implementation
function ChoiceCarTypes;external 'CXK.dll' name 'ChoiceCarTypes';
function OpenDataBase;external 'CXK.dll' name 'OpenDataBase';
function ClosDataBase;external 'CXK.dll' name 'ClosDataBase';
end.
我这样声明对不对.谢谢!!!!!!

解决方案 »

  1.   

    unit calldll;interfaceuses Windows;       //因为用到了HWND类型, 所以需要引用Windows单元type                //类型申明
      _CarTypesStruct_HN = record
        CPMC : array[0..49] of Char;    //厂牌名称
        CX   : array[0..49] of Char;    //型号
        //......
      end;function ChoiceCarTypes(hMainWnd:HWND;  var CarTypesStruct:_CarTypesStruct_HN):Boolean; stdcall;
                            external 'CXK.dll' name 'ChoiceCarTypes';
    function OpenDataBase(hMainWnd:HWND):Boolean; stdcall; external 'CXK.dll' name 'OpenDataBase';
    function ClosDataBase(hMainWnd:HWND):Boolean; stdcall; external 'CXK.dll' name 'ClosDataBase';implementation
    //DLL函数申明可以在Interface部分完成, 没必须写成Interface和Implementation两部分
    end.