如题!哪位大哥帮帮忙啊,最好有代码示例

解决方案 »

  1.   

    如果只是简单的数据类型我想和调用VC写的动态连接库差不多吧。只不过因为C和Pascal的函数调用参数压栈顺序不一样所以你在VC里面把函数的加上 __stdall 应该就可以了。
      

  2.   

    BTW
     C/C++调用函数缺省的压栈方式为 __cdecl
    比如说:
    如果Delphi写的DLL中有一个名为int Test(int)的导出函数那么你在VC里声明如下:
    typedef int (__stdcall *Test)(int);
      

  3.   

    如果一个函数为3. function mfi_init_mcard(sector:byte;key:string;sys_no:dword;
    sj_key:string;baika:string;user_no:byte):boolean;stdcall;
    该如何调用呢
      

  4.   

    typedef int (WINAPI *fnWriteBlob)(BSTR guid1, BSTR guid2);HINSTANCE lib;
    fnWriteBlob WriteBlob;
    TCHAR szScbID[10];

    lib = LoadLibrary(_T("LongrowToBlob.dll"));
    if(lib != NULL)
    {
    WriteBlob = (fnWriteBlob)GetProcAddress(lib, _T("WriteBlob"));
    if(WriteBlob != NULL)
    WriteBlob(_bstr_t(szTask), _bstr_t(szScbID));
    FreeLibrary(lib);
    }
      

  5.   

    发错了,应是typedef int (WINAPI *fnYourFunction)(.....);HINSTANCE lib;
    fnYourFunction yourFuction;

    lib = LoadLibrary(_T("your.dll"));
    if(lib != NULL)
    {
    yourFuction = (fnYourFunction)GetProcAddress(lib, _T("functionName"));
    if(WriteBlob != NULL)
    yourFunction(...);
    FreeLibrary(lib);
    }
      

  6.   

    delphi dll里的string类型
    参数我该用什么去对应啊