[Visual C++] Korzystanie z własnego pliku dll

0

Witam, chcę aby mój program korzystał z pliku .dll w którym znajdują się definicje i implemenetacje dwóch klas. Dodałem plik .lib do projektu, ale przy kompilacji wyskakują mi następujące błędy:

1>TestAppDoc.obj : error LNK2019: unresolved external symbol "public: __thiscall CModArt::CModArt(void)" ([email protected]@[email protected]) referenced in function "protected: __thiscall CTestAppDoc::CTestAppDoc(void)" ([email protected]@[email protected])
1>TestAppDoc.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall CModArt::~CModArt(void)" ([email protected]@[email protected]) referenced in function "public: virtual __thiscall CTestAppDoc::~CTestAppDoc(void)" ([email protected]@[email protected])
1>TestAppDoc.obj : error LNK2019: unresolved external symbol "public: void __thiscall CModArt::NowyRysunek(void)" ([email protected]@@QAEXXZ) referenced in function "public: virtual int __thiscall CTestAppDoc::OnNewDocument(void)" ([email protected]@@UAEHXZ)
1>TestAppDoc.obj : error LNK2019: unresolved external symbol "public: void __thiscall CModArt::UstawObszar(class CRect)" ([email protected]@@[email protected]@@Z) referenced in function "public: virtual int __thiscall CTestAppDoc::OnNewDocument(void)" ([email protected]@@UAEHXZ)
1>TestAppDoc.obj : error LNK2019: unresolved external symbol "public: void __thiscall CModArt::CzyscRysunek(void)" ([email protected]@@QAEXXZ) referenced in function "public: virtual void __thiscall CTestAppDoc::DeleteContents(void)" ([email protected]@@UAEXXZ)
1>TestAppView.obj : error LNK2019: unresolved external symbol "public: void __thiscall CModArt::Rysuj(class CDC *)" ([email protected]@@[email protected]@@Z) referenced in function "public: virtual void __thiscall CTestAppView::OnDraw(class CDC *)" ([email protected]@@[email protected]@@Z)

Dodam iż wcześniej program ten korzystał z dołączonego modułu .lib (bez .dlla)....może to dlatego?

Ale co zrobić? Próbowałem 'rebuild solution', 'clean' i nie pomogło...

0

ale ja mam klasy a nie funkcję:
np.:

class AFX_EXT_CLASS  CLinia : public CObject
{
public:
    COLORREF m_crKolor;
    void Rysuj(CDC *pDC);
    CLinia(CPoint ptOd, CPoint ptDo, UINT nSzerokosc, COLORREF crKolor);
    CLinia();
    virtual ~CLinia();

private:
    CPoint m_ptDo;
    CPoint m_ptOd;
    UINT m_nSzerokosc;
};
0
jj09 napisał(a)

ale ja mam klasy a nie funkcję

Ale to może byś przeczytał tekst, do którego link do stałeś? Masz tam link 'Using dllimport and dllexport in C++ Classes'. Bezstresowe wychowanie i nauczanie...

0
... napisał(a)
jj09 napisał(a)

ale ja mam klasy a nie funkcję

Ale to może byś przeczytał tekst, do którego link do stałeś? Masz tam link 'Using dllimport and dllexport in C++ Classes'. Bezstresowe wychowanie i nauczanie...
widzę, że bezstresowo to ty ludzi oceniasz :d

myślałem, że autorowi chodziło o tekst do którego linka podał, a nie o linka, który znajduje się na stronie do której linka podał :-D

a poza tym to makro AFX_EXT_CLASS stosowałem zamiast declspec( dllexport ) i działało...teraz zamieniłem je na declspec( dllexport ) i błędy przestały się sypać....dziwne

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0