精华内容
下载资源
问答
  • MFC Excel类封装成库DLL(在静态库中使用 MFC),将 Excel类打包成库文件,对外留几个接口,使用方便
  • 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版本下的代码生成选项是不一样的。
    展开全文
  • 一共是两个项目,一个是A:项目名称MySdk,静态库,多字节,在静态库中使用 MFC,运行库使用“多线程调试 DLL (/MDd)”;另一个是B:可执行程序,多字节,在静态库中使用 MFC,预处理器定义增加_AFXDLL,运行库使用...

    开发工具:visual studio 2013 pro

    一共是两个项目,一个是A:项目名称MySdk,静态库,多字节,在静态库中使用 MFC,运行库使用“多线程调试 DLL (/MDd)”;另一个是B:可执行程序,多字节,在静态库中使用 MFC,预处理器定义增加_AFXDLL,运行库使用“多线程调试 DLL (/MDd)”。

    项目A的接口文件中:

    #ifdef MYSDKINTERFACE_STATIC
    #define MYSDKINTERFACE_API
    #else
    #ifdef MYSDKINTERFACE_EXPORTS
    #define MYSDKINTERFACE_API __declspec(dllexport)
    #else
    #define MYSDKINTERFACE_API __declspec(dllimport)
    #endif
    #endif // MYSDKINTERFACE_STATIC

    项目A的预处理器定义增加MYSDKINTERFACE_STATIC;项目B的预处理器定义增加MYSDKINTERFACE_STATIC,附加依赖项增加MySdk.lib,输入库目录增加lib所在目录即可。

    MySdk分配的内存需要自己释放,不建议在exe中释放。

    转载于:https://www.cnblogs.com/yunhaisoft/p/5745901.html

    展开全文
  • MFC应用程序的工程,关于“MFC的使用”属性,应该选择“在共享DLL中使用MFC”或者“在静态库中使用MFC”。 “使用标准Windows库” 选项只能用在非MFC工程中,如果用在MFC工程会导致代码编译报错。 “在共享DLL中...
    • MFC应用程序的工程,关于“MFC的使用”属性,应该选择“在共享DLL中使用MFC”或者“在静态库中使用MFC”。
    • “使用标准Windows库” 选项只能用在非MFC工程中,如果用在MFC工程会导致代码编译报错。
    • “在共享DLL中使用MFC” 选项生成的程序可执行文件比较小,但是要求目标机器必须装有必要的库文件。
    • “在静态库中使用MFC” 选项生成的程序可执行文件几乎所有的Windows都可以执行,但是程序较大一些,其中包含必要的库文件,可以基本保证在别的机器上正常运行。

     

    展开全文
  • 静态库中使用MFC 在共享DLL中使用MFC 在共享DLL中使用MFC指:打包时,一些MFC的DLL的内容没有被包含在程序的EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。 在静态库中使用MFC静态库...

    创建MFC对话框程序时,使用MFC有两个选项:

    • 在共享DLL中使用MFC
    • 在静态库中使用MFC

    在共享DLL中使用MFC

    在共享DLL中使用MFC指:打包时,一些MFC的DLL的内容没有被包含在程序的EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。

    在静态库中使用MFC

    在静态库中使用MFC 指:将DLL对应的lib静态库中的相关代码硬编码到EXE文件中,文件较大,但是可以在没有已经被包含DLL的机器上运行,可移植性好。当然即使如此也并非所有的DLL都会将其硬编码到Exe中,因此仍然某些DLL是必须的,比如Redistributable Package中的某些DLL。

    个人建议:在开发阶段的程序选第2种较好,先不考虑程序大小以及效率,等后期打包的时候用spy等其他工具来侦测DLL等。

    展开全文
  • 静态库中使用MFC 在共享DLL中使用MFC"指的是打包时一些MFC的DLL的内容没有被硬编码到在EXE文件中,所以EXE会文件较小,但是运行时要求运行的系统环境中要有相关的DLL文件. 在静态库中使用MFC"是将DLL对应...
  • 使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1....在静态库中使用MFC 第一种顾名思义。第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统...
  • 介绍在共享库DLL中使用MFC与在静态库中使用MFC的区别
  • 静态库中使用MFC  第一种顾名思义。 第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。 第三种是将DLL中的相关代码写进EXE文件中,文件...
  • 使用VS2010,在项目属性中...3.在静态库中使用MFC  第一种顾名思义。  第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。  第三种是将DLL
  • 3.在静态库中使用MFC  第一种顾名思义。  第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。 第三种是将DLL中的相关代
  • 在共享DLL中使用MFC 链接成EXE的时候,没有将MFC的一些DLL包含进来,所以EXE文件较小,但是运行时候要求系统中要有相关的DLL文件。...在静态库中使用MFC 链接成EXE的时候,将所用到的MFC中的函数相关代码已经包含...
  • 串口类CSerialPort,打包封装成DLL库(在静态库中使用 MFC),对外留6个接口,调用很方便。代码注释很详细
  • opencv中在静态库中使用MFC的配置

    千次阅读 2016-03-12 10:36:41
    opencv中在静态库中使用MFC的配置 1、lib选择staticlib; 也就是VC++目录中的包含目录应该为如下路径 D:/Program Files/opencv/build/x86/vc12/staticlib 2、属性页---配置属性----MFC的使用---在...
  • 静态库中使用MFC 第一种:顾名思义。 第二种:链接成EXE的时候,没有将MFC的一些DLL包含进来,所以EXE文件较小,但是运行时候要求系统中要有相关的DLL文件。 第三种:链接成EXE的时候,将所用到的MFC中的函数...
  • 使用VS2008,在项目属性中...3.在静态库中使用MFC  第一种顾名思义。  第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。  第三种是将DLL
  • 静态库中使用MFC  第一种顾名思义。第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。第三种是将DLL中的相关代码写进EXE文件中,文件
  • 静态库中使用MFC  第一种顾名思义。第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。第三种是将DLL中的相关代码写进EXE文件中,文件较...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 914
精华内容 365
关键字:

静态库中使用mfc