Bonjour,
J'ai un probleme avec une dll Win32 exportant des classes contenant des methode retournat un CString.
Les methode qui retournent des entiers ou meme des CArray sont retrouv�es lors de l'edition de lien mais toutes les methodes retournat des CString donne lieu a une erreur du type:
Ma classe est declaree comme �a:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 error LNK2019: symbole externe non résolu "__declspec(dllimport) public: class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > __thiscall CDpwsService::GetSubscriptionId(void)const " (__imp_?GetSubscriptionId@CDpwsService@@QBE?AV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@XZ) référencé dans la fonction "public: virtual int __thiscall CMetaDataDlg::OnInitDialog(void)" (?OnInitDialog@CMetaDataDlg@@UAEHXZ)
Je suppose qu'il y a un "bins" avec le type de retour (un template) et les fameux warning 4251, mais je ne trouve pas le moyen de contourner ce pb.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 #ifndef DPWS_SERVICE_H #define DPWS_SERVICE_H #ifdef DPWS_SERVICE_EXPORTS #define DPWS_SERVICE_API __declspec(dllexport) #else #define DPWS_SERVICE_API __declspec(dllimport) #endif #include <AfxTempl.h> #include "DpwsWsdlInfo.h" class DPWS_SERVICE_API CDpwsService { public: CDpwsService(void); ~CDpwsService(void); void SetServiceId(CString aserviceId); void SetAddress(CString aAddress); void SetSubscriptionId(CString aSubscriptionId); CString GetServiceId() const; CString GetAddress() const; CString GetSubscriptionId() const; int GetNbWsdl() const; void AddWsdl(CDpwsWsdlInfo * aWsdlInfo); const CDpwsWsdlInfo * GetWsdlAt(int i) const; private: CString m_serviceId; CString m_address; CString m_subscriptionId; //WSDLS Info CArray < CDpwsWsdlInfo * > m_wsdlsInfo; }; #endif
Partager