MFC DLL更名输出问题
2007-02-13 09:53
309 查看
一次,一个MFC标准dll,在VC6的setting中,把D版的Dll更名输出,然后采用不同版链接不同dll,如下
//编译dll时设定_DLL_LTimeCount
#if !defined(_DLL_LTimeCount) && !defined(_JKSLTimeCount_MANUALLOAD) && !defined(_JKSALLDLLS_MANUALLOAD)
#ifdef _DEBUG
#pragma comment(lib,"LTimeCountD.lib")//对应LTimeCountD.dll
#pragma message("LTimeCountD.lib is linked./n")
#else
#pragma comment(lib,"LTimeCount.lib")//对应LTimeCount.dll
#pragma message("LTimeCount.lib is linked./n")
#endif
#define _JKSLTimeCount_MANUALLOAD
#endif
但是发现居然每次链接的都是 LTimeCount.dll,不管是R版还是D版
然而Win32 DLL就没有这个问题
经过分析发现,是由于MFC DLL工程中自动生成了一个def文件,其中指定了DLL的名称,
所以只要把这行屏蔽了就行了。如下
; LTimeCount.def : Declares the module parameters for the DLL.
;LIBRARY "LTimeCount" //屏蔽这一行
DESCRIPTION 'LTimeCount Windows Dynamic Link Library'
EXPORTS
; Explicit exports can go here
//编译dll时设定_DLL_LTimeCount
#if !defined(_DLL_LTimeCount) && !defined(_JKSLTimeCount_MANUALLOAD) && !defined(_JKSALLDLLS_MANUALLOAD)
#ifdef _DEBUG
#pragma comment(lib,"LTimeCountD.lib")//对应LTimeCountD.dll
#pragma message("LTimeCountD.lib is linked./n")
#else
#pragma comment(lib,"LTimeCount.lib")//对应LTimeCount.dll
#pragma message("LTimeCount.lib is linked./n")
#endif
#define _JKSLTimeCount_MANUALLOAD
#endif
但是发现居然每次链接的都是 LTimeCount.dll,不管是R版还是D版
然而Win32 DLL就没有这个问题
经过分析发现,是由于MFC DLL工程中自动生成了一个def文件,其中指定了DLL的名称,
所以只要把这行屏蔽了就行了。如下
; LTimeCount.def : Declares the module parameters for the DLL.
;LIBRARY "LTimeCount" //屏蔽这一行
DESCRIPTION 'LTimeCount Windows Dynamic Link Library'
EXPORTS
; Explicit exports can go here
相关文章推荐
- MFC DLL 与 Delphi DLL的互相调用要注意的问题
- 关于使用MFC DLL时提示内存泄漏问题
- 记一次进程线程dll和MFC消息循环的系列问题
- MFC在共享DLL中使用转换为静态库中使用的一些问题
- 在控制台环境下调用MFC DLL崩溃的问题小结
- 关于VC6创建mfc程序提示缺少头文件或者缺少dll问题的解决
- VS2010 DLL工程,输出文件更名
- 仿MFC实现c++按名动态创建对象之续(瘦身以及解决其在dll中使用的问题)
- 关于Use MFC in a Shared DLL和Use MFC in a Static Library 转换遇到的问题
- MFC 扩展DLL中使用STL 问题
- MFC DLL生成项目解决方案时遇到的问题
- MFC扩展dll里导出函数时资源切换的问题
- (转载)在MFC扩展DLL中输出对话框
- MFC之调用DLL的问题:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR
- [VB.NET]求教:vb.net调用MFC DLL问题
- VC扩展mfc dll中子对话框不能获取焦点问题
- DLL/OCX中的MFC对话框不能处理Tab和回车键的问题
- WIN32 DLL中使用MFC的问题
- vs2008中的MFC用共享DLL和静态中使用MFC,遇到的问题
- c#的调用VC的dll输出参数的问题