搜索
查看: 1397|回复: 3

关于dll 传入string 字符串

[复制链接]

1

主题

3

帖子

50

积分

一级会员

Rank: 2

积分
50
发表于 2017-10-27 08:41:59 | 显示全部楼层 |阅读模式
dll cpp

  1. extern "C" __declspec(dllexport)  int  test(char* port){
  2.        
  3.         return 0;
  4.        
  5. }
复制代码


dll h

  1. extern "C" WIN32DLL_API int  test(char* port);
复制代码


aardio

  1.         dll  = raw.loadDll("/sdk/Test.dll");
  2.         test  = dll.api("test","int(string port)");
  3.         d  = test("com4");
复制代码

运行 就提示 已停止工作 正在查找方案
回复

使用道具 举报

1

主题

3

帖子

50

积分

一级会员

Rank: 2

积分
50
 楼主| 发表于 2017-10-27 08:49:14 | 显示全部楼层
我找到原因了如果只传递字符串的话 用const char *port

  1. extern "C" __declspec(dllexport)  int  test(const char *port){
  2.        
  3.         return 0;
  4.        
  5. }
复制代码
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2017-10-27 08:51:53 | 显示全部楼层
string或const char *是只读的,要写字符串内存,在aardio里声明为 string &
回复

使用道具 举报

1

主题

3

帖子

50

积分

一级会员

Rank: 2

积分
50
 楼主| 发表于 2017-10-27 09:09:32 | 显示全部楼层
Jacen.He 发表于 2017-10-27 08:51
string或const char *是只读的,要写字符串内存,在aardio里声明为 string &

感谢 群主 指导
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-10-21 22:39 , Processed in 0.078125 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表