今天写了一个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()成员函数中做初始化工作

在WIN32 DLL中使用MFC库遇到的问题的更多相关文章

  1. WIN32 DLL中使用MFC

    最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记 一.修 ...

  2. 在WIN32 DLL中使用MFC

    最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记 一.修 ...

  3. 在共享DLL中使用MFC 和在静态库中使用MFC的区别

    使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享DLL中使用MFC 3.在静态库中使用MFC          第一种顾名思义.        ...

  4. c++MFC工程修改在共享DLL中使用MFC为使用标准Windows库的解决办法

    由于创建MFC工程时,默认是在共享DLL中使用MFC,如果将此选项改成使用标准Windows库,会报如下错误 c:\program files\microsoft visual studio 9.0\ ...

  5. MFC的使用——在共享DLL中使用MFC、在静态库中使用MFC(转)

    原文转自 https://blog.csdn.net/albertsh/article/details/52838419 1.使用标准Windows库 使用WINDOWS SDK API库,不使用MF ...

  6. 在共享DLL中使用MFC

    使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享DLL中使用MFC 3.在静态库中使用MFC          第一种顾名思义.        ...

  7. win32 Dll 中添加afx.h 出现如下错误 error LNK2005: _DllMain@12 already defined

    win32 Dll 中添加afx.h 出现如下错误 nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in ...

  8. 非MFC工程中使用MFC库

    目录(?)[-] 需求说明 常见问题 问题分析 参考解决方法 我的解决方案 Stdafxh的原理   需求说明 C++工程的类型有很多,从VS(或VC)可以看到常见的有:Win32 Console A ...

  9. 在WIn32程序中使用MFC的CInternetSession运行异常,主要是因为获取目前应用程序名出错的解决办法

    转载:http://group.gimoo.net/review/22564 头文件#include <afxinet.h"> 在非MFC工程中使用CInternetSessio ...

随机推荐

  1. 实现iOS项目一款用swift实现的应用top源码

    Top 后台 Swift版本Ios 8 / iPhone 5S适配这边有个登陆,如果你们想测试的话,可以用这个账号, 账号:18868879362 密码:420562   源码下载: http://c ...

  2. Unite Beijing 2015大型活动

    摘要:2015年,我做的最疯狂的事情:网友见面会—去北京参加Unite Beijing 2015大会. 正文:记得,上次在北京参加大型活动还是2008年前–传统电信行业的巅峰时期:那时移动互联网.An ...

  3. iOS开发——打包ipa

    首先,保证设备证书和配置文件的正确,Xcode上登陆好自己公司的账号Apple ID 1.选中运行模拟器的位置为硬件设备 2.点击导航栏上的[Product]——[Archive]后编译后弹出如下界面 ...

  4. .net core demo & docker images

    记录.net core 部署在docker 上的大概步骤便于以后查阅. PART 1 .net core web api demo 1.下载最新VS 2015 community 社区版免费使用. 2 ...

  5. [设计模式]NetworkManagementService中的观察者模式

    观察者模式 观察者模式有如下角色 (1)被观察者(Subject) (2)观察者(Observer) public class Subject{ private: list<Observer&g ...

  6. FKCL-OS——自主的操作系统

    我想搞一个操作系统,这是因为我对windows非常不满意,对linux非常讨厌,我想要开发一个真正自己的OS,然后让自己和别人使用它.得到方便.我将在这篇文章中写下我对操作系统的不满,然后构思出我的操 ...

  7. C语言中fgetc、fputc和getc、putc的区别是什么

    看书的时候,发现了这四个函数,想知道他们的不同.结果上网查发现很多人说fgetc.fputc的f代表的是file,就是这两个函数是和文件有关的!但是一看他们的函数声明,如下图: 发现他们的参数里面都有 ...

  8. css定义的权重

    以下是权重的规则:标签的权重为1,class的权重为10,id的权重为100,以下例子是演示各种定义的权重值: /*权重为1*/        div{        }        /*权重为10 ...

  9. DTCMS中文章增加tags标签和关键词时中文,替换为英文状态,

    DTCMS.Web\admin\article\article_edit.aspx 找到添加和修改的方法 model.tags = txtTags.Text.Trim()model.seo_keywo ...

  10. 基于Golang的游戏服务器框架cellnet开发日记(二)

    看官们肯定还有大部分不是很熟悉Actor模型. 我这里基于Erlang, Skynet等语言和框架库来实战型解释下Actor模型.  Actor概念 Actor模型和OO类似, 都是符合人的思维模式进 ...