Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
'function' est une fonction d’assistance de bibliothèque prédéfinie du compilateur. Les fonctions d’assistance de bibliothèque ne sont pas prises en charge avec /GL ; compilez le fichier objet 'fichier' sans /GL.
Remarques
Une fonction définie dans votre code source a le même nom qu’une fonction interne du compilateur. Compilez le module qui contient la fonction sans /GL.
Example
L’exemple suivant génère l’erreur C2268 :
// C2268.c
// compile with: /c
// processor: x86
extern int SHFusionLoadLibrary(int lpLibFileName);
int __cdecl _except_handler3(void) {
return SHFusionLoadLibrary(0);
}
extern int main(void);
void* mainCRTStartup(void* p) {
p = main;
return p;
}
puis :
// C2268b.c
// compile with: C2268.c /EHsc /GL /Ob0 /O2 /Fa /GS- /link /nodefaultlib
// processor: x86
extern int SHFusionLoadLibrary(int lpLibFileName);
extern int __cdecl _except_handler3(void);
extern void mainCRTStartup(void*);
int g = 2;
#define ENTERCONTEXT(fail) \
int ulCookie = 0;\
if (!SHActivateContext(&ulCookie)) \
return fail;\
__try {
#define LEAVECONTEXT \
} __finally {SHDeactivateContext(ulCookie);}
int SHActivateContext(int* a) {
return *a == g || !*a ||_except_handler3();
}
void SHDeactivateContext(int a) {
g = a;
}
int SHFusionLoadLibrary(int lpLibFileName) { // C2268
ENTERCONTEXT(0)
g = lpLibFileName;
LEAVECONTEXT
return lpLibFileName;
}
int main(void) {
g = SHFusionLoadLibrary(10);
return 0;
}