zoukankan      html  css  js  c++  java
  • 在WIN32 DLL中使用MFC库遇到的问题

    今天写了一个DLL,DLL中用到的一个类里用到的MSXML的COM组件,所以在DLL中要包含afx.h头文件,也就不可避免的要用到MFC的类库了,但在编译时出现了错误:mfcs42d.lib(dllmodul.obj) : error LNK2005:_DllMain@12 already defined in NetDriverConfig.obj,

    http://topic.csdn.net/t/20010911/10/281452.html 处的贴子里找到了以下回答,试了一个原来是文件里定义的对象与mfcs42d.lib有冲突,加了命名空间后问题解决。还不知道DLL能不能使用,明天试一下再说了!

    Linker   Tools   Error   LNK2005   
      symbol   already   defined   in   object   
        
      The   given   symbol,   displayed   in   its   decorated   form,   was   multiply   defined.   
        
      Tips   
        
      One   of   the   following   may   be   a   cause:     
        
      The   most   common   cause   of   this   error   is   accidentally   linking   with   both   the   single-threaded   and   multithreaded   libraries.   Ensure   that   the   application   project   file   includes   only   the   appropriate   libraries   and   that   any   third-party   libraries   have   appropriately   created   single-threaded   or   multithreaded   versions.   
        
        
      The   given   symbol   was   a   packaged   function   (created   by   compiling   with   /Gy)   and   was   included   in   more   than   one   file   but   was   changed   between   compilations.   Recompile   all   files   that   include   the   symbol.   
        
      The   given   symbol   was   defined   differently   in   two   member   objects   in   different   libraries,   and   both   member   objects   were   used.   
        
      An   absolute   was   defined   twice,   with   a   different   value   in   each   definition.     
        
      Linker   Tools   Error   LNK1169   
      one   or   more   multiply   defined   symbols   found   
        
      The   build   failed   due   to   multiple   definitions   of   one   or   more   symbols.   This   error   is   preceded   by   error   LNK2005.   
        
      The   /FORCE   or   /FORCE:MULTIPLE   option   overrides   this   error.   

     

     

    -------------------------------------------------------------------------------------------------------------------------------------------------

    今天又看了下发,发现在WIN32 DLL中使用MFC类库是会存在问题,原因是在MFC/src/DLLModul.cpp 文件中已经声明了DLLMain()函数,所以就不能在项目文件中再声明 DllMain(),否则就会出现如上所示的链接错误。所以在WIN32 DLL中使用MFC类库的话可以不声明DLLMain()函数,如果有操作要放在DLL加载时初始化的话就从CWinApp派生一个类,在项目文件里声明这个对象,在这个CWinApp类的InitInstance()成员函数中做初始化工作

  • 相关阅读:
    MyBatis-Plus之多租户架构(Multi-tenancy)——SAAS
    spring-data-mybatis-mini
    mybatis-plus
    JPA/Hibernate组合的映射,实体继承的映射
    JPA(Java Persistence API)--JavaEE5.0标准ORM规范
    spring data jpa
    mybatis笔记(二)多表关联映射、延迟加载、一级二级缓存、整合ehcache、spring整合mybatis
    mybatis笔记(一)入门程序、dao开发方式、mapper开发方式、全局配置文件、映射文件、动态sql
    Spring 事务处理、整合web
    Spring JdbcTemplate
  • 原文地址:https://www.cnblogs.com/lidabo/p/3501110.html
Copyright © 2011-2022 走看看