C++/CLI 本地字符串和托管字符串之间的转换

时间:2023-03-09 17:16:10
C++/CLI 本地字符串和托管字符串之间的转换

参考: https://docs.microsoft.com/zh-cn/cpp/dotnet/overview-of-marshaling-in-cpp

#include "msclr/marshal.h"
#include "msclr/marshal_windows.h"
#include "msclr/marshal_cppstd.h"
#include "msclr/marshal_atl.h"

int main(cli::array<System::String ^> ^args)
{

marshal_context^ context = gcnew marshal_context();

DWFString s(context->marshal_as<const wchar_t *>(args[0]));

System::String ^s2 = marshal_as<System::String^>((const wchar_t *)s);

}