Bonjour bonjour,
Mise en situation
Je suis en cour de réalisation d'un programme de teste pour testé une DLL. J'ai bien associé ma DLL à mon nouveau project ect....
Après avoir utilisé __declspec(dllexport) pour plusieurs fonction de ma DLL supert simple, maintenant j'utilise exactement la même chose que pour mes fonction simple mais je me retrouve avec des erreurs de LINK.
Bref je doit pas être très claire ^^
Voila du code sa parlera plus parlant:
Voila les erreurs :
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 #if !defined(AFX_TIERSDECONFIANCEAUTO_H__FF643D08_6704_41F2_B548_D1DA1319CEC8__INCLUDED_) #define AFX_TIERSDECONFIANCEAUTO_H__FF643D08_6704_41F2_B548_D1DA1319CEC8__INCLUDED_ #include "SessionTab.h" // Added by ClassView #include "Log.h" #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define TiersdeConfianceAuto_API __declspec(dllexport) class CTiersdeConfianceAuto : public CCmdTarget { DECLARE_DYNCREATE(CTiersdeConfianceAuto) CTiersdeConfianceAuto(); // protected constructor used by dynamic creation private: static char* m_tdt_url; //ICI static CLog* m_logger; //ICI char* m_certificate_path; char* m_repository_path; char* m_tdt_passphrase; int isinit; int init(); static int sslconnect(char* page, struct curl_httppost* post, char** retour); //ICI public: static char* m_tdt_trigramme; //ICI bool readConfigFile(char* file_name, char** out); static CSessionTab m_session_tab; //ICI virtual void OnFinalRelease(); protected: virtual ~CTiersdeConfianceAuto(); DECLARE_MESSAGE_MAP() DECLARE_OLECREATE(CTiersdeConfianceAuto) CString m_dbuser; afx_msg void OnDbuserChanged(); CString m_database; afx_msg void OnDatabaseChanged(); CString m_password; afx_msg void OnPasswordChanged(); static TiersdeConfianceAuto_API afx_msg long ENVOI(LPCTSTR INFO_SESSION, LPCTSTR TYPE_TRANSMISSION, LPCTSTR CHEMIN_FLUX, BSTR FAR* FLUX_RETOUR); static TiersdeConfianceAuto_API afx_msg long VERSIONDLL(BSTR FAR* NOM_TC, BSTR FAR* VERSION_DLL); static TiersdeConfianceAuto_API afx_msg BSTR MESSAGE_ERROR(long CODE_ERROR); DECLARE_DISPATCH_MAP() DECLARE_INTERFACE_MAP() }; #endif
-Error LNK2001 unresolved external symbol "public: static char * CTiersdeConfianceAuto::m_tdt_trigramme" (?m_tdt_trigramme@CTiersdeConfianceAuto@@2PADA)
-Error LNK2001 unresolved external symbol "private: static class CLog * CTiersdeConfianceAuto::m_logger" (?m_logger@CTiersdeConfianceAuto@@0PAVCLog@@A)
-Error LNK2001 unresolved external symbol "private: static char * CTiersdeConfianceAuto::m_tdt_url" (?m_tdt_url@CTiersdeConfianceAuto@@0PADA)
-Error LNK2001 unresolved external symbol "public: static char * CTiersdeConfianceAuto::m_tdt_trigramme" (?m_tdt_trigramme@CTiersdeConfianceAuto@@2PADA)
-Error LNK2001 unresolved external symbol "public: static class CSessionTab CTiersdeConfianceAuto::m_session_tab" (?m_session_tab@CTiersdeConfianceAuto@@2VCSessionTab@@A)
Mes erreurs sont lier avec les static (sur le code //ICI) je suis convaincu
Le beug est lien avec la fonction ENVOI car les 2 autres (VERSION DLL et ERREUR) fonctionne.
Et dans mon programme de teste voila la fonction que j'appelle :
donc si quelqu'un a une idée je suis preneur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 LPCTSTR INFO_SESSION = NULL; LPCTSTR TYPE_TRANSMISSION = NULL; LPCTSTR CHEMIN_FLUX = NULL; BSTR FAR* FLUX_RETOUR = new BSTR(); int L_RecuperationInfoENVOI = 0; L_RecuperationInfoENVOI = CTiersdeConfianceAuto::ENVOI(INFO_SESSION, TYPE_TRANSMISSION, CHEMIN_FLUX, FLUX_RETOUR);
MERCI D'AVANCE
Partager