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