linqy的个人博客分享 http://blog.sciencenet.cn/u/linqy

博文

[转载]char*, string, CString, String^的相互转换

已有 2153 次阅读 2018-1-8 15:15 |系统分类:科研笔记

  • #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";

  1. 从char*到string:      string s(chars);

  2. 从char*到CString:   CString s(chars);

  3. 从char*到String^:   String ^s = gcnew String(chars);

  • 从string转换

      string str("Hello");

  1. 从string到char*:     char chars[64]; strcpy_s(chars, str.c_str());  

  2. 从string到CString:   CString s(str.c_str());

  3. 从string到String^:   String ^s = gcnew String(str.c_str());

  • 从CString转换

      CString str("Hello");

  1. 从CString到char*:     char chars[64]; strcpy_s(chars, str);  

  2. 从CString到string:     string s(str);

  3. 从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  



https://blog.sciencenet.cn/blog-3134052-1093719.html

上一篇:在C++中使用sqlite的示例(从下载、编译、工程建立...)
下一篇:运行是去掉控制台黑框办法
收藏 IP: 125.35.116.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-23 19:42

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部