dll erstellen -> error LNK2019



  • hallo,

    ich habe eine dll mit wxWidgets in visual studio 2008 erstellt.
    nun möchte ich eine zweite dll erstellen, die auf den namespace der ersten zugreift.
    leider bekomme ich beim builden der zweiten dll eine menge LNK2019 und LNK2001 fehler mit bezug auf die erste. ich habe dem linker den pfad zur ersten dll gegeben, insofern verstehe ich das problem dann nicht.

    hier die konkreten infos:

    erster von vielen linker fehlern:

    signalfileformats0.obj : error LNK2019: unresolved external symbol "public: void __thiscall ecwda::SignalBuffer::initBuffer(void)" (?initBuffer@SignalBuffer@ecwda@@QAEXXZ) referenced in function "private: void __thiscall libsf::SignalFileFormatS0::copySamples0(class std::vector<short,class std::allocator<short> > &,class ecwda::SignalBuffer &)" (?copySamples0@SignalFileFormatS0@libsf@@AAEXAAV?$vector@FV?$allocator@F@std@@@std@@AAVSignalBuffer@ecwda@@@Z)
    

    den pfad zur ersten dll habe ich bei linker -> additional library directories angegeben. zusätzlich habe ich den namen ecwdaWin.lib unter additional dependancies angegeben.

    dort existiert (vereinfacht code gekürzt):

    using namespace ecwda;
    void SignalBuffer::initBuffer()
    

    wie komme ich da weiter?



  • falls jemand mal dasselbe problem haben sollte:

    ich hatte in der dll, auf die zugegriffen werden soll, vergessen, alle notwendigen klassen mit "__declspec(dllexport)" zu kennzeichnen. deswegen waren sie nach außen hin unsichtbar.

    ich hatte das betroffene projekt aus linux übernommen und in windows weiter programmiert. in linux ist __declspec(dllexport) nicht notwendig.


Anmelden zum Antworten