C++ 尝试在VC2010上编译xll时出现链接错误
我尝试编译一个xll(类似于dll,但用于excel) 我关注以下链接: 编译dll时,出现以下错误:C++ 尝试在VC2010上编译xll时出现链接错误,c++,visual-studio-2010,excel,linker,xll,C++,Visual Studio 2010,Excel,Linker,Xll,我尝试编译一个xll(类似于dll,但用于excel) 我关注以下链接: 编译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>frm
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
我尝试在VisualUltimate 2010下的Windows7x64上编译
有人有办法解决我的问题吗?plz?是在User32.lib
中定义的,因此您必须链接到此库
发件人:
要使用框架库函数,必须在C代码中包含FRAMEWRK.H文件,并将FRAMEWRK.C或FRMWRK32.LIB文件添加到代码项目中
在您的项目/解决方案中包括
FRAMEWRK.c
,或链接到FRMWRK32.LIB
,但不能同时包含两者。请帮自己一个忙并加以利用。您将在2分钟内启动并运行。您可以发布完整的链接器命令吗?当然,我在问题中发布了它。您的解决方案/项目中是否包含framewrk源(framewrk.c、framewrk.H、MemoryPool.H等)?是,所有这些源文件和头文件都在我的解决方案/项目中,如果是这样,那么您不需要链接“frmwrk32.lib”:“要使用框架库函数,您必须在C代码中包含FRAMEWRK.H文件,并将FRAMEWRK.C或frmwrk32.lib文件添加到您的代码项目中。”因此,FRAMEWRK.C或frmwrk32.lib都可以。