2010-03-22 3 views
0

J'ai le code source C++ dans un projet Visual Studio à partir d'un autre développeur qui compile dans une bibliothèque statique. J'ai besoin de le changer afin qu'il construise une DLL à partir de ce code afin que je puisse l'appeler à partir de C#. Je suis allé dans les propriétés du projet dans Visual Studio et changé le type de configuration en une DLL. Cependant, il donne maintenant beaucoup d'erreurs de l'éditeur de liens comme:Comment lier un projet VS2008 C++ en tant que DLL au lieu d'un LIB?

error LNK2001: unresolved external symbol __CAP_Enter_Function XXXFilter.obj XXXFramework 

Que dois-je besoin de le faire dans Visual Studio et dans le code pour produire un dll à partir du code au lieu d'un lib? La bibliothèque est énorme, écrire un wrapper n'est donc pas une option. J'ai le code donc je devrais être capable de le faire construire une DLL.

Je ne suis pas un développeur C++ très expérimenté mais je suis en C# et en studio visuel. La ligne de commande C est de:

/Od/Oi/D "_DEBUG"/D "_XBOX"/D "XBOX"/D "_XBOX_CRT_DEPRECATE_INSECURE"/D "_MBCS"/FD/MTd /Yu"stdafx.h » /Fp"Debug/AtgFramework.pch "/ Fo "Debug \" /Fd"Debug\vc80.pdb"/W4/nologo/c/Zi/TP

Merci

Répondre

1

Quelque part dans le C++ quelqu'un de projet a utilisé l'argument /callcap Visual C++. Je ne pense pas qu'il existe un paramètre C++ pour cela, donc c'est probablement dans la section "Options supplémentaires"/"Ligne de commande". Supprimer l'option et il devrait lier ok.

+0

Merci. Cela résout beaucoup d'erreurs de liaison, mais pas tous. Il y a beaucoup plus d'erreurs de symboles externes non résolues. Je les posterais mais il y en a 1700. La ligne de commande C++ est: /Od/Oi/D "_DEBUG"/D "XBOX"/D "XBOX"/D "_XBOX_CRT_DEPRECATE_INSECURE"/D "_MBCS"/FD/MTd /Yu "stdafx.h"/Fp "Debug/AtgFramework.pch"/Fo "Debug \\" /Fd"Debug\vc80.pdb "/ W4/nologo/c/Zi/TP –

+0

Je ne peux pas commenter les autres externes non résolus. Très probablement, ils sont nécessaires bibliothèques utilisées par la source et les commutateurs du compilateur ne seront pas utiles. –

Questions connexes