标准字符串std::string和System::String, CString之间的转换
2016-06-30 16:41
477 查看
.net开发中会遇到这个问题
#include <string>
#include <iostream>
using namespace std;
using namespace System;
using namespace System::Runtime::InteropServices;
//System::String转std::string
void MarshalString ( String* s, string& os ) {
const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
os = chars;
Marshal::FreeHGlobal(IntPtr((void*)chars));
}
//System::String转std::wstring
void MarshalString ( String* s, wstring& os ) {
const wchar_t* chars = (const wchar_t*)(Marshal::StringToHGlobalUni(s)).ToPointer();
os = chars;
Marshal::FreeHGlobal(IntPtr((void*)chars));
}
//System::String转std::string
string str = "";
String* s = "abcdef";
const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
str = s;
//std::wstring转System::String
string str = "abcdef";
String* s;
s = new String(str.c_str());
//System::String转char*;
String* s = "abcdef";
char* ch= (char*)(void*)Marshal::StringToHGlobalAnsi(s);
//System::String转char[];
char ch2[100];
strcpy(ch2,ch);
#include <string>
#include <iostream>
using namespace std;
using namespace System;
using namespace System::Runtime::InteropServices;
//System::String转std::string
void MarshalString ( String* s, string& os ) {
const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
os = chars;
Marshal::FreeHGlobal(IntPtr((void*)chars));
}
//System::String转std::wstring
void MarshalString ( String* s, wstring& os ) {
const wchar_t* chars = (const wchar_t*)(Marshal::StringToHGlobalUni(s)).ToPointer();
os = chars;
Marshal::FreeHGlobal(IntPtr((void*)chars));
}
//System::String转std::string
string str = "";
String* s = "abcdef";
const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
str = s;
//std::wstring转System::String
string str = "abcdef";
String* s;
s = new String(str.c_str());
//System::String转char*;
String* s = "abcdef";
char* ch= (char*)(void*)Marshal::StringToHGlobalAnsi(s);
//System::String转char[];
char ch2[100];
strcpy(ch2,ch);
相关文章推荐
- AndroidStudio上使用NDK(Jni)的配置
- Java之transient
- 浏览器探针--JavaScript
- ios关于百度地图框架地理编码的封装;
- linux安装opencv
- iOS开发数据存储篇—libsqlite3和FMDB的基本使用和区别
- C# 如何调用启动窗体
- RabbitMQ基本功能测试用例(Java实现)
- arm Linux 如何自动检测并mount SD卡,以及如何得知已经mount
- 高性能计算中心汇总
- ubuntu下安装teamviewer
- Sqlite 设置默认时间为本地时间
- Android——Android和SVN::::SVN+delete项目
- RabbitMQ基本功能测试用例(Java实现)
- 自定义打war包
- Hibernate 缓存 之 Session 实现(一)
- 【51CTO学院三周年】51cto学院的大数据培训之心路历程
- JM和x264是什么关系?
- Java中子类、父类、变量、static方法的加载顺序
- Google Analytics跳转页面跳转量的检测