-
Tout est-il possible ?
Bonjour
Je suis plutot expert C#...
voici ma question :
Existe t-il des situations ou il est IMPOSSIBLE d'utiliser un fichier .lib en C++/CLI ?
La raison de ma question est que je veux utiliser une librairie particuli�re d'un partenaire (je n'ai que le .lib et les .h)..
Si je compile le projet du partenaire en natif, tout fonctionne. Si je me "contente" de basculer en mode "CLR" (que ca soit pure, safe, oldsyntax,etc) la compilation �choue (redefine etc...)
Si je fais un "/FORCE:MULTIPLE", j'arrive � linker sauf une ligne que me dit ceci :
Unresolved Lnk 2019 : can't fine ref to ___tmainCTRStartup (dans libcmt.lib)...
quelqu'un aurait-il une id�e ?
J'ai bcp cherch� sur le web pour en arriver pour le moment � la conclusion que je ne pourrais pas "mettre" ma librairie en C++/CLI...
Quelles options possibles ? des id�es ?
Merci d'avance !!!
-
D�j�, passe de /MD plut�t que /MT. Puis r�essaie.
-
ok j'essayerais cela
mais il me semble que cela a donn� le m�me r�sultat :)
Je checke et te dis cela lundi (car l'ordi est au boulot, et l�, c'est le week-end :)
-
h�h�, j'ai essay�, m�me topo.
En fait, j'ai une lib avec un exemple qui l'utilise. CE code est du code C++ compil� en non manag�.
Il compile tr�s bien.
Si je bascule en compilation manag� (CLR, quelque soit l'option), la premi�re chose que j'ai est la suivante :
Bcp de fonctions sont red�finis � l'�dition de lien.
les libs qui me mettent cela sont des libs "'standards", � savoir :
msvcprtd.lib
libcpmtd.lib
libcmt.lib
libcmtd.lib
msvcmrt.lib
Ce que j'ai essay� :
/FORCE:MULTIPLE... ca me vire les probl�mes de link, mais au final, je me prends un "unreferenced ... _tMainCRTStartup dans libcmt.lib
J'ai essay� ignor� les librairies en mettant celle qui allaient bien ==> Pas bon
Bref, la question que je me pose est la suivante :
Existe t-il une solution ou bien il est possible que certaines librairies que l'on a en .lib soit INEXPLOITABLES en C++/CLI � moins de pouvoir les recompiler avec certaines options particuli�res ?
Merci de m'aider en fonction de ce que j'ai pu vous dire :)
Au pire, je peux eventuellement fournir le projet qui me pourrit la vie :)
-
Avec une liste de conflits pareil, c'est un miracle que �a marche en non-manag�: Ce code utilise � la fois la version DLL et la version non-DLL de la CRT!
(sans compter les versions debug de chaque).
Essaie de recopiler tout ton code sans /clr, mais avec /MD. Puis pour toutes les libs qui foirent, passe-les en /MD aussi.
Ton projet doit �tre enti�rement en /MD pour pouvoir utiliser la version DLL de la CRT. Quand tout marchera en /MD, r�essaie d'activer l'option /clr et �a devrait marcher cette fois.
-
ok merci m�dinoc
Le seul hic, c'est que les librairies que j'utilise en .lib ne sont pas compil�es par mes soins et que donc, je n'ai pas la possibilit� de les recompiler.
donc, j'aurais tendance � dire que sans pouvoir moi m�me compiler ces libs, je suis dans la panade :)
Je vais essayer de voir avec les "fournisseurs" de ces libs si il est possible d'avoir quelque chose de propre :)
Merci beaucoup en tout cas pour ton aide !
-
salut
les fournisseurs des libs m'ont fil� une compilation avec /MD et maintenant, tout fonctionne � merveille :)
MErci pour l'aide en tout cas!