Copy link to clipboard
Copied
Hi everyone,
I'm beginner with InDesign Plug In programming and i'm trying to create a three view widget.
I think i did something wrong, i get about 30 linking error when compiling, if someone see something i missed it would be great to help...
here is the step i followed :
So i firstly defined a ClassID this way :
---------------------------------------------------------------------------------------------------------------------
DECLARE_PMID(kClassIDSpace, kMyPluginMessageListWidgetBoss, kMyPluginPrefix + 7)
---------------------------------------------------------------------------------------------------------------------
then i defined a type this way :
-----------------------------------------------------------------------------------------------------------------------
type MyPluginMessageListBox(kViewRsrcType) : TreeViewWidget(ClassID = kMyPluginMessageListWidgetBoss){ };
----------------------------------------------------------------------------------------------------------------------
then i described my threeviewwidgetboss and the implementations it will contain in classdescriptiontable :
----------------------------------------------------------------------------------------------------------------------
Class
{
kMyPluginMessageListWidgetBoss
kTreeViewWidgetBoss,
{
/** Furnishes application framework with widgets as needed
*/
IID_ITREEVIEWWIDGETMGR, kMyPluginMessageTreeViewWidgetMgrImpl,
/** Adapts our data model to the needs of the application framework
*/
IID_ITREEVIEWHIERARCHYADAPTER, kMyPluginMessageTreeViewAdapterImpl,
/**
Implements the observer that receives the messages from the application
when user clicks in the list box, see DCLSizListBoxObserver.
*/
IID_IOBSERVER, kMyPluginMessageListBoxObserverImpl,
}
},
----------------------------------------------------------------------------------------------------------------------
after all that i mentionned the implementation in the id.h (DECLARE_PMID) and in the factorylist (REGISTER_PMINTERFACE) and i finally created all the needed implementation.
i also added in the linker input the library WidgetBin.lib.
after a quick debug of the logical treatments, i get the followings linker errors (LNK 2001) :
debugger output :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1>DAJMelodyPlugInListBoxObserver.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: __thiscall NodeID::~NodeID(void)" (__imp_??1NodeID@@QAE@XZ) référencé dans la fonction "void __cdecl K2destroy<class NodeID>(class NodeID *)" (??$K2destroy@VNodeID@@@@YAXPAVNodeID@@@Z)
1>DAJMelodyPlugInListBoxObserver.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: long __thiscall NodeID::GetNodeType(void)const " (__imp_?GetNodeType@NodeID@@QBEJXZ) référencé dans la fonction "public: virtual void __thiscall DAJMelodyPlugInListBoxObserver::Update(class IDType<struct ClassID_tag> const &,class ISubject *,class IDType<struct PMIID_tag> const &,void *)" (?Update@DAJMelodyPlugInListBoxObserver@@UAEXABV?$IDType@UClassID_tag@@@@PAVISubject@@ABV?$IDType@UPMIID_tag@@@@PAX@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: long __thiscall NodeID::GetNodeType(void)const " (__imp_?GetNodeType@NodeID@@QBEJXZ)
1>DAJMelodyPlugInListBoxObserver.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: class NodeIDClass * __thiscall NodeID::Get(void)const " (__imp_?Get@NodeID@@QBEPAVNodeIDClass@@XZ) référencé dans la fonction "public: virtual void __thiscall DAJMelodyPlugInListBoxObserver::Update(class IDType<struct ClassID_tag> const &,class ISubject *,class IDType<struct PMIID_tag> const &,void *)" (?Update@DAJMelodyPlugInListBoxObserver@@UAEXABV?$IDType@UClassID_tag@@@@PAVISubject@@ABV?$IDType@UPMIID_tag@@@@PAX@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: class NodeIDClass * __thiscall NodeID::Get(void)const " (__imp_?Get@NodeID@@QBEPAVNodeIDClass@@XZ)
1>DAJMelodyPlugInListBoxObserver.obj : error LNK2019: symbole externe non résolu "public: __thiscall DAJMelodyPlugInListBoxObserver::DAJMelodyPlugInListBoxObserver(class IPMUnknown *)" (??0DAJMelodyPlugInListBoxObserver@@QAE@PAVIPMUnknown@@@Z) référencé dans la fonction _CreatekDAJMelodyPlugInMessageListBoxObserverImpl_
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: __thiscall CTreeViewWidgetMgr::CTreeViewWidgetMgr(class IPMUnknown *,long)" (__imp_??0CTreeViewWidgetMgr@@QAE@PAVIPMUnknown@@J@Z) référencé dans la fonction "public: __thiscall DAJMelodyPlugInMessageTreeViewWidgetMgr::DAJMelodyPlugInMessageTreeViewWidgetMgr(class IPMUnknown *)" (??0DAJMelodyPlugInMessageTreeViewWidgetMgr@@QAE@PAVIPMUnknown@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: virtual __thiscall CTreeViewWidgetMgr::~CTreeViewWidgetMgr(void)" (__imp_??1CTreeViewWidgetMgr@@UAE@XZ) référencé dans la fonction "public: virtual void * __thiscall DAJMelodyPlugInMessageTreeViewWidgetMgr::`scalar deleting destructor'(unsigned int)" (??_GDAJMelodyPlugInMessageTreeViewWidgetMgr@@UAEPAXI@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall CTreeViewWidgetMgr::AddRef(void)const " (?AddRef@CTreeViewWidgetMgr@@UBEXXZ)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual void __thiscall CTreeViewWidgetMgr::ApplyHighlightToWidget(class NodeID const &,class IControlView *,long)const " (?ApplyHighlightToWidget@CTreeViewWidgetMgr@@MBEXABVNodeID@@PAVIControlView@@J@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual void __thiscall CTreeViewWidgetMgr::ApplyIndentToWidget(class NodeID const &,class IPanelControlData *,long)const " (?ApplyIndentToWidget@CTreeViewWidgetMgr@@MBEXABVNodeID@@PAVIPanelControlData@@J@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual short __thiscall CTreeViewWidgetMgr::ApplyNodeIDToWidget(class NodeID const &,class IControlView *,long)const " (?ApplyNodeIDToWidget@CTreeViewWidgetMgr@@UBEFABVNodeID@@PAVIControlView@@J@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual class IControlView * __thiscall CTreeViewWidgetMgr::CreateWidgetForNode(class NodeID const &)const " (?CreateWidgetForNode@CTreeViewWidgetMgr@@UBEPAVIControlView@@ABVNodeID@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual class PMReal __thiscall CTreeViewWidgetMgr::GetBaseIndentOffset(class IControlView *)const " (?GetBaseIndentOffset@CTreeViewWidgetMgr@@MBE?AVPMReal@@PAVIControlView@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual class PMReal __thiscall CTreeViewWidgetMgr::GetIndent(class NodeID const &)const " (?GetIndent@CTreeViewWidgetMgr@@MBE?AVPMReal@@ABVNodeID@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual class PMReal __thiscall CTreeViewWidgetMgr::GetIndentForNode(class NodeID const &)const " (?GetIndentForNode@CTreeViewWidgetMgr@@UBE?AVPMReal@@ABVNodeID@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual class PMReal __thiscall CTreeViewWidgetMgr::GetNodeWidgetHeight(class NodeID const &)const " (?GetNodeWidgetHeight@CTreeViewWidgetMgr@@UBE?AVPMReal@@ABVNodeID@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual class PMReal __thiscall CTreeViewWidgetMgr::GetNodeWidgetWidth(class NodeID const &)const " (?GetNodeWidgetWidth@CTreeViewWidgetMgr@@UBE?AVPMReal@@ABVNodeID@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual long __thiscall CTreeViewWidgetMgr::GetStyle(void)const " (?GetStyle@CTreeViewWidgetMgr@@UBEJXZ)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual class PMReal __thiscall CTreeViewWidgetMgr::GetTreeViewWidth(void)const " (?GetTreeViewWidth@CTreeViewWidgetMgr@@MBE?AVPMReal@@XZ)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual class IDType<struct WidgetID_tag> __thiscall CTreeViewWidgetMgr::GetWidgetTypeForNode(class NodeID const &)const " (?GetWidgetTypeForNode@CTreeViewWidgetMgr@@UBE?AV?$IDType@UWidgetID_tag@@@@ABVNodeID@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual void __thiscall CTreeViewWidgetMgr::HideExpanderIfNotExpandable(class NodeID const &,class IPanelControlData *,long)const " (?HideExpanderIfNotExpandable@CTreeViewWidgetMgr@@MBEXABVNodeID@@PAVIPanelControlData@@J@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "private: virtual void __thiscall CTreeViewWidgetMgr::InternalSetStyle(long)" (?InternalSetStyle@CTreeViewWidgetMgr@@EAEXJ@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual short __thiscall CTreeViewWidgetMgr::IsOptionSet(enum CTreeViewWidgetMgr::Options)const " (?IsOptionSet@CTreeViewWidgetMgr@@MBEFW4Options@1@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "private: virtual void __thiscall CTreeViewWidgetMgr::LazyRegisterStyles(void)const " (?LazyRegisterStyles@CTreeViewWidgetMgr@@EBEXXZ)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall CTreeViewWidgetMgr::PreDeleteWidget(class IControlView *)" (?PreDeleteWidget@CTreeViewWidgetMgr@@UAEXPAVIControlView@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual class IPMUnknown * __thiscall CTreeViewWidgetMgr::QueryInterface(class IDType<struct PMIID_tag>)const " (?QueryInterface@CTreeViewWidgetMgr@@UBEPAVIPMUnknown@@V?$IDType@UPMIID_tag@@@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual void __thiscall CTreeViewWidgetMgr::RegisterStyleWidget(long,unsigned long,class IDType<struct PluginID_tag>)" (?RegisterStyleWidget@CTreeViewWidgetMgr@@MAEXJKV?$IDType@UPluginID_tag@@@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall CTreeViewWidgetMgr::Release(void)const " (?Release@CTreeViewWidgetMgr@@UBEXXZ)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual void __thiscall CTreeViewWidgetMgr::SetNodeIcon(class IPanelControlData *,unsigned long,class IDType<struct PluginID_tag>,class IDType<struct WidgetID_tag>)const " (?SetNodeIcon@CTreeViewWidgetMgr@@MBEXPAVIPanelControlData@@KV?$IDType@UPluginID_tag@@@@V?$IDType@UWidgetID_tag@@@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "protected: virtual void __thiscall CTreeViewWidgetMgr::SetNodeName(class IPanelControlData *,class PMString const &,class IDType<struct WidgetID_tag>)const " (?SetNodeName@CTreeViewWidgetMgr@@MBEXPAVIPanelControlData@@ABVPMString@@V?$IDType@UWidgetID_tag@@@@@Z)
1>DAJMelodyPlugInMessageTreeViewWidgetMgr.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall CTreeViewWidgetMgr::SetStyle(long)" (?SetStyle@CTreeViewWidgetMgr@@UAEXJ@Z)
1>..\debug\sdk\DAJMelodyPlugin.sdk.pln : fatal error LNK1120: 30 externes non résolus
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Thanks for reading if you see something i did wrong or missed in the way please inform me !
Have a nice day.
Jeremy
Link to DV_WidgetBin.lib as well, the definitions for methods in CTreeViewWidgetMgr are defined in this library
-Manan
Copy link to clipboard
Copied
Link to DV_WidgetBin.lib as well, the definitions for methods in CTreeViewWidgetMgr are defined in this library
-Manan
Copy link to clipboard
Copied
It's solved, you were right ,it was the library that was missing !
Thanks a lot !
Regards,
Jeremy