在c#和c++/CLI之间传递_bstr_t
本文关键字:bstr 之间 CLI c++ | 更新日期: 2023-09-27 18:29:03
我有点困惑,我们是否可以使用_bstr_t在c#到c++之间传递字符串,反之亦然。
我使用C++/CLI作为C#和C++之间的中间层。
如果可能的话,还可以举例说明如何在C#端和C++/CLI端封送它,因为关于的文档不多
还建议使用更好的数据类型/机制来传递字符串。
根据MSDN,这个应该可以将String^转换为字符串(这是迄今为止最简单的方法)。然而,我无法测试,我的VC++2008 Express没有找到Marshal.h…
// TestCppCli2008.cpp : main project file.
#include "stdafx.h"
#include <string>
#include <msclr'marshal.h>
#include <msclr'marshal_cppstd.h>
using namespace System;
using namespace msclr::interop;
int main()
{
System::String^ s = L"Hello World";
std::string str = marshal_as<std::string>(s);
return 0;
}