问题
I have found one site where there is an instruction on how to build Shockwave ActiveX in C++ Builder but with errors. It comes from Chinese ... http://hi.baidu.com/luoshupeng/blog/item/c5bdaf446aed0988b3b7dc20.html
Does anyone know how to build ShockWave ActiveX in C++ builder 2010 as I had a transition from c++ builder 6 to c++ builder 2010 and much used to it, however it's possible to build it in c++ builder 6.
Errors are smth like these::::
Checking project dependencies...
Compiling ShockWave.cbproj (Debug configuration)
[ILINK32 Error] Error: Unresolved external '__stdcall Shockwaveflashobjects_tlb::IDispatchEx::GetDispID(wchar_t *, unsigned long, long *)' referenced from F:\个人重要资料(勿删)\ADMINISTRATOR\桌面\DEBUG\SHOCKWAVEFLASHOBJECTS_OCX.OBJ
[ILINK32 Error] Error: Unresolved external '__stdcall Shockwaveflashobjects_tlb::IDispatchEx::RemoteInvokeEx(long, unsigned long, unsigned long, tagDISPPARAMS *, tagVARIANT *, tagEXCEPINFO *, Shockwaveflashobjects_tlb::IServiceProvider *, unsigned int, unsigned int *, tagVARIANT *)' referenced from F:\个人重要资料(勿删)\ADMINISTRATOR\桌面\DEBUG\SHOCKWAVEFLASHOBJECTS_OCX.OBJ
[ILINK32 Error] Error: Unresolved external '__stdcall Shockwaveflashobjects_tlb::IDispatchEx::DeleteMemberByName(wchar_t *, unsigned long)' referenced from F:\个人重要资料(勿删)\ADMINISTRATOR\桌面\DEBUG\SHOCKWAVEFLASHOBJECTS_OCX.OBJ
[ILINK32 Error] Error: Unresolved external '__stdcall Shockwaveflashobjects_tlb::IDispatchEx::DeleteMemberByDispID(long)' referenced from F:\个人重要资料(勿删)\ADMINISTRATOR\桌面\DEBUG\SHOCKWAVEFLASHOBJECTS_OCX.OBJ
[ILINK32 Error] Error: Unresolved external '__stdcall Shockwaveflashobjects_tlb::IDispatchEx::GetMemberProperties(long, unsigned long, unsigned long *)' referenced from F:\个人重要资料(勿删)\ADMINISTRATOR\桌面\DEBUG\SHOCKWAVEFLASHOBJECTS_OCX.OBJ
[ILINK32 Error] Error: Unresolved external '__stdcall Shockwaveflashobjects_tlb::IDispatchEx::GetMemberName(long, wchar_t * *)' referenced from F:\个人重要资料(勿删)\ADMINISTRATOR\桌面\DEBUG\SHOCKWAVEFLASHOBJECTS_OCX.OBJ
[ILINK32 Error] Error: Unresolved external '__stdcall Shockwaveflashobjects_tlb::IDispatchEx::GetNextDispID(unsigned long, long, long *)' referenced from F:\个人重要资料(勿删)\ADMINISTRATOR\桌面\DEBUG\SHOCKWAVEFLASHOBJECTS_OCX.OBJ
[ILINK32 Error] Error: Unresolved external '__stdcall Shockwaveflashobjects_tlb::IDispatchEx::GetNameSpaceParent(IUnknown * *)' referenced from F:\个人重要资料(勿删)\ADMINISTRATOR\桌面\DEBUG\SHOCKWAVEFLASHOBJECTS_OCX.OBJ
[ILINK32 Error] Error: Unable to perform link
Failed
Elapsed time: 00:00:03.7
回答1:
There's a reported issue over here that sounds similar to your problem. This comment below, in particular, sounds like a hint to solving your linking issues:
The TLB declares the interface IDispatchEx, but doesn't provide implementations of virtual methods. As methods are not declared pure, linker is looking for them.
Declaring methods inline simply fools linker into thinking that no one is referencing them. But if one tries to call such methods, linking failure will occur.
来源:https://stackoverflow.com/questions/4654269/several-errors-during-building-shockwave-activexflash-in-c-builder-2010