C++封装的dll,char类型的出参C#中如何接收 150

如图是我用C++写的dll文件中给参数赋值下图是我在C#中调用方法然后运行接收到的却是乱码哪位大哥帮忙看一下是哪里的问题谢谢了跪求... 如图是我用C++写的dll文件中给参数赋值

下图是我在C#中调用方法

然后运行接收到的却是乱码

哪位大哥帮忙看一下是哪里的问题 谢谢了 跪求
展开
 我来答
wangpaishi
2013-09-18 · TA获得超过570个赞
知道小有建树答主
回答量:932
采纳率:52%
帮助的人:745万
展开全部
网络搜索不到?
C#用非托管资源弄弄看看
可以用不安全代码吗?char*

out string 都改成 [Out]StringBuilder

CharSet=CharSet.Ansi, CallingConvention=CallingConvention.Cdecl / stdcall

StringBuilder sb = new StringBuilder(16); // 16替换为你所需要的容量,也就是先申请好内存空间
再调用该函数,传入本参数
追问
谢谢你的帮忙    不过跟out string没关系   根本没到这一步   我自己定义的char[]接收到的部分就是乱码了   还没有转换成string类型    所以不是string类型的关系
追答
!!!没说明白
我说你的C++中函数参数的char*
在c#中 dllimport 时,用 [out]StringBuilder 代替
try4148
2013-09-18 · TA获得超过334个赞
知道小有建树答主
回答量:632
采纳率:100%
帮助的人:385万
展开全部

char*类型数据作为输出参数时,在c#中数据类型要写成StringBuilder。这样既解决了传进去的参数问题,又解决了传出参数的问题。

以下例子是我用C#调用VC dll中的函数的声明及使用方法:

using System.Runtime.InteropServices;//使用dll动态库和API函数必需  
 
 
 
[DllImport("PmacNc.dll", CharSet = CharSet.Ansi)]  
public static extern int GetResponse(StringBuilder com_response, System.UInt32  
maxchar, System.Char[] sendChar);  
 
Global.UserDll.GetResponse(com_response, 100, sendchar1);
    已赞过 已踩过<
    你对这个回答的评价是?
    评论 收起
    空雪梦见
    2013-09-18 · TA获得超过5596个赞
    知道大有可为答主
    回答量:2522
    采纳率:75%
    帮助的人:1143万
    展开全部

    看着分数挺多的我就来蹭一下……

    更多追问追答
    追问
    这是什么东西?
    追答
    。你下下来看过了?
    看过了应该能看懂才对。
    没看过赶快下来看。
    绝对无毒,怕有毒你自己拿里面的代码编译出exe和dll也行,反正代码也在里面
    已赞过 已踩过<
    你对这个回答的评价是?
    评论 收起
    匿名用户
    2013-09-18
    展开全部
    设置一下字符集
    更多追问追答
    追问
    C#中设置吗?我开发工具用的VS2010   设置里边“生成序列化程序集”是自动的
    追答
    C# 在申明那个C++的DLL的时候

    [DllImport("user32.dll", CharSet = CharSet.Unicode)] //这里你试试其他字符集

    public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint
    type);
    这里给的是一个例子
    已赞过 已踩过<
    你对这个回答的评价是?
    评论 收起
    收起 1条折叠回答
    收起 更多回答(2)
    推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

    为你推荐:

    下载百度知道APP,抢鲜体验
    使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
    扫描二维码下载
    ×

    类别

    我们会通过消息、邮箱等方式尽快将举报结果通知您。

    说明

    0/200

    提交
    取消

    辅 助

    模 式