zoukankan      html  css  js  c++  java
  • <转>VC在dll中使用CString类

    CString类用起来非常方便,可是如果不对默认的工程进行一些手术,就没法使用它

    具体的修改方法如下,与大家分享一下。

    在stdfax中加入下面的红色部分

      // 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>
      
      #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,这是因为由于afx.h默认带了一个DllMain,致使要使用CString类需要几个步骤。
    因此在你的dllMain之前加入下面的红色部分的代码即可。

    #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 

    BOOL APIENTRY DllMain( HANDLE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
          )
    {
        return TRUE;
    }

  • 相关阅读:
    小程序开发 access_token 统一管理
    python操作mysql
    Mac版本的idea非正常关闭后,idea打开项目大面积报红
    PySpider爬取去哪儿攻略数据项目
    Python3.9安装PySpider步骤及问题解决
    Selenium 自动化测试工具
    Python 抓取猫眼电影排行
    Python爬虫基本库
    Python 创建一个Django项目
    Python 数据可视化
  • 原文地址:https://www.cnblogs.com/cnmyp/p/2004177.html
Copyright © 2011-2022 走看看