2010-05-23 6 views
1

Je rencontre un problème étrange lorsque j'essaie d'enregistrer le fichier .dll que j'ai créé à l'aide de regsvr32.Impossible d'enregistrer .dll avec regsvr32 - uniquement dans Release build

Pendant le développement, tout s'est bien passé, la version de débogage s'enregistre et fonctionne correctement. Maintenant, je voulais créer une version Release, mais cette Version ne s'enregistre plus.

regsvr32 arrive avec l'erreur suivante:

The module "mpegsplitter.dll" failed to load. 

Make sure the binary is stored at the specified path or 
debug it to check for problems with the binary or 
dependent .DLL files. 

The specified procedure could not be found. 

Certaines recherches m'a amené au promeneur la dépendance, qui ne me dit ce

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. 

Il fait également apparaître une dépendance sur « crtdll. dll "que la version de débogage n'a pas (La vue de fonction montre les fonctions de Soem qui devraient normalement être dans ole32.dll), qui est colorée en rouge. Jusqu'ici tout va bien, je suppose que c'est en quelque sorte lié à ce que le déambulateur de dépendance montre là-bas.

Mais où vais-je à partir d'ici? Comment je le répare? Toute aide serait grandement appréciée, cela m'a tenu occupé pendant plusieurs heures déjà.

Merci!

Répondre

0

Je l'ai corrigé. C'était en fait provoqué par l'ordre de certaines bibliothèques de Mingw que j'ai inclus pour lier contre ffmpeg. Eh bien, comme c'est bizarre.

+0

Comment avez-vous résolu le problème de commande? Je pense que je peux avoir un problème similaire avec certaines bibliothèques externes que je charge. – funseiki

0

Est-il possible que la version de débogage est compilée avec _ATL_MIN_CRT mais la version n'est pas? Vous pouvez également définir cette propriété avec la propriété de projet Minimize CRT Use in ATL.

+0

Ce paramètre n'est pas défini. J'ai essayé de l'ajouter en tant que définition, et j'ai juste crié que ce n'est plus supporté. C'est VC08, devinez c'est une "vieille" chose. Vous n'avez pas vu l'option d'interface utilisateur non plus. – Hendrik

+0

Mes connaissances en C++ sont probablement un peu obsolètes ... Je suggère de comparer d'autres options de projet et de voir si vous pouvez voir des différences. Surtout si l'un d'eux a '/ MD' ou'/MT' ou similaire et l'autre ne l'est pas. Le plus facile à comparer est si vous regardez la page 'Command Line' dans les propriétés. –

+0

C'était aussi ma pensée, j'ai un autre projet sur lequel j'ai basé celui-ci, et les paramètres sont identiques, mais celui-là fonctionne. Peut-être qu'une directive bizarre est importée quelque part quelque part? Si quelqu'un est plus habitué à travailler avec le dépendant des dépendances et les goûts, je peux fournir le .dll compilé. – Hendrik

2

J'ai le même problème. Quand j'ai comparé la différence entre "Command Line" (dans Project Properties -> Linker) du mode Release et Debug, j'ai découvert que les options "Optimization" (dans Project Properties -> Linker) du mode Release étaient activées pendant le débogage ionique ne pas. L'activation de l'optimisation pour l'éditeur de liens en mode de libération a résolu le problème.

Questions connexes