zoukankan      html  css  js  c++  java
  • 如何在VS 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;
    }

    转载至 : http://www.cnblogs.com/cnmyp/archive/2011/04/03/2004177.html

  • 相关阅读:
    drf中APIView源码分析
    将orm中模型类对象转化为字典,简单粗暴的方法
    python中uuid的使用
    每日作业 7/3
    传输文件到docker容器
    mysql 常用选项
    mysql基本语句
    mysql数据库的基本操作增删改查
    docker service的常用操作
    centos7主机重命名
  • 原文地址:https://www.cnblogs.com/zcc1414/p/3982406.html
Copyright © 2011-2022 走看看