2017-01-20 5 views
1

J'utilise la bibliothèque DirectXTK pour la classe gamepad. J'ai compilé la bibliothèque avec seulement cette classe dedans et ça marche.CoInitialize n'a pas été appelé - (chargement de gamepad.h à partir de DirectXTK sans bibliothèque)

Si je voudrais seulement ajouter les fichiers source à mon projet, sans la bibliothèque, la taille serait ~ 50 Ko au lieu de ~ 500 Ko. Cependant, je reçois l'erreur suivante:

CoInitialize has not been called 

Toutes les idées sur la façon de résoudre ce donc mon exécutable serait plus petite taille?

+0

Comme ce n'est pas une réponse, je vais le mettre comme un commentaire: "taille importe pas". Non seulement pour Yoda, mais aussi pour nous les développeurs. 50K ou 500K? Personne ne s'en souciera. – nvoigt

Répondre

2

Eh bien, vous pouvez appeler CoInitialize vous-même comme la première chose à main.

int main() 
{ 
    CoInitialize(NULL); 

    // your code 

    return 0; 
} 
+0

Salut, merci. Je l'ai fait, et le projet compile. Cependant, le gamepad n'est pas détecté alors que le projet avec la bibliothèque le détecte. – Z0q

+0

@ Z0q La bibliothèque fait probablement plus que cette initialisation, juste que le reste ne génère pas d'erreurs. Pouvez-vous regarder la source de la bibliothèque et vérifier? Par exemple, l'appel de 'CoInitialize' doit avoir eu lieu quelque part, si vous pouvez trouver la source, vous pourriez trouver ce qui manque. – nvoigt

+0

Cette fonction n'est pas appelée dans la source de la bibliothèque. Cependant, il y a une note que j'ai trouvée dans l'un des fichiers sources qui dit "// Note: suppose que l'application a déjà appelé CoInitializeEx". – Z0q