使用了STDCALL可以解决调用问题,
但是参数为什么无法传入??急急急急急急急急急急急急

解决方案 »

  1.   

    delphi中dll声明部分---
    library Project1;
    uses
      SysUtils,
      Graphics,
      clipbrd,
      Dialogs,
    procedure Convert(var code:Pchar); stdcall;
    begin
        showmessage("start");
        showmessage(code);
    end;
    exports
    Convert;
    end.C 中调用部分---
    typedef void (Convert)(char*);
    Convert* pConvert;
    HINSTANCE hInstance;
    VERIFY(hInstance = ::LoadLibrary("Project1.dll"));
    VERIFY(pConvert = (Convert*)::GetProcAddress(hInstance, "Convert"));
    (*pConvert)("codename");在vc中调用
    start能显示出来,但是一取code参数值就死。 
    “unhandled exception in 0007.exe(project1.dll): 0x00000005: Access violation”. 
      

  2.   

    干嘛不直接写成:
    Convert   fMyConvert;
    ...fMyConvert("codename");
      

  3.   

    对不起,没有看清楚,
    var code : PChar 实际是指针的指针,改成 code : PChar试试.