Salut tout le monde,

Je bosse avec une lib compilée sous VC6, et dont je n'ai pas le code source (et je pense que je ne risque pas de les avoir). J'ai été obligé de faire un include de afxv_w32.h [Ajout] dans le header de la lib [/Ajout] pour résoudre les problèmes de compatibilité de type built in time. Bref il semble que ça m'a fait passer un étape puisque maintenant je n'ai plus de problème de compil avec ma lib mais directement avec afxv_w32.h. J'ai pas mal galéré pour trouver comment résoudre ces erreurs mais honnetement je ne vois pas comment les résoudre, alors je fais appel à votre aide. D'autant plus que certaines erreurs me semblent incompréhensibles, comme le fait que c++ ne prenne pas int par défaut.
Bref voici la portion de code qui fait défaut, et la stack qui va avec bien sûr.
Dernière chose, la plupart des problèmes pointent sur AFX_INLINE. J'ai envie de dire : WHY ??

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
/////////////////////////////////////////////////////////////////////////////
// Now for the Windows API specific parts
 
// WM_CTLCOLOR for 16 bit API compatability
#define WM_CTLCOLOR     0x0019
 
// Win32 uses macros with parameters for this, which breaks C++ code.
#ifdef GetWindowTask
#undef GetWindowTask
AFX_INLINE HTASK GetWindowTask(HWND hWnd)
	{ return (HTASK)(DWORD_PTR)::GetWindowThreadProcessId(hWnd, NULL); }
#endif
 
// Win32 uses macros with parameters for this, which breaks C++ code.
#ifdef GetNextWindow
#undef GetNextWindow
AFX_INLINE HWND GetNextWindow(HWND hWnd, UINT nDirection)
	{ return ::GetWindow(hWnd, nDirection); }
#endif
 
// Avoid mapping CToolBar::DrawState to DrawState[A/W]
#ifdef DrawState
#undef DrawState
AFX_INLINE BOOL WINAPI DrawState(HDC hdc, HBRUSH hbr, DRAWSTATEPROC lpOutputFunc,
	LPARAM lData, WPARAM wData, int x, int y, int cx, int cy, UINT fuFlags)
#ifdef UNICODE
	{ return ::DrawStateW(hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy,
		fuFlags); }
#else
	{ return ::DrawStateA(hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy,
		fuFlags); }
#endif
#endif
 
// Avoid mapping CStatusBar::DrawStatusText to DrawStatusText[A/W]
#ifdef DrawStatusText
#undef DrawStatusText
AFX_INLINE void WINAPI AfxDrawStatusTextA(HDC hDC, LPRECT lprc, LPCTSTR szText,
	UINT uFlags);
AFX_INLINE void WINAPI AfxDrawStatusTextW(HDC hDC, LPRECT lprc, LPCTSTR szText,
	UINT uFlags);
AFX_INLINE void WINAPI DrawStatusText(HDC hDC, LPRECT lprc, LPCTSTR szText,
	UINT uFlags) 
#ifdef UNICODE
	{ ::AfxDrawStatusTextW(hDC, lprc, szText, uFlags); }
#else
	{ ::AfxDrawStatusTextA(hDC, lprc, szText, uFlags); }
#endif
#endif
 
// FreeResource is not required on Win32 platforms
#undef FreeResource
AFX_INLINE BOOL WINAPI FreeResource(_In_ HGLOBAL) { return TRUE; }
// UnlockResource is not required on Win32 platforms
#undef UnlockResource
AFX_INLINE int WINAPI UnlockResource(HGLOBAL) { return 0; }

1> _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(203): error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'HTASK'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(203): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(210): error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'HWND'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(210): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(210): error C2086: 'int AFX_INLINE'*: redéfinition
1> c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(203)*: voir la déclaration de 'AFX_INLINE'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(217): error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'BOOL'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(217): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(217): error C2086: 'int AFX_INLINE'*: redéfinition
1> c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(203)*: voir la déclaration de 'AFX_INLINE'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(231): error C2144: erreur de syntaxe*: 'void' doit être précédé de ';'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(231): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(231): error C2086: 'int AFX_INLINE'*: redéfinition
1> c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(203)*: voir la déclaration de 'AFX_INLINE'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(233): error C2144: erreur de syntaxe*: 'void' doit être précédé de ';'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(233): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(233): error C2086: 'int AFX_INLINE'*: redéfinition
1> c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(203)*: voir la déclaration de 'AFX_INLINE'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(235): error C2144: erreur de syntaxe*: 'void' doit être précédé de ';'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(235): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(235): error C2086: 'int AFX_INLINE'*: redéfinition
1> c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(203)*: voir la déclaration de 'AFX_INLINE'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxv_w32.h(246): error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'BOOL'

PS : j'ai essayé en téléchargeant VC6, et j'ai d'autres erreurs (mais apparemment moins). A moins de devoir migrer sur VC6 absolument (ce que je ne souhaite pas spécialement ) je ne mettrai les erreurs ici.