J'ai un projet compilé en utilisant la convention d'appel __cdecl
(msvc2010) et j'ai compilé boost en utilisant le même compilateur en utilisant les paramètres par défaut.Comment compiler boost en utilisant la convention d'appel __cdecl?
Le projet lié à coup de fouet, mais je lors de l'exécution, je suis un message assert comme ceci: fichier: ... \ boost \ boost \ program_options \ détail \ parsers.hpp Ligne: 79
Run-Time Check Failure # 0 - La valeur de ESP n'a pas été enregistrée correctement lors d'un appel de fonction. Ceci est généralement le résultat de l'appel d'une fonction déclarée avec une convention d'appel avec un pointeur de fonction déclaré avec une convention d'appel différente.
Il y a les questions suivantes:
- ce que la convention d'appel ne dope construit avec par défaut sur Windows (msvc2010)
- comment je compile coup de pouce avec la convention d'appel __cdecl
- pourquoi boost n'a pas été capable d'empêcher la liaison avec le code avec différentes conventions d'appel? J'ai compris que boost a un code d'auto-inclusion de bibliothèque vraiment intelligent.
Mise à jour # 1
Il semble que boost ne compile et lien avec la convention d'appel proprement dit, toujours à l'exécution je reçois le problème ci-dessus. J'ai fait un exemple d'application en utilisant le même code et cela fonctionne mais dans mon application il échoue. La seule différence peut provenir de la configuration du projet ou inclut/stdafx.h