MFC工程exe转换成dll
2014-01-23 16:35
302 查看
/*******************************************************************************/
.dsp 工程文件,文本格式,不可丢失或损坏
.dsw 工作区文件,丢失或损坏时,可点击.dsp文件打开工程,.dsw文件自动重建
.clw ClassWizard信息文件,ini格式,ClassWizard出问题时可删除它再重建
.map 映像信息文件,编制DLL写.def文件时,若不知道函数导出顺序,可在
Prject / Settings / Link 页中选中“Generate mapfile”,重新build,
用记事本或其它类似程序打开生成的.map文件,里面可看到函数导出表
.i 在命令行环境下输入:cl ***.cpp /P (注意后面的参数P大小写敏感),
程序文件夹中会生成.i文件,用记事本或其它类似程序打开,可看到.cpp
文件经预处理后的结果
.ncb 无编译浏览文件,当自动完成功能(自动显示成员变量列表)出问题时,
可删除它,build 后自动重建。
其它:
.aps 资源辅助文件,二进制格式
.opt 开发环境参数(如工具条位置)文件
.plg 编译信息(如error和warning信息)文件,html格式
.pch 预编译文件,可加快编译速度,但改文件非常大
.pdb 记录程序相关的数据和调试信息
.**p dll信息文件,编译dll时才会生成
.bsc 用于浏览项目信息,可在
Prject / Settings / Link 页中勾掉“Generate Browse Info File”,
禁止生成.bsc文件,以加快编译速度。但若使用Source Browser的话
就必须有这个文件
/*******************************************************************************/
一、方法 一:更改dsp: *.dsp存放的是工程的一些配置信息
二、方法 二:改配置信息
三、方法 三:新建dll工程,导入cpp文件与资源文件
一、方法 一:更改dsp: *.dsp存放的是工程的一些配置信息
(1) # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
(2) !MESSAGE "DemoDll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
(3) !MESSAGE "DemoDll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
(4) # ADD BASE CPP /nologo/MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
(5) # ADD CPP /nologo/MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /Yu"stdafx.h" /FD /c
(6) # ADD BASE LINK32 /nologo /subsystem:windows /dll/machine:I386
(7) # ADD LINK32 /nologo /subsystem:windows /dll /machine:I386
(8) # ADD BASE CPP /nologo/MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
(9) # ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /Yu"stdafx.h" /FD /GZ /c
(10) # ADD BASE LINK32 /nologo /subsystem:windows/dll /debug /machine:I386 /pdbtype:sept
(11) # ADD LINK32 /nologo /subsystem
(12) 还要把BOOL CDemoDllApp::InitInstance()文件中的:
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
给注释掉.
二、方法 二:改配置信息
Project->Project Settings ->C/C++->Project Options :增加/MD
Project->Project Settings ->Link->Project Options :增加/dll
在主文件上,增加DllMain入口,给出导出函数与实现
增加*.def及实现
三、方法 三:新建dll工程,导入cpp文件与资源文件,稍加修改即可,这个最容易,不多说
-------------------------------------
error C1010: unexpected end of file while looking for precompiled header directive.
可能原因为工程中 stdafx.h 未包含。
//
在VC 6.0中编译c++程序时报该错原因为需要一个预编译的文件stdafx.h, 如果不需要编译该头文件的话,只需要打开seting 页面设置中在c/c++栏,选择PreCompiled headers,然后设置第一选项,选择不使用预编译头,解决这个问题。
或者
直接打开dsp工程文件,找到 /Yu"stdafx.h"去掉即可。
//
一般来说,在编译某个文件时,往往发现编译器指向某个源码文件的末尾,并且提示以上信息时,直接在cpp顶上加一项"stdafx.h".
而且不管文件所处是否和stdafx.h文件在同一目录中。编译后即可通过,没必要去修改编译开关。一般而言:预编译功能是解决大量标头文件重复编译的问题。
在stdafx.h头中,我们一般把那些公用的头文件放置在其中。特别是调用dll组件包时,dll引入到工程中。
.dsp 工程文件,文本格式,不可丢失或损坏
.dsw 工作区文件,丢失或损坏时,可点击.dsp文件打开工程,.dsw文件自动重建
.clw ClassWizard信息文件,ini格式,ClassWizard出问题时可删除它再重建
.map 映像信息文件,编制DLL写.def文件时,若不知道函数导出顺序,可在
Prject / Settings / Link 页中选中“Generate mapfile”,重新build,
用记事本或其它类似程序打开生成的.map文件,里面可看到函数导出表
.i 在命令行环境下输入:cl ***.cpp /P (注意后面的参数P大小写敏感),
程序文件夹中会生成.i文件,用记事本或其它类似程序打开,可看到.cpp
文件经预处理后的结果
.ncb 无编译浏览文件,当自动完成功能(自动显示成员变量列表)出问题时,
可删除它,build 后自动重建。
其它:
.aps 资源辅助文件,二进制格式
.opt 开发环境参数(如工具条位置)文件
.plg 编译信息(如error和warning信息)文件,html格式
.pch 预编译文件,可加快编译速度,但改文件非常大
.pdb 记录程序相关的数据和调试信息
.**p dll信息文件,编译dll时才会生成
.bsc 用于浏览项目信息,可在
Prject / Settings / Link 页中勾掉“Generate Browse Info File”,
禁止生成.bsc文件,以加快编译速度。但若使用Source Browser的话
就必须有这个文件
/*******************************************************************************/
一、方法 一:更改dsp: *.dsp存放的是工程的一些配置信息
二、方法 二:改配置信息
三、方法 三:新建dll工程,导入cpp文件与资源文件
一、方法 一:更改dsp: *.dsp存放的是工程的一些配置信息
(1) # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
(2) !MESSAGE "DemoDll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
(3) !MESSAGE "DemoDll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
(4) # ADD BASE CPP /nologo/MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
(5) # ADD CPP /nologo/MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /Yu"stdafx.h" /FD /c
(6) # ADD BASE LINK32 /nologo /subsystem:windows /dll/machine:I386
(7) # ADD LINK32 /nologo /subsystem:windows /dll /machine:I386
(8) # ADD BASE CPP /nologo/MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
(9) # ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /Yu"stdafx.h" /FD /GZ /c
(10) # ADD BASE LINK32 /nologo /subsystem:windows/dll /debug /machine:I386 /pdbtype:sept
(11) # ADD LINK32 /nologo /subsystem
(12) 还要把BOOL CDemoDllApp::InitInstance()文件中的:
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
给注释掉.
二、方法 二:改配置信息
Project->Project Settings ->C/C++->Project Options :增加/MD
Project->Project Settings ->Link->Project Options :增加/dll
在主文件上,增加DllMain入口,给出导出函数与实现
增加*.def及实现
三、方法 三:新建dll工程,导入cpp文件与资源文件,稍加修改即可,这个最容易,不多说
-------------------------------------
error C1010: unexpected end of file while looking for precompiled header directive.
可能原因为工程中 stdafx.h 未包含。
//
在VC 6.0中编译c++程序时报该错原因为需要一个预编译的文件stdafx.h, 如果不需要编译该头文件的话,只需要打开seting 页面设置中在c/c++栏,选择PreCompiled headers,然后设置第一选项,选择不使用预编译头,解决这个问题。
或者
直接打开dsp工程文件,找到 /Yu"stdafx.h"去掉即可。
//
一般来说,在编译某个文件时,往往发现编译器指向某个源码文件的末尾,并且提示以上信息时,直接在cpp顶上加一项"stdafx.h".
而且不管文件所处是否和stdafx.h文件在同一目录中。编译后即可通过,没必要去修改编译开关。一般而言:预编译功能是解决大量标头文件重复编译的问题。
在stdafx.h头中,我们一般把那些公用的头文件放置在其中。特别是调用dll组件包时,dll引入到工程中。
相关文章推荐
- 如何将MFC生成的exe转换为DLL
- matlab编写的.M文件用vc6.0(MFC(dll)工程转换为dll文件,并用vc6.0(MFC对话框工程调用dll)文件
- 建立工程后刚开始编译出现了“error PRJ0003 : 生成 cmd.exe 时出错”这样的错误,虽然在debug中生成了.exe文件,但是无法执行,提示找不到mfc90ud.dll。
- VC中创建MFC规则DLL工程
- MFC生成的exe文件缺失dll问题
- MFC error可能是堆被损坏,这也说明 XX.exe 中或它所加载的任何 DLL 中有 bug
- VS2008下把EXE程序转换成DLL
- MFC的DLL库工程中使用CWebBrowser2控件
- 小技巧:vs2005创建的atl工程由不支持mfc转换为支持mfc
- VC 工程详解(MFC AppWizard(exe) 、 Win32 Application、 Win32 Console Application )
- Win32dll工程添加MFC窗口类之后遇到的各种问题
- C++之MFC从exe应用转成dll简洁快速方法
- 在VS中如何把exe关联到DLL工程中
- MFC工程从VC6.0转换成VS2013遇到的问题以及解决方法
- 用csc.exe将文本文件转换为exe,dll等
- 如何在MFC DLL工程添加DllMain入口
- 关于DLL工程中存在全局变量可能导致MFC内存泄露误报的原因分析及解决办法
- 在VC下把exe文件转换成DLL文件
- Win32工程中使用MFCdll的解决方法
- 关于DLL工程中存在全局变量可能导致MFC内存泄露误报的原因分析及解决办法