Salut,
je voudrais savoir s'il est possible de lancer une IHM faite en C++ avec Visual C++ et MFC dans un prog écrit en C.
Et si oui, comment, car je n'arrive pas à comprendre comment mon IHM est lancée (pas de fonction main?)
merci...
Salut,
je voudrais savoir s'il est possible de lancer une IHM faite en C++ avec Visual C++ et MFC dans un prog écrit en C.
Et si oui, comment, car je n'arrive pas à comprendre comment mon IHM est lancée (pas de fonction main?)
merci...
Le WinMain est encapsulé dans le framework, tu ne peux pas y avoir accès dans une appli MFC.
Pas sûr d'avoir bien compris ce que tu cherches à faire, mais j'aurais quand même tendance à direque ça n'a pas l'air réalisable !
Précise peut-être...
si c'est pour lancer un programme à partir d'un autre voir shellexecute dans la faq.
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
En gros, l'histoire, c'est que j'ai la partie "metier" de mon applie écrite en C, et la partie IHM écrite en C++.
Je n'arrive pas à voir comment je peux les faire dialoguer entre elle.
Un exemple précis :
J'ai une méthode C++ (getList() ) qui doit remplir une listview à partir des éléments d'un tableau fourni par ma partie en C. Donc, je veux dans le main du C maitriser l'appel à getList... Je n'arrive pas a voir comment faire...
j'espère avoir été assez claire!![]()
Pour cela, il te faut une fonction C++ qui possède une interface C.
Genre, un wrapper en C++:
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //CUneClasse.hpp class CUneClasse { public: int FaireUnTruc(char const *sczUneChaine); };
Code C/C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 //WrapperUneClasse.h #ifdef __cplusplus #include "CUneClasse.hpp" //Déclaration C++ extern "C" int FaireUnTrucAvecCUneClasse(CUneClasse *pUnObjet, char const *sczUneChaine); #else struct CUneClasse; //Déclaration C int FaireUnTrucAvecCUneClasse(struct CUneClasse *pUnObjet, char const *sczUneChaine); #endif
La fonction est déclarée et définie extern "C", ce qui permettra au linker de la trouver lors de l'appel depuis le code C.
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //WrapperUneClasse.cpp extern "C" int FaireUnTrucAvecCUneClasse(CUneClasse *pUnObjet, char const *sczUneChaine) { return pUnObjet->FaireUnTruc(sczUneChaine); }
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
pour completer ce qui a été dit ,
tu peux mixer du code c et c++ dans un programme avec quelques précautions.
voir aussi la faq: http://c.developpez.com/faq/vc/?page=IDE#MixCAndCPlus
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Partager