精华内容
下载资源
问答
  • MFC静态库的使用
    千次阅读
    2016-07-07 09:11:36
    相对动态库来说,静态库更简单,但也有些要注意的小细节:

    一、
    静态库链接的时候,VS有警告
    warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined
    这是因为对静态库而言,不需要添加任何依赖的动态库,依赖是由编译链接该静态库的EXE/DLL去负责的。

    二、
    静态库的函数和类的导出,都不需要像动态库那样加__declspec( dllexport )。如果加了__declspec(dllexport),VS反而在链接的时候提示: error LNK2019: 无法解析的外部符号(unresolved external symbol...)

    三、
    同一个Solution里,如果要使用到一个静态库,通过设置项目依赖即可,可以不用在项目的输入库中指定。

    四、
    静态库使用的是链接该静态库的 EXE/DLL 的资源。所以如果静态库里存放的对话框类,对话框资源还是需要加到 EXE/DLL 中。
    更多相关内容
  • 自己编译的lib,及例程,下载后可直接编译运行; 此lib不适用于控制台程序; 是专门为MFC编译的;有问题直接给我留言;
  • opencv3.3.0使用 MFC VS2015 静态库,简单显示图片和人脸识别,适用初学者,内有详细调用例子,已经编译好的opencv静态库
  • 1.在静态库中使用MFC 2.选择MT Static MultiThread /MT 3.项目所有依赖的.dll也必须以这种方式编译 #include "jsoncpp/json.h" //#include 是以当前文件所在路径为当前目录 //#pragma comment(lib,...

    不管动态还是静态都有可能缺dll。最安全的是安装运行库:

    Download Visual C++ Redistributable for Visual Studio 2015 from Official Microsoft Download Center

    1.在静态库中使用MFC

    静态编译文件大,

    2.选择MT

    Static MultiThread /MT

    (1)、静态编译: debug状态下 – MTd; release状态下 – MT 
    (2)、动态编译: debug状态下 – MDd;release状态下 – MD 
    记住:静态编译为T 即Static ,动态编译为D 即Dynamic,debug下有个字母d,release下没有字母d,M即MultiThread

    3.项目所有依赖的.dll也必须以这种方式编译

    #include "jsoncpp/json.h" //#include 是以当前文件所在路径为当前目录
    //#pragma comment(lib,"jsoncpp/jsoncpp_static.lib") //#pragma comment 是以当前工程所在路径为当前目录 Dynamic Link (DLL)    /MD 
    #pragma comment(lib,"jsoncpp/jsoncpp_static_MT.lib") //#pragma comment 是以当前工程所在路径为当前目录 多线程静态MT

    展开全文
  • MFC Excel类封装成库DLL(在静态库中使用 MFC),将 Excel类打包成库文件,对外留几个接口,使用方便
  • Opencv在MFC静态库的配置

    千次阅读 2014-06-09 22:44:52
    【3】在静态库下使用MFC和共享DLL下使用MFC 这两种情况 opencv的配置,以及配置opencv配置中容易出现的问题 http://blog.csdn.net/computer_liuyun/article/details/26978073 【4】opencv 在MFC中的使用有关问题...

    OpenCV[6]的配置一般是在共享动态链接库下的配置的,在静态库下的配置有点稍微区别:

    (1)库目录需配置OpenCV的静态库


    (2)设置MFC为静态链接


    下面是把OpenCV之类的库设置成静态库


    (3)最关键的一步是连接器的输入项设置:

    nafxcw.lib //这个lib添加参考[5]
    opencv_calib3d248.lib
    opencv_contrib248.lib
    opencv_core248.lib
    opencv_features2d248.lib
    opencv_flann248.lib
    opencv_gpu248.lib
    opencv_highgui248.lib
    opencv_imgproc248.lib
    opencv_legacy248.lib
    opencv_ml248.lib
    opencv_nonfree248.lib
    opencv_objdetect248.lib
    opencv_photo248.lib
    opencv_stitching248.lib
    opencv_ts248.lib
    opencv_video248.lib
    opencv_videostab248.lib
    zlib.lib
    IlmImf.lib
    libjasper.lib
    libjpeg.lib
    libpng.lib
    libtiff.lib //zlib.lib到libtiff也是OpenCV中staticlib文件夹下的lib,常常被人民所忽略。
    vfw32.lib //这个lib添加参考[2,1]

    comctl32.lib //参考[1]没有这个lib会产生opencv_highgui248.lib: error LNK2001: unresolved external symbol -Imp_createToolbarEx@52


    如果照着[6]的配置静态链接就会产生下面的问题:



    最后说一下[7],这个静态链接库,只要把.h和.lib文件加入工程文件夹即可。

    而动态链接库有两种方法,一种是把.h、.lib和.dll文件加入到工程中,这就是我们经常配置[6]OpenCV的方法,也就是虽然是动态链接也需要配置.lib库的原因,.h文件路径是VC++ Directories下Include Directories下配置的,dll文件路径是在VC++ Directories下Executable Directories下配置的,或者更改环境变量path。还有一种方法是只单独使用dll文件,需要函数指针和WIN32 API函数装载,详情参考[7]。

    同时#pragma comment( lib) 语句并不是静态链接,只能是工程是静态链接的,才会生成静态链接的。参考错误[8]

    参考:

    【1】OpenCV Unresolved External Symbols - Other Libraries Needed? http://stackoverflow.com/questions/8098272/opencv-unresolved-external-symbols-other-libraries-needed

    【2】opencv highgui静态库在windows下链接问题 http://hi.baidu.com/jimmywood1987/item/a8f22612486897fddceecaa7

    【3】在静态库下使用MFC和共享DLL下使用MFC 这两种情况 opencv的配置,以及配置opencv配置中容易出现的问题 http://blog.csdn.net/computer_liuyun/article/details/26978073

    【4】opencv 在MFC中的使用有关问题 http://2.soadmin.com/kaifayuyan/cpp/498327.htm 

    【5】nafxcw.lib与LIBCMT.lib在vs2008中链接冲突解决方案 http://hi.baidu.com/dyqq1234/item/e124228c441b05814514cf2f

    【6】VC 2008 Express下安装OpenCV2.3.1 http://wiki.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.3.1

    【7】c++中.dll与.lib文件的生成与使用的详解 http://www.jb51.net/article/36447.htm

    【8】LIB 静态链接库 http://www.cppblog.com/ivenher/articles/1310.html


    展开全文
  • MFC --静态库中使用MFC

    2020-07-21 14:20:23
    静态库中使用MFC 前言   近期在VS2017中用MFC的工程写了一个小工具作为内部使用工具,生成的EXE文件给其他同事使用过程中出现“找不到dll”的问题。翻了翻资料,发现是编译的时选择静态还是动态编译导致的。在默认...

    静态库中使用MFC

    前言

      近期在VS2017中用MFC的工程写了一个小工具作为内部使用工具,生成的EXE文件给其他同事使用过程中出现“找不到dll”的问题。翻了翻资料,发现是编译的时选择静态还是动态编译导致的。在默认情况下,MFC的使用选项是“在共享DLL中使用MFC”(如下图),这个时候就需要将相关的DLL文件包和可执行程序一起打包,才能正常使用,但是这样用户体验就差了很多,所以释放的软件最好能是“静态库中使用MFC”,这样就减少了用户使用成本。

    设置方法

    1. 工程-属性-配置属性-常规-MFC的使用-静态库中使用-应用(Debug和Release版本下面设置路径相同)
    2. 工程-属性-配置属性-C/C+±代码生成-运行库-多线程调试(/MTd)-应用(Debug版本)
    3. 工程-属性-配置属性-C/C+±代码生成-运行库-多线程调试(/MTd)-应用(Release版本)

    总结

    1. MFC开发释放的最后版本最好为静态库中使用MFC的Release版本;
    2. 静态库中使用MFC先要选择MFC的使用选项,其次还要设置代码生成的选项;
    3. Release版本和Debug版本下的代码生成选项是不一样的。
    展开全文
  • 静态库中使用MFC  第一种顾名思义。 第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。 第三种是将DLL中的相关代码写进EXE文件中,文件...
  • MFC工程中,链接的路径
  • 前言我们在使用Microsoft Visual Studio软件(也就是我们常常说的VS)时,其中项目属性中有一项叫做“MFC的使用”,里面包含有不同的设置,会影响我们所编写的程序的使用,今天我就遇到了这个情况,我们一起来总结...
  • 创建MFC项目时,选择动态库和静态库的区别动态库在VS2017版本中,选择的时候是叫“在共享DLL中使用MFC”。这样创建的时候生成的*.exe文件一般较小,原因有几点1. 此*.exe程序内部,一般不会包含文件所需要的库,其...
  • 方法一 #pragma comment(lib,"../Debug/ClassDll.lib") 方法二 方法三 (前提是工程和应用工程在同一个解决方案中)
  • MFC应用程序调用静态库lib

    千次阅读 2017-09-21 15:14:58
    MFC应用程序调用静态库
  • 因为项目需要,我生成的软件需要安装在没有装过VS之类的软件上运行,结果对方电脑里总是出现各种缺少.dll的提示,无法安装,后面才发现需要把在共享DLL中使用MFC改为在静态库中使用MFC 但是,改了后发现编译不通过...
  • 最近一个项目,需要使用一个static library,在静态库中创建多个对话框,并在,同一个solution下的另一个MFC应用程序中调用。 --------------------------------------------------------------分割线 在挣扎了几...
  • skin++动态及静态库实现mfc换肤,包括教程和源码实例,简单明了一看就会
  • MFC静态库使用下列命名约定: uAFXcWd.LIB . 库命名约定的说明符如下: 说明符 值和含义 u (n) ANSI 或 (u)Unicode c 创建的计划类型:c=all d d=debug版本; release版本略去说明符 默认值为生成用于 Intel 平台的...
  • 在VS2015 MFC GDI+下开发的精美温度表盘控件类静态库(DEBUG RELEASE 版) 可通过定义静态库中的类,显示、设置 温度表盘显示,并可设置控件窗口位置、大小和表盘上各显示区域的位置、弧度。温度显示同时有指针标识和...
  • 搞了半天是stdafx.h这个预编译头的问题, 把所有WIN32静态库的stdafx.h文件中的一句代码#define _AFX_NO_MFC_CONTROLS_IN_DIALOGS删除。(VS默认建立静态库工程支持选项)     注释掉之后再编译, 如下图...
  • DLL专题之MFC静态库

    千次阅读 2008-02-26 13:51:00
    我们继续延续DLL专题风格.先来写DLL吧.首先,我们建立一个MFC DLL,选择MFC 规则的静态库.这里有一些选项....好了,我开始使用MFC静态库吧.既然上MFC的嘛.我们就用一个对话框来测试在DLL里使用对话框资源.
  • QT使用MFC编译的

    2021-03-27 16:59:01
    假定读者已有知识点 ...1、静态库 2、动态库 3、函数编译名称 4、MFC动态链接库和静态链接库的区别 5、extern "C"的作用 6、__stdcall和__cdecl调用区别 如果有不明白的,请移步另外一位作者文章或者自行百度 ...
  • ”,看到这个问题我首先想到的就是动态链接的事情,因为我使用的是VS2013正好使用的是12.0版本的文件,所以说应该是目标机上没有这个,当然可以手动下载这个文件,添加至“C:\Windows\System32”目录,但是...
  • 关于静态库和动态库的创建、调用。动态库有:MFC动态库、win动态库等。
  • mfc制作静态库

    千次阅读 2016-10-28 20:12:13
    1.建立win32项目 2. 选择静态库 3. 选择mfc支持  然后就可写了
  • 静态库中使用MFC 指:将DLL对应的lib静态库中的相关代码硬编码到EXE文件中,文件较大,但是可以在没有已经被包含DLL的机器上运行,可移植性好。当然即使如此也并非所有的DLL都会将其硬编码到Exe中
  • 在共享Dll和静态库中使用MFC的区别

    千次阅读 2017-05-05 15:18:23
    3.在静态库中使用MFC  第一种顾名思义。  第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。第三种是将DLL中的相关代码
  • 在VS2015 MFC GDI+下开发的精美温度表盘控件类静态库(DEBUG RELEASE 版) 可通过定义静态库中的类,显示、设置 温度表盘显示,并可设置控件窗口位置、大小和表盘上各显示区域的位置、弧度。温度显示同时有指针标识和...
  • activex 实现中将mfc使用方式从共享 DLL使用 转换到静态库中使用 关于AFX_IDS_UNTITLED 的问题 The exception fires when trying to load the string AFX_IDS_UNTITLED in the following code at docsingl.cpp: ...
  • 静态链接库(lib)与动态链接库(dll)的比较: 首先,静态链接库与动态链接库...不能再包含其他的动态链接库或者静态库; 动态链接库: dll与EXE文件独立存在,所以发布EXE时需要同时发布dll文件; 可以再包含

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,368
精华内容 10,947
关键字:

mfc静态库

友情链接: boston_house_prices.zip