当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>在非MFC程序中引用CString</b>[VC/C++编程]

赞助商链接



  本文“<b>在非MFC程序中引用CString</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

CString在当今软件计划界里还是小闻名望的,说它是MFC中利用的最多的类一点也不过,但是在利用sdk编windows程序的时刻,确不能操纵CString类,只能用sdk的运行时库,比方strlen,strcpy,strstr等等,本文谈论的是在非mfc程序中利用CString类的办法,算是个引子,假若有更好的实现办法,欢送大家谈论.

为了利用CString类,首先源文件必须是以cpp末尾的,这是因为vc默许对差别的扩大名采取差别的编译办法和错误查抄,mfc的支持文件Afx.h只有由cpp为扩大名的文件包含才可以正常编译.关于exe和库要采取差别的方法.下面辨别谈论:

1、在非dll大概lib的工程里,利用CString非常简单,只要两步:

1、关于没有包含<Windows.h>的stdafx.h中,只要包含了afx.h便可,而关于已经包含了<windows.h>的stdafx.h, 一定需求保证afx.h在windows.h之前被包含.别的由于默许的掌握台程序采取的单线程运行库,我们要把它改成多线程库,这些工作只要在stdafx.h中举行改正便可以了(具体信息可以参考候捷的<<mfc 深化浅出>>),我利用的一个stdafx.h的例子以下(这是一个从向导生成的win32位GUI的程序的stdafx.h改正的):

 // stdafx.h
 #if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
 #define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
 
 #if _MSC_VER > 1000
 #pragma once
 #endif // _MSC_VER > 1000
 
 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
 
 #include <afx.h> // 加在这里
 
 // Windows Header Files:
 #include <windows.h>
 
 // C RunTime Header Files
 #include <stdlib.h>
 #include <malloc.h>
 #include <memory.h>
 #include <tchar.h>
 #ifdef _DEBUG
  #pragma comment(lib, "libcmtd.lib")
 #else
  #pragma comment(lib, "libcmt.lib")
 #endif
 // Local Header Files
 
 #endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
这样便可以在程序中正常利用CString类了.

2、在dll大概lib的工程中,由于afx.h默许带了一个DllMain,导致要利用CString类需求几个步骤.

1、首先和掌握台程序一样,假如编译环境设置了采取单线程库, 要改成多线程库,这个可以从工程属性里举行改正,具体信息可以参考候捷的<<mfc 深化浅出>>. 下面给出的是我常用的方法,可以直接把它复制到工程里利用:

  #ifdef _DEBUG
  #pragma comment(lib, "libcmtd.lib")
  #else
  #pragma comment(lib, "libcmt.lib")
  #endif   
2、工程目录下成立一个DLLMODUL.CPP文件,并且把它加入到当前工程中.

3、翻开DLLMODUL.CPP文件,编辑这个文件为这样:
  #include "stdafx.h"
  #ifdef _DEBUG
  #undef THIS_FILE
  static char THIS_FILE[] = __FILE__;
  #endif
 
  #define new DEBUG_NEW
 
  /////////////////////////////////////////////////////////////////////////////
  // global data
 
  // The following symbol used to force inclusion of this module for _USRDLL
  #ifdef _X86_
  extern "C" { int _afxForceUSRDLL; }
  #else
  extern "C" { int __afxForceUSRDLL; }
  #endif 
4、翻开stdafx.h,把afx.h包含在windows.h前面.目前可以正常的利用CString了.


  以上是“<b>在非MFC程序中引用CString</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .