我给原来的窗口程序加皮肤,对这个程序添加下面的操作:
1:将 SkinMagic 包中的 SkinMagicLib.h、SkinMagicLib.lib、DETOURS.lib 从示例工程./res 中,点击Project->Add To Project->Files,包含到工程中。 
2:在对应的头文件中加入 #include "SkinMagicLib.h" 。
3:在对应的源文件内添加SkinMagic皮肤加载的代码。但连接时出现了下面的问题:SkinMagicLib.lib(SkinData.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ) ,该符号在函数 "public: class std::_Tree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class CSkinData *>,struct std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CSkinData *,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class CSkinData *> >::_Kfn,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class CSkinData *> >::iterator __thiscall std::_Tree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class CSkinData *>,struct std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CSkinData *,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class CSkinData *> >::_Kfn,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class CSkinData *> >::erase(class std::_Tree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class CSkinData *>,struct std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CSkinData *,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class CSkinData *> >::_Kfn,struct std::less<class std::basic_string<char,
truct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class CSkinData *> >::iterator)" (?erase@?$_Tree@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCSkinData@@@2@U_Kfn@?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCSkinData@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@PAVCSkinData@@@2@@2@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@PAVCSkinData@@@2@@std@@QAE?AViterator@12@V312@@Z) 中被引用
SkinMagicLib.lib(SkinStatusBar.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ)
SkinMagicLib.lib(SkinMenuBar.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ)
SkinMagicLib.lib(SkinWndMap.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ) ,该符号在函数 "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::assign(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int,unsigned int)" (?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z) 中被引用
SkinMagicLib.lib(SkinWnd.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ) ,该符号在函数 "public: class CSkinControl * __thiscall CSkinWnd::CreateControlByType(int)" (?CreateControlByType@CSkinWnd@@QAEPAVCSkinControl@@H@Z) 中被引用
SkinMagicLib.lib(SkinPopupMenuWnd.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ)
SkinMagicLib.lib(SkinDataMan.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ)
SkinMagicLib.lib(SkinMenuBar.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ)
SkinMagicLib.lib(SkinData.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ)
SkinMagicLib.lib(SkinStatusBar.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ)
SkinMagicLib.lib(PopupMenu.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ)
SkinMagicLib.lib(PopupMenuItem.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ)
SkinMagicLib.lib(SkinWndMap.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ) ,该符号在函数 "private: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAE_NI_N@Z) 中被引用
SkinMagicLib.lib(SkinWnd.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ)
SkinMagicLib.lib(SkinPopupMenuWnd.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ)
SkinMagicLib.lib(SkinDataMan.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ) ,该符号在函数 "public: int __thiscall CSkinDataMan::AddImage(class CImageSkinData *)" (?AddImage@CSkinDataMan@@QAEHPAVCImageSkinData@@@Z) 中被引用
SkinMagicLib.lib(coolsblib.obj) : error LNK2019: 无法解析的外部符号 __imp__InitCommonControlsEx@4 ,该符号在函数 _InitializeCoolSB@4 中被引用
SkinMagicLib.lib(SkinToolBar.obj) : error LNK2019: 无法解析的外部符号 __imp__ImageList_GetIcon@12 ,该符号在函数 "protected: void __thiscall CSkinToolBar::DrawButton(struct HDC__ *,int,int)" (?DrawButton@CSkinToolBar@@IAEXPAUHDC__@@HH@Z) 中被引用
SkinMagicLib.lib(SkinToolBar.obj) : error LNK2019: 无法解析的外部符号 __imp__ImageList_Draw@24 ,该符号在函数 "protected: void __thiscall CSkinToolBar::DrawButton(struct HDC__ *,int,int)" (?DrawButton@CSkinToolBar@@IAEXPAUHDC__@@HH@Z) 中被引用
SkinMagicLib.lib(SkinToolBar.obj) : error LNK2019: 无法解析的外部符号 __imp__ImageList_GetIconSize@12 ,该符号在函数 "protected: void __thiscall CSkinToolBar::DrawButton(struct HDC__ *,int,int)" (?DrawButton@CSkinToolBar@@IAEXPAUHDC__@@HH@Z) 中被引用
SkinMagicLib.lib(SkinControl.obj) : error LNK2019: 无法解析的外部符号 __imp___TrackMouseEvent@4 ,该符号在函数 "protected: void __thiscall CSkinControl::SetMouseTrack(void)" (?SetMouseTrack@CSkinControl@@IAEXXZ) 中被引用
Debug/Client.exe : fatal error LNK1120: 7 个无法解析的外部命令

解决方案 »

  1.   

    1:将 SkinMagic 包中的 SkinMagicLib.h、SkinMagicLib.lib、DETOURS.lib 从示例工程./res 中,点击Project->Add To Project->Files,包含到工程中。 
    -----------------------------------------------------------------------
    我是直接把SkinMagicLib.h、SkinMagicLib.lib、DETOURS.lib 复制到工程目录下面, 然后在所需的cpp文件中添加#include "SkinMagicLib.h",并在工程的链接设置里面添加包含库文件SkinMagicLib.lib、DETOURS.lib 当然也可以用
    #pragma comment(lib, "SkinMagicLib.lib")
    #pragma comment(lib, "DETOURS.lib")
    来搞掂
      

  2.   

    to-> lisunlin0(李林) 那样做问题一样以前我在VC6下这样为程序加皮肤不会出问题,所以这次就直接在VC.NET下这样加皮肤了,出现了这个问题。
      

  3.   

    自己结帖:
    按照http://www.vckbase.com/document/viewdoc/?id=1024这上面的做
    Link -> Object/library modules:  comctl32.lib  
    另外居然有些皮肤不能显示来着。