C#调用C++ MFC C接口DLL

http://www.cnblogs.com/wuxilin/archive/2006/04/27/386235.html
这片文章解决了我乱码的问题.
 
char* str = new char[word.GetLength()];
 strcpy(str,word.GetBuffer(word.GetLength()));
原因是我的方式虽然一般情况下可以得到值,但是指针引用的依然是CString的地址,下面的方法new了新地址,在值拷贝,就没问题了:)
解决返回结果乱码的问题
主要是CString是const char*转换为char*是不可以的.

还有C#中调用标准的dll windows32 dynameic link _library这里是托管代码调用非托管代码
The function declaration in header file extern "C"

[DllImport("E1402.dll")]
        private static extern string Add1(int num1, int num2);
        [DllImport("E1402.dll")]
        private static extern string RetStr(string str1);
        [DllImport("E1402.dll")]
        private static extern string MD5_Calc(string chashthis);
调用返回char*时string 是可以转换的不管是输入还是输出都一样,至于网上很多人说的stringbuilder没有去试,原因是string确实可以.
现在Dll还没打出来.还要继续努力学习啊..
可能2天以后才能做出到时候一定把好的方法贴出来
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值