C++ C# 字符串传递问题
C++(MFC)调用C#编写的DLL,现在在C++的代码中,要给C#传递一个字符串参数,请问怎么传递?C#代码可做一定的修改,只要能实现C++到C#的字符串传递即可。Th...
C++(MFC) 调用 C# 编写的DLL,
现在在 C++ 的代码中,要给 C# 传递 一个字符串参数,请问怎么传递?
C#代码可做一定的修改,只要能实现 C++到C# 的字符串传递即可。
Thanks.
用了一个笨方法:
C++ 代码:
CString sstr = _T("content");
char c[100];
for(int i=0;i<sstr.GetLength();i++)
{
c[i]=sstr[i];
sp->ReceiveCData[i]=c[i];// ReceiveCData是C#中定义的 byte[]
}
C# 代码:
ReceiveCDataStr = System.Text.Encoding.GetEncoding("gb2312").GetString(ReceiveCData, 0, length); 展开
现在在 C++ 的代码中,要给 C# 传递 一个字符串参数,请问怎么传递?
C#代码可做一定的修改,只要能实现 C++到C# 的字符串传递即可。
Thanks.
用了一个笨方法:
C++ 代码:
CString sstr = _T("content");
char c[100];
for(int i=0;i<sstr.GetLength();i++)
{
c[i]=sstr[i];
sp->ReceiveCData[i]=c[i];// ReceiveCData是C#中定义的 byte[]
}
C# 代码:
ReceiveCDataStr = System.Text.Encoding.GetEncoding("gb2312").GetString(ReceiveCData, 0, length); 展开
2个回答
展开全部
最简单的是建立一个C++CLR项目,写一个函数作为过渡,不然C#里面的函数很难暴露给C++。参考这个
http://www.codeproject.com/Tips/695387/Calling-Csharp-NET-methods-from-unmanaged-C-Cplusp
其实反过来C#调用C++就简单多的多了。
或者用Pipe,Socket之类的进程通信,毕竟要多一个进程,也不算太方便。
http://www.codeproject.com/Tips/695387/Calling-Csharp-NET-methods-from-unmanaged-C-Cplusp
其实反过来C#调用C++就简单多的多了。
或者用Pipe,Socket之类的进程通信,毕竟要多一个进程,也不算太方便。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询