C#DLL托管c++ (CLI) String^ 到 std::string 的相互转化
来源:互联网 发布:星星知我心插曲 编辑:程序博客网 时间:2024/06/06 02:40
当使用C++/CLI包装C++本地代码时,常常需要将System::String转换为std::string或者char*以调用native C++函数。.net环境中的字符串是unicode的,占2个字节,而很多native C++函数都没有考虑unicode,这种转换不仅仅是2字节转1字节,同时也涉及到字符集的转换。
#include "stdafx.h" #include <string> #include <msclr\marshal_cppstd.h> #include <iostream> using namespace msclr::interop; using namespace System; int main(array<System::String ^> ^args) { // 为了可以打印wstring到控制台 std::wcout.imbue(std::locale("chs")); // 声明两个string std::string strOld = "阿里路亚!"; //std的string String^ strNew = "耶稣基督!"; //cli的string. //std::string转cli的string String^ stdToCli = marshal_as<String^>(strOld); Console::WriteLine(stdToCli); //cli的string转std::string std::string cliToStd = marshal_as<std::string>(strNew); std::cout << cliToStd << std::endl; //cli的string转std::wstring std::wstring cliToWstring = marshal_as<std::wstring>(strNew); std::wcout << cliToWstring << std::endl; }
阅读全文
0 0
- C#DLL托管c++ (CLI) String^ 到 std::string 的相互转化
- 托管c++ (CLI) String^ 到 std::string 的相互转化
- C++/CLI 中字符串类型的转化: 把System::String转化为std::string
- C++/CLI 中字符串类型的转化: 把std::string转化为System::String
- C风格字符串和C++string对象的相互转化
- C风格字符串和C++string对象的相互转化
- double与string的相互转化(C++)
- C串和string串的相互转化
- double与string的相互转化(C++)
- double与string的相互转化(C++)
- C/C++ --- double与string的相互转化
- C语言 字符串和C++ string对象的相互转化
- C++:float 转型到 std::string
- C++/CLI 托管C++的托管与非托管字符串的相互转换【1】
- std::string之间的转化
- 谈CString和std::string的相互转化,MFC用std::fstream中文路径和中文名
- C++/STL std::string 的用法
- string转化大小写(C++)
- React--在model中调用model
- 转载-使用IDEA搭建SpringMvc框架
- ButterCMS架构:完成数百万次调用的关键任务API
- 设计模式(整理)
- 18.4Sum
- C#DLL托管c++ (CLI) String^ 到 std::string 的相互转化
- 推荐一个好用的权限申请框架
- DependencyHandler
- IE11个别版本,在登录“成功”后,总是异常跳出
- ISIS报文格式—CSNP
- Spring Boot干货——(三)静态资源与拦截器
- Variational Inference入门:Mean field for the Ising model
- AES加密
- python 切片