none
如何将System::String类型转化成const char *类型? RRS feed

答案

  • 这篇KB 有点儿老,是针对Visual C++.NET 7.1 的。 如果你使用的是Visual Studio 2005/2008 请参考下面代码:

    using namespace System::Runtime::InteropServices;

    System::String^ str = L"Hello world";
    char* str2 = (char*)(void*)Marshal::StringToHGlobalAnsi(str);
    ……
    Marshal::FreeHGlobal(str2);
    2010年3月22日 9:31
    版主

全部回复

  • 如果是STL 的string,那比较好转:

    using namespace std;

    string s ="abc";

    (const char*)s.c_str();

     

    如果是.NET 的String,那就比较麻烦了,因为.NET String 是Unicode 内码的, 可以参考下面链接中的方法:

    http://support.microsoft.com/default.aspx/kb/311259?p=1

    推荐使用方法2。

     

    2010年3月22日 9:31
    版主
  • 这篇KB 有点儿老,是针对Visual C++.NET 7.1 的。 如果你使用的是Visual Studio 2005/2008 请参考下面代码:

    using namespace System::Runtime::InteropServices;

    System::String^ str = L"Hello world";
    char* str2 = (char*)(void*)Marshal::StringToHGlobalAnsi(str);
    ……
    Marshal::FreeHGlobal(str2);
    2010年3月22日 9:31
    版主