首页 新闻 会员 周边

C++ 调用 Delphi Dll

0
悬赏园豆:100 [已解决问题] 解决于 2017-12-17 21:07

接到一个项目,对方提供了一个dll和动态库函数说明文档,文档内的 参数类型为string ,请问下各位。string 类型对应C++ 什么类型啊,char wchar_t 等都试过了不对。

C++代码

复制代码
typedef int (WINAPI *tool)(int port,const wchar_t *userid[]);
    HMODULE hDLL = LoadLibrary(L"IcCard.dll"); 
    if(hDLL != NULL)  
    {  
        tool too = tool(GetProcAddress(hDLL, "ic_test"));
            if(too != NULL)  
        { 
             const wchar_t  * userid = L"123456";
            //char userid[] = "123456";
            int ss = too(1,&userid);
            printf("%d",ss);
            }
    }
复制代码

Delphi 动态库函数

function ic_test(port: integer; 
userid: string; 
): integer;stdcall;

 帮帮忙啊

雅俗的主页 雅俗 | 初学一级 | 园豆:114
提问于:2017-12-17 13:37
< >
分享
最佳答案
0

试过C# C++ Delphi 最终还是一样的问题,返回值为类型错误,可能并不是类型问题,而是动态库本身问题了。结帖了

雅俗 | 初学一级 |园豆:114 | 2017-12-17 21:06
其他回答(3)
0

应该是char *或者char [],其实这个对应就是内存地址之间的映射和数据格式的转换,有的时候一种格式可以对应很多类型。

收获园豆:100
精心出精品 | 园豆:306 (菜鸟二级) | 2017-12-17 16:10

谢谢。都试过了,都不行。搞不清楚为什么了,甚至怀疑是动态库的问题了。因为那边返回的提示为参数错误

支持(0) 反对(0) 雅俗 | 园豆:114 (初学一级) | 2017-12-17 16:27

@雅俗: 

  给你一点资料作为参照吧,这是我之前一个项目的整理,实在不行的话,你两方面都实现一下,然后再试一试,只能帮你到这里了

支持(0) 反对(0) 精心出精品 | 园豆:306 (菜鸟二级) | 2017-12-17 18:17

@精心出精品: 谢谢

支持(0) 反对(0) 雅俗 | 园豆:114 (初学一级) | 2017-12-17 21:02
0

http://blog.csdn.net/junzilang2002/article/details/78696523

李沉舟 | 园豆:202 (菜鸟二级) | 2018-02-26 22:57
0

pchar

墨墨前行 | 园豆:202 (菜鸟二级) | 2022-12-05 20:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册