参考: 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);
}