2012-01-18 82 views
-2

我試圖編譯xll(就像一個dll,但是用於excel)。當我嘗試在VC2010上編譯xll時出現鏈接錯誤

我請點擊此鏈接:http://support.microsoft.com/kb/178474/en-us

當我編譯我的DLL,我有以下這些錯誤:

1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _debugPrintf already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _GetTempMemory already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _FreeAllTempMemory already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _Excel already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _Excel12f already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempNum already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempNum12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempStr already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempStrConst already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempStr12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempBool already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempBool12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempInt already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempInt12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempErr already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempErr12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempActiveRef already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempActiveRef12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempActiveCell already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempActiveCell12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempActiveRow already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempActiveRow12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempActiveColumn already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempActiveColumn12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempMissing already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _TempMissing12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _InitFramework already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _QuitFramework already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _FreeXLOperT already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _FreeXLOper12T already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _ConvertXLRefToXLRef12 already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _ConvertXLRef12ToXLRef already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _XLOper12ToXLOper already defined in FRAMEWRK.obj 
1>frmwrk32.lib(FRAMEWRK.obj) : error LNK2005: _XLOperToXLOper12 already defined in FRAMEWRK.obj 
1>Riskedge_Xll.exp : warning LNK4070: /OUT:Riskedge_Xll.xll directive in .EXP differs from output filename 'Riskedge_Xll.dll'; ignoring directive 
1>LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library 

我嘗試使用/NODEFAULTLIB但結果比我修改前 這裏更糟你有我的命令行:

/OUT:"C:\Users\Stagiaire\Documents\Riskedge\Online_pricer\Xll Builder\Debug\Riskedge_Xll.dll" 
/INCREMENTAL /NOLOGO 
/LIBPATH:"C:\Users\Stagiaire\Documents\Riskedge\Online_pricer\Xll Builder" 
/DLL "XLCALL32.LIB" "frmwrk32.lib" "User32.lib" /DEF:"C:\Users\Stagiaire\Documents\Riskedge\Online_pricer\Xll Builder\Riskedge_Xll.def" /MANIFEST /ManifestFile:"Debug\Riskedge_Xll.dll.intermediate.manifest" 
/ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" 
/DEBUG /PDB:"C:\Users\Stagiaire\Documents\Riskedge\Online_pricer\Xll Builder\Debug\Riskedge_Xll.pdb" 
/SUBSYSTEM:WINDOWS /PGD:"C:\Users\Stagiaire\Documents\Riskedge\Online_pricer\Xll Builder\Debug\Riskedge_Xll.pgd" 
/TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE 

我嘗試在視覺終極2010下在Windows 7 x64下編譯

任何人有一個想法來解決我的問題PLZ?

+0

你能發佈你的完整鏈接命令嗎? – hmjd 2012-01-18 11:19:24

+0

當然,我把它發佈在我的問題 – 2012-01-18 11:28:51

+0

作爲解決方案/項目的一部分,你是否有framewrk源代碼(FRAMEWRK.c,FRAMEWRK.H,MemoryPool.h等)? – hmjd 2012-01-18 11:37:07

回答

1

wvsprintf定義在User32.lib,所以你必須鏈接到這個庫。

Functions in the Framework Library

使用該框架庫函數,你必須在你的C代碼FRAMEWRK.H文件和FRAMEWRK.C或FRMWRK32.LIB文件添加到您的代碼項目。

無論是在您的項目/解決方案或鏈接FRAMEWRK.cFRMWRK32.LIB,但不能同時使用。

+0

感謝您的這一點,一些錯誤消失 – 2012-01-18 11:27:36

相關問題