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;
    }

  • 相关阅读:
    js、php 判断用户终端 、浏览器类型
    网站安装 https 证书
    PHP请求远程地址设置超时时间
    js实现复制文本内容到剪切板
    微信公众号授权获取用户信息
    生成微信公众号二维码(用户扫码关注公众号)
    域名dns 查询
    服务端 安装配置 svn
    自动生成文档
    python tkinter 布局
  • 原文地址:https://www.cnblogs.com/cnmyp/p/2004177.html
Copyright © 2011-2022 走看看