首页 新闻 会员 周边 捐助

std::string 长度超过15就会返回乱码

0
悬赏园豆:20 [已关闭问题] 关闭于 2018-01-16 14:44

用VC++生成的dll,C#中调用,只要返回的字符串长度超过15个字符,就不能取到返回值,请问哪位遇到这个问题?

 

 

ljr忒修斯之船的主页 ljr忒修斯之船 | 初学一级 | 园豆:182
提问于:2017-10-02 11:21
< >
分享
所有回答(2)
0

dllimport 加上 这个  [return: MarshalAs(UnmanagedType.BStr)]

 

或者c++ 代码 用 char* 替代 string

hahanonym | 园豆:1460 (小虾三级) | 2017-10-02 16:14

谢谢回答,

 [return: MarshalAs(UnmanagedType.BStr)]不行,直接报错了

 

用 char* 替代 string也不是不行,但是char*对字符串的操作反人类,不能用它

支持(0) 反对(0) ljr忒修斯之船 | 园豆:182 (初学一级) | 2017-10-02 17:07
0

string类型不能直接返回

ljr忒修斯之船 | 园豆:182 (初学一级) | 2018-01-16 14:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册