:【200分】----探讨一个静态编译的问题,请亲自实践过的发言,不欢迎没有实践就乱发言的

tgb 2004-06-28 05:55:27
tgb信誉分变化记录

删除帖子 2004-6-28 17:21:22
删除贴子,扣除信誉分5分。作者:tgb贴文时间:Jun 28 2004 4:52PM标题:【200分】----探讨一个静态编译的问题,请亲自实践过的发言,不欢迎没有实践就乱发言的所谓高等级用户!!!内容:还是SKinMagic2.0b1版本


以下是它的Lib文件和DLL说明

===============
Visual C++ 6.0
===============
SkinMagicLibMT6Trial.lib For Visual C++ 6.0 link with multithreaded run-time library.
SkinMagicLibMD6Trial.lib For Visual C++ 6.0 link with multithreaded DLL run-time library.



===============
DLL
===============
SkinMagicTrial.lib Import library of SkinMagicTrial.dll


我在我的程序中如果使用它的dll的话,必须连接它的 SkinMagicTrial.lib
但是我如何才能连接它的静态库呢? 看它的说明,似乎最上面的两个lib文件是给静态连接用的.

我试了以下,以下是结果:

A:EXE(Share MFC )+SkinMagic(动态DLL方式连接) 需要连接 SkinMagicTrial.lib,运行的时候需要 SkinMagicTrial.dll
B:EXE(Static MFC )+SkinMagic(静态Lib方式连接) 需要连接 SkinMagicLibMT6Trial.lib,运行的时候不需要SkinMagic的任何组件
C:EXE(Share MFC )+SkinMagic(静态Lib方式连接) 需要连接 SkinMagicLibMD6Trial.lib,运行的时候不需要SkinMagic的任何组件
D:EXE(Static MFC )+SkinMagic(动态DLL方式连接) 需要连接 SkinMagicTrial.lib,运行的时候需要 SkinMagicTrial.dll

但是我在试验【C】的情况下,出现了以下错误
==============================================================================================================
msvcrtd.lib(cinitexe.obj) : warning LNK4098: defaultlib "msvcrt.lib " conflicts with use of other libs; use /NODEFAULTLIB:library
SkinMagicLibMD6Trial.lib(MultiMonitor.obj) : error LNK2001: unresolved external symbol _xEnumDisplayMonitors@16
SkinMagicLibMD6Trial.lib(MultiMonitor.obj) : error LNK2001: unresolved external symbol _xGetMonitorInfo@8
SkinMagicLibMD6Trial.lib(MultiMonitor.obj) : error LNK2001: unresolved external symbol _xMonitorFromWindow@8
SkinMagicLibMD6Trial.lib(MultiMonitor.obj) : error LNK2001: unresolved external symbol _xMonitorFromPoint@12
SkinMagicLibMD6Trial.lib(MultiMonitor.obj) : error LNK2001: unresolved external symbol _xMonitorFromRect@8
Debug/test.exe : fatal error LNK1120: 5 unresolved externals
==============================================================================================================

请问我该如何在使用ShareMFC的情况下静态连接它的Lib???
是它的Lib文件提供错误了吗?



BTW:
另外,那几个函数是在user32.lib中,我手工连接user32.lib也没有作用,请指教!论坛:5001
...全文
111 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tgb 2004-06-28
  • 打赏
  • 举报
回复
谢谢!!!!
needways 2004-06-28
  • 打赏
  • 举报
回复
QQ: 75735583
needways 2004-06-28
  • 打赏
  • 举报
回复
“并且我连接成功,但是运行的时候出错!”
是在放在 stdafx.h 中还是指实现文件中?
tgb 2004-06-28
  • 打赏
  • 举报
回复
并且我连接成功,但是运行的时候出错!
needways 2004-06-28
  • 打赏
  • 举报
回复
在 stdafx.h 中定义,会造成重复定义。因为在 multimon.h 中有实现代码。
tgb 2004-06-28
  • 打赏
  • 举报
回复
为什么要在实现文件添加?
我为什么stdafx.h中添加不行???



==================
#ifdef _AFXDLL//Dll
#define _CJX_COMMENT "SkinMagicLibMD6Trial.lib"
#define _CJX_MESSAGE "SkinMagic will automatically link with SkinMagicTrial.dll"
#pragma warning(disable:4706)
#define COMPILE_MULTIMON_STUBS
#include <multimon.h>
#pragma warning(default:4706)
#else//Static
#define _CJX_COMMENT "SkinMagicLibMT6Trial.lib"
#define _CJX_MESSAGE "SkinMagicLibMT6Trial will automatically link with SkinMagicLibMT6Trial.lib"
#endif //
//*/
#pragma comment(lib, _CJX_COMMENT)
#pragma message(_CJX_MESSAGE)
tgb 2004-06-28
  • 打赏
  • 举报
回复
回复人: needways(needways) ( ) 信誉:100


多谢!!!!全给你,验证成功!!!!
我的QQ14322807,有空多聊聊!!
tgb 2004-06-28
  • 打赏
  • 举报
回复
faint,俺的帖子不知道被哪个垃圾版主删除了,靠,自己没有动手实践就来大放厥词,还不让别人指责???什么玩意
needways 2004-06-28
  • 打赏
  • 举报
回复
手工链接那几个函数的方法为在实现文件的头部加入以下内容:
#pragma warning(disable:4706)
#define COMPILE_MULTIMON_STUBS
#include <multimon.h>
#pragma warning(default:4706)

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧