Mix C/C++ : probleme libcmt

Signaler
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008
-
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008
-
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

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
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.
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008

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.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Après une antiquité, tu te tournes vers une autre, obligé ?
VS 2008 Express: http://brunews.com/enVs2008expDvd.iso

ciao...
BruNews, MVP VC++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
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++
Messages postés
92
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
29 mai 2008

ha, le 2008 est gratuit aussi alors ? je savais pas...
y a plus qu'à essayer...