Mix C/C++ : probleme libcmt

cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008 - 6 janv. 2008 à 04:00
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008 - 6 janv. 2008 à 20:42
bonjour

je suis actuellement en train d'essayer de faire un plugin (une Dll) pour une appli : j'ai le SDK avec des exemples : 1 en C, mais juste les bases et d'autres en C++ plus complet mais sous forme de Class.
Le programme principal du plugin est en C (ce n'est pas le mien).
Il y a un conflit entre msvcrt et libcmt, mais c'est là que ça devient etrange :
en utilisant un des exemples, j'ai rajouté les fichiers c/h du programme principal :
- premier probleme de compilation avec "StdAfx" et les sources .c resolue en changeant le precompiled headers de chaque fichier .c (j'ai aussi mis en MultiThread)
- deuxieme probleme de compilation : "nafxcw.lib(afxmem.obj) : error LNK2005 operator new already defined in LIBCMT.lib"
- il y avait utilisation de new/delete mais qui ne me servait pas : je les ai enlevé.
- à ce point, la compilation s'est deroulée sans erreurs (!) : j'ai obtenue la dll et elle fonctionne très bien. Durant toute la session sous VC6, tout a fonctionné.
- tout est bien sauvegardé dans le projet, je ferme VC6.

et le probleme arrive : quand j'ouvre à nouveau le projet et que je compile, de nouveau "error LNK2005"!
je suis obligé de tout refaire à partir du projet d'origine : rajouté les fichiers .c, refaire les manips, et ça remarche.
A chaque session comme ça.
Donc quelque chose ne va pas, et pourtant, une fois que ça passe, la dll est bien compilée.
le projet est au depart definie en MFC, mais j'ai enlevé les dialogues dont je ne me sers pas et mis en No MFC.
(j'ai bien essayé vs2005, mais c'est pire pour l'instant : il manque des includes mfc, je suis un peu perdu avec le 2005)

le mieux serait de voir les sources en questions :
 le SDK pour les plugins : http://mmb.mediachance.com/files/mmbpluginsdk.zip
(j'ai utilisé la premiere fois sans probleme l'exemple SimplePlugin en C. Pour le 2eme j'ai pris ColorWash)
mon programme C utilise alloc/free

je sais, tout ça a l'air bien compliqué
pas la premiere fois que je dois melangé du c et du c++, mais là, j'ai jamais vu ça.

si vous avez la moindre idée, d'avance merci

5 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
6 janv. 2008 à 16:06
Non il suffit (ca va ptet pas etre si simple) ne demander à VC (ou ton IDE) d'exclure les libs libc, libcmt, etc et ne conserver que les versions msvcrt.
0
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008
6 janv. 2008 à 19:25
euh...impossible apparement
le probleme est ailleurs, car ça marche que si j'ouvre le projet SANS les fichiers .c et que je les rajoutes ensuite et bien reglé les params déjà decrits. Et là pendant la session de travaille sous VC6, aucun probleme, ça fonctionne.
Plus rien ne fonctionne dès que je ferme le projet (pourtant sauvegardé) et que j'ouvre cette nouvelle version modifiée.
bug du compilo on dirait.
je vais essayer avec devcpp mais je ne le connais pas bien.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 janv. 2008 à 20:34
Après une antiquité, tu te tournes vers une autre, obligé ?
VS 2008 Express: http://brunews.com/enVs2008expDvd.iso

ciao...
BruNews, MVP VC++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 janv. 2008 à 20:36
et tuto de pose ici:
http://www.cppfrance.com/code.aspx?ID=38359
C'est pour le 2005 mais 2008 idem.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bbear Messages postés 92 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 29 mai 2008
6 janv. 2008 à 20:42
ha, le 2008 est gratuit aussi alors ? je savais pas...
y a plus qu'à essayer...
0
Rejoignez-nous