zoukankan      html  css  js  c++  java
  • 在NonMfc下使用CString

    Users of Visual Studio 2003 and newer may directly go to below and skip this one.

    http://blog.csdn.net/is2120/article/details/7198072

    //z 2012-1-13 10:36 is2120@csdn

    方法一
    - - -

    Q:
    How to use 'CString' in non-MFCapplications?

    A: In most cases, you don't need to do that. In order to use 'CString'you have to statically or dynamically link your application to theentireMFC. This would not only increase the size of your executable file, the numberof its dependencies, but also makes your program non-portable (especially if itis a Console application).

    The recommended solution is to use the Standard C++ Class 'std::string'. It isas powerful as 'CString', is portable, using it does not imply adding a hugeamount of things you don't need to your project and last, but not least, it ispartof the programming language.

    This being said, if you still want to use 'CString' in your non-MFCapplication, here it is whar you have to do:

    • Include 'afx.h' in one of your main headers
    • Open the menu 'Project -> Settings'. On the 'General' register of the settings dialog box choose 'Use MFC in a Shared DLL' or 'Use MFC in a Static Library' from the dropdown box called 'Microsoft Foundation Classes'.
    • Rebuild your project.

    A simple sample of a console application using 'CString'looks like this:

    Code:

    #include<afx.h>

    #include<iostream>

    intmain()

    {

     CString s("Hello");

     std::cout << s.GetBuffer(0) << std::endl;

     return 0;

    }


    //z 2012-1-13 10:36 is2120@csdn
    方法二:从vs2003开始,你可以使用 <atlstr.h>
    Starting VS 2003, you can useCString in non-MFC applications by including header atlstr.h:

    Code:

    #include <atlstr.h>

    A sample console application withCString:

    Code:

    #include <atlstr.h>

    #include <iostream>

    int main ()

    {

    CString strTest (_T("This is aCString in a console application!"));

    #ifdef UNICODE

      std::wcout << (LPCTSTR)strTest;

    #else

      std::cout << (LPCTSTR)strTest;

    #endif

    return 0;

    }

    You canalso use CStringA as a ANSI string class, and CStringW as a wide-characterstring class.


    方法三:可以使用 boost 中的 string
    BoostString Algorithms Library
    //z 2012-1-13 10:36 is2120@csdn
  • 相关阅读:
    CMMI学习系列(1)CMMI简介及证书介绍
    Lync 2010 系统架构 学习笔记(2)
    Lync 2010 标准版 AD控制器搭建 学习笔记(3)
    云计算 学习笔记(4) HDFS 简介及体系结构
    云计算 学习笔记(1) Hadoop简介
    Lync 2010 Lync客户端测试 学习笔记(7)
    Lync 2010 监控服务器配置 学习笔记(8)
    CMMI学习系列(7)组织过程库,预评估,正式评估。
    CMMI学习系列(5)CMMI3过程规范制定
    CMMI学习系列(6)项目试点
  • 原文地址:https://www.cnblogs.com/IS2120/p/6745958.html
Copyright © 2011-2022 走看看