English 中文(简体)
C++/Cli数值在职能之外处理
原标题:C++/Cli value disposed outside of function
  • 时间:2023-04-27 16:45:46
  •  标签:
public :void foo()
{
   LPCWSTR bar = stringToLPCWSTR(gcnew String("xddd"));
   std::wcout << bar; //prints nothing
}

LPCWSTR stringToLPCWSTR(String^ s) {
    msclr::interop::marshal_context context;
    std::string ss = context.marshal_as<std::string>(s);
    std::wstring ws;
    ws.assign(ss.begin(), ss.end());
    LPCWSTR pcwstr = ws.c_str();
    std::wcout << pcwstr; //works
    return pcwstr;
}

我需要将C#号插座转换为LPCWSTR hovewer分配值脱粒机。 我怎么能够使问题持续下去?

问题回答

我假设你能够更改地势转换功能的签名,请打电话string ToWide。 并请作改动,以交回<代码>t:wstring,即:

public void foo()
{
   auto bar = stringToWide(gcnew String("xddd"));
   std::wcout << bar;
}

std::wstring stringToLPCWSTR(String^ s) {
    msclr::interop::marshal_context context;
    std::string ss = context.marshal_as<std::string>(s);
    std::wstring ws;
    ws.assign(ss.begin(), ss.end());
    return ws;
}




相关问题
热门标签