楼上你写的不是接口程序阿?
我要得是dll输出的接口阿
这样够明白了吧

解决方案 »

  1.   

    也可以用静态的方法吧,如下:
    function CCMInit(hWnd: Thandle; msg: longint; gh: string): integer; cdecl; external DLL_FileName;要注意的是: 如果你的DLL中有Struct,最好用 
    #pragma pack( push, 1 )转到Delphi中对应的定义用 packed record
    这样才不会因对字节对齐的原因出错!!
    当然,你也可以用
    loadlibrary,  getprocaddress, Freelibrary 来装入的
      

  2.   

    extern "C" __declspec(dllexport) SayHello(char *WhatToSay);
      

  3.   

    呵呵,还有,如果你C中用的Stdcall, Delphi中也要用stdcall
    若C中用cdecl, Delphi中也要用CDecl这样就没问题
      

  4.   

    我上面的函数在VC中是这样的
    DllImport int __cdecl CCMInit(HWND hWndMessageNoify, UINT MessageID, const char* gh);
      

  5.   

    完整的是这样的,
    #define DllImport __declspec(dllimport)
    extern "C"
    {
    //初始化函数
    DllImport int __cdecl CCMInit(HWND hWndMessageNoify, UINT MessageID, const char* gh);//更改工号函数
    DllImport int __cdecl ChangeGH(const char* newGH);//...................
    }//end of extern "C"
      

  6.   

    weizhi:
    我怎么看,你在VC中写的CCMInit都不可能在Delphi中调用阿
    因为你连关键字pascal都没有, -----pascal和C的压栈顺序不一样的阿还有 那个__cdecl也要去掉得把???