当前位置:首页 » 编程软件 » mfcdll静态编译

mfcdll静态编译

发布时间: 2022-08-30 09:49:11

A. vs2013如何静态编译

项目属性-配置属性-常规-MFC的使用-使用标准Windows库(不用MFC)
然后,C/C++-代码生成-运行库-多线程/MT或者多线程调试/MTd
带d的是链接调试版本,DEBUG项目选/MTd,Release项目选/MT
如果使用MFC,在MFC的使用中设置静态、动态链接,代码生成中必须使用<从上级继承>

B. vc++ 2008的dll动态静态编译问题

这个情况有以下几种可能:

  1. 你编译的是Debug版本,因此别的计算机(未安装VS2008)上无法运行。请使用Releaset版本

  2. 如果是MFC应用程序,请在项目的属性中(Release)的常规中,把【MFC的使用】改为“在静态库中使用MFC”。

  3. 如果你的程序调用了其它的第三方库,这些库在编译时用了静态链编,而别的计算机上无此库的dll文件。因此请将相应Dll附带打包进去。

  4. 运行时库的问题,修改项目属性中,C++,代码生成中的基本运行时库检查。

C. 如何将MFC程序静态编译

{
for (int i = 0; i < n; i++)
printf("%d%s", a[i], i == n - 1 ? "\n" : " ");
}

D. 已经将mfc动态链接库以静态编译的方式编译,为什么程序还会提示缺少dll

如果丢失,按我说的试试
第一、修复
使用腾讯电脑管家,点开电脑诊所之后,搜缺失的dll文件,会自动筛选出来,然后你只需要点立即修复即可!
第二、下载安装
根据你的系统下载(比如XP或w7),然后点开你的系统盘,点开windows这个文件夹再点开system32这个文件夹,把下载下来的dll文件复制进来就可

E. MFC编程如何把dll封装入exe中

可以把dll以二进制形式写入到exe文件后面(exe允许后边添加任意长度数据 不影响程序的运行)长度为dll大小 在程序初始化的中读取自身文件后偏移dll大小的数据 然后创建这个dll 再loadlibrary 程序退出前deletefile把dll删除 如果不想被发现的话 还可以把dll的属性设置为隐藏或者直接将dll写入到windows目录下

F. 创建mfc项目时,vs提示选择在共享dll中使用mfc与在静态库中使用mfc有什么区别

共享dll方式,你的程序用到的MFC中的执行代码(指目标代码,二进制指令)不会被编译进exe中,当exe执行时会加载mfc中的dll。静态库中使用,编译时会将用到的mfc dll中的代码编译进exe中,exe运行时不在需要mfc的dll

G. vs2010为什么设置了静态编译还是需要dll文件才能运行exe

静态编译:就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖动态链接库。

编译方式:

第1种:

设置:

1、项目->配置属性->常规->MFC的使用:在静态库中使用MFC

2、项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程调试(/MTd)。

编译时,选择的是debug,win32

然后执行编译生成方案,在该工程目录下的debug文件中,找到该.exe文件,即可在其他电脑运行。

第2种:

一般可以配置一下两项:

1.项目 -> 配置属性->常规->MFC的使用 :在静态库中使用MFC。

2.项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程调试(/MT)。

编译时,选择的是release,win32(这个选择项在工具栏的debug选框中,一般我们使用debug方式)

H. VC++6.0如何设置才能静态编译

你在初建的时候有个静态调用dll还是动态调用dll,如果没选,默认好像是动态调用,如果你想改为静态调用就需要自己配制。修改一般可以配置一下两项:
1.项目 -> 配置属性->常规->MFC的使用 :在静态库中使用MFC。
2.项目 -> 配置属性->C/C++->代码生成->运行库 :选择/MT。

I. 怎么让MFC程序不使用静态编译

不使用静态编译,发布时就需要把MFC相关的库带上

J. 静态链接编译通过,使用MFC共享dll编译不过

#ifdef _AFXDLL
#define DECLARE_MESSAGE_MAP() \
private: \
static const AFX_MSGMAP_ENTRY _messageEntries[]; \
protected: \
static AFX_DATA const AFX_MSGMAP messageMap; \
static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); \
virtual const AFX_MSGMAP* GetMessageMap() const; \

#else
#define DECLARE_MESSAGE_MAP() \
private: \
static const AFX_MSGMAP_ENTRY _messageEntries[]; \
protected: \
static AFX_DATA const AFX_MSGMAP messageMap; \
virtual const AFX_MSGMAP* GetMessageMap() const; \

#endif

#ifdef _AFXDLL
#define BEGIN_MESSAGE_MAP(theClass, baseClass) \
const AFX_MSGMAP* PASCAL theClass::_GetBaseMessageMap() \
{ return &baseClass::messageMap; } \
const AFX_MSGMAP* theClass::GetMessageMap() const \
{ return &theClass::messageMap; } \
AFX_COMDAT AFX_DATADEF const AFX_MSGMAP theClass::messageMap = \
{ &theClass::_GetBaseMessageMap, &theClass::_messageEntries[0] }; \
AFX_COMDAT const AFX_MSGMAP_ENTRY theClass::_messageEntries[] = \
{ \

#else
#define BEGIN_MESSAGE_MAP(theClass, baseClass) \
const AFX_MSGMAP* theClass::GetMessageMap() const \
{ return &theClass::messageMap; } \
AFX_COMDAT AFX_DATADEF const AFX_MSGMAP theClass::messageMap = \
{ &baseClass::messageMap, &theClass::_messageEntries[0] }; \
AFX_COMDAT const AFX_MSGMAP_ENTRY theClass::_messageEntries[] = \
{ \

#endif

#define END_MESSAGE_MAP() \
{0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } \
}; \

热点内容
网络编程http 发布:2025-02-09 00:18:33 浏览:62
php的点餐系统 发布:2025-02-09 00:17:03 浏览:600
安卓区转苹果区会发生什么 发布:2025-02-09 00:16:26 浏览:131
c语言编译完怎么执行 发布:2025-02-09 00:16:16 浏览:27
AMD平台对应的C编译器 发布:2025-02-09 00:15:35 浏览:68
行李箱的密码锁哪里修 发布:2025-02-08 23:58:14 浏览:531
c语言字母ascii码表 发布:2025-02-08 23:55:49 浏览:838
笔记本电脑一般存储空间 发布:2025-02-08 23:51:15 浏览:835
php网站优化 发布:2025-02-08 23:49:41 浏览:455
php网页打印 发布:2025-02-08 23:40:02 浏览:820