c#代码-
string s="おはよう";
我想将 s 发送到 c++ dll,作为 wstring..
如何在c#中将字符串转换为wstring?
最佳答案
std::wstring
是一个 C++ 对象,由 C++ 运行时分配并具有依赖于实现的内部格式。您也许能够弄清楚如何在 C# 程序中创建其中之一并将其传递给非托管 C++ 代码,但这样做会有些困难并且充满危险。由于 std::wstring
的内部结构依赖于实现,因此对 C++ 编译器或运行时库的任何更改都会破坏您的解决方案。
您尝试做的通常是通过在 C++ 中编写一个接口(interface)层来完成,该层采用 LPTStr
参数,将其转换为 std::wstring
,然后调用您想要调用的 C++ 函数。也就是说,如果您要调用的函数声明为:
int Foo(std::wstring p);
你会写一个接口(interface)函数:
int FooCaller(LPTSTR p)
{
std::wstring str = p;
return Foo(str);
}
然后从 C# 程序调用
FooCaller
。简而言之,C# 无法创建和传递
std::wstring
,因此您使用翻译层。关于string - 时间:2019-05-06 标签:c#: how to convert c# string to c++ wstring and vice-versa,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10618667/