[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)" (??0CModArt@@QAE@XZ) referenced in function "protected: __thiscall CTestAppDoc::CTestAppDoc(void)" (??0CTestAppDoc@@IAE@XZ)
1>TestAppDoc.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall CModArt::~CModArt(void)" (??1CModArt@@UAE@XZ) referenced in function "public: virtual __thiscall CTestAppDoc::~CTestAppDoc(void)" (??1CTestAppDoc@@UAE@XZ)
1>TestAppDoc.obj : error LNK2019: unresolved external symbol "public: void __thiscall CModArt::NowyRysunek(void)" (?NowyRysunek@CModArt@@QAEXXZ) referenced in function "public: virtual int __thiscall CTestAppDoc::OnNewDocument(void)" (?OnNewDocument@CTestAppDoc@@UAEHXZ)
1>TestAppDoc.obj : error LNK2019: unresolved external symbol "public: void __thiscall CModArt::UstawObszar(class CRect)" (?UstawObszar@CModArt@@QAEXVCRect@@@Z) referenced in function "public: virtual int __thiscall CTestAppDoc::OnNewDocument(void)" (?OnNewDocument@CTestAppDoc@@UAEHXZ)
1>TestAppDoc.obj : error LNK2019: unresolved external symbol "public: void __thiscall CModArt::CzyscRysunek(void)" (?CzyscRysunek@CModArt@@QAEXXZ) referenced in function "public: virtual void __thiscall CTestAppDoc::DeleteContents(void)" (?DeleteContents@CTestAppDoc@@UAEXXZ)
1>TestAppView.obj : error LNK2019: unresolved external symbol "public: void __thiscall CModArt::Rysuj(class CDC *)" (?Rysuj@CModArt@@QAEXPAVCDC@@@Z) referenced in function "public: virtual void __thiscall CTestAppView::OnDraw(class CDC *)" (?OnDraw@CTestAppView@@UAEXPAVCDC@@@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