|
#include "stdafx.h"
using namespace System; //这个命名空间如果缺的话,IntPtr这个无法识别
int main(array<System::String ^> ^args)
{
char* ch1 = "this is chars ";
//将char*转换为System::String^
String^ str1= System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)ch1);
//System::String^转换为char*
char* ch2 = (char*)(void*)Runtime::InteropServices::Marshal::StringToHGlobalAnsi(str1);
Console::WriteLine(str1);
Console::WriteLine(ch2);
Console::ReadLine();
}
从char*转换:
char *chars = "Hello";
从char*到string: string s(chars);
从char*到CString: CString s(chars);
从char*到String^: String ^s = gcnew String(chars);
从string转换
string str("Hello");
从string到char*: char chars[64]; strcpy_s(chars, str.c_str());
从string到CString: CString s(str.c_str());
从string到String^: String ^s = gcnew String(str.c_str());
从CString转换
CString str("Hello");
从CString到char*: char chars[64]; strcpy_s(chars, str);
从CString到string: string s(str);
从CString到String^: String ^s = gcnew String(str);
从String^转换
CString str("Hello");
pin_ptr<const wchar_t> wch = PtrToStringChars(str);
1.从String^ 到char*:
char chars[64];
size_t convertedChars = 0;
wcstombs_s(&convertedChars, chars, wcslen(wch) + 1, wch, _TRUNCATE);
2.从String^ 到string:
string s(wch);
3.从String^ 到CString:
String ^s = gcnew String(wch);
参考1:http://dewei.iteye.com/blog/1566435
参考2:http://blog.csdn.net/sumnuce/article/details/42525071
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-23 19:42
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社