salut jai un programme ecrit en c++ et je veux faire une interface graphique à ce programme en utlisant le visual basic alors qui a des idées est ce que c'est possible??![]()
salut jai un programme ecrit en c++ et je veux faire une interface graphique à ce programme en utlisant le visual basic alors qui a des idées est ce que c'est possible??![]()
Il va falloir que tu exportes des fonctions pour pouvoir communiquer avec ton programme.
Tu dois en faire une DLL, donc l'interface soit compatible avec le VB... (fonctions libres sans classes dans les paramètres, déclarées extern "C", chaînes de caractères non-unicodes et convention d'appel __fastcall).
Ou bien, un composant COM.
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.
sachant que je suis débutante en vb est ce que je peux le faire??y'a t-il pas un petit tutoriel pour expliquer cela?j'ai cherché dans le net mais je ne trouve pas peut etre que je tape de mauvais mot clé![]()
VB6 ou VBScript ou VB.NET ?
VB6 ou VB.net est ce que vous pouvez me conseillez?![]()
Si vous débutez en VB pourquoi ne pas faire votre IHM directement en C++ ?
Sinon, VB.Net est plus up-to-date, et plus simple si vous ne connaissez pas COM.
Utilisez n'importe quel Framework graphique C++ comme MFC ou wxWidgets ou encore Qt etc..., si vous maitrisez C++, c'est bien plus efficace.
Ben ça dépend de ce que tu apprends déjà...
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.
j'ai essayer d'utliser wxwidget mais l'orsque j'ai écrit un petit programme il m'afficher une erreur que je ne sait pas résoudre,donc jai laissé tombervoila l'erreur qu'il m'a donné:
error C2664: 'wxFileSelector'*: impossible de convertir le paramètre 1 de 'const char [7]' en 'const wxChar *'
1> Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
le code que j'ai écrit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 #include "wx/wx.h" // Classe application : class MyApp : public wxApp { public: // Méthode virtuelle de démarrage de l'application : virtual bool OnInit(); }; // Notre fenêtre minimale : class MyFrame : public wxFrame { public: // Constructeur : MyFrame(const wxString& title); bool TextChg; wxTextCtrl *mlTextCtrl; // 2 handler d'évènements void OnQuit(wxCommandEvent& event); void Onouvre(wxCommandEvent& event); private: // la table des évènements DECLARE_EVENT_TABLE() }; IMPLEMENT_APP(MyApp) // Notre 'main' : bool MyApp::OnInit() { if ( !wxApp::OnInit() ) return false; MyFrame *frame = new MyFrame(_T("Minimal wxWidgets App")); frame->Show(true); return true; } // IDs pour nos menus et contrôles : enum { Minimal_Quit = wxID_EXIT, Minimal_ouvre }; // La table des évènements de notre fenêtre : BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(Minimal_Quit, MyFrame::OnQuit) EVT_MENU(Minimal_ouvre, MyFrame::Onouvre) END_EVENT_TABLE() // Le constructeur de notre classe de fenêtre : MyFrame::MyFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title) { // Ajoutons nos menus : wxMenu *fileMenu = new wxMenu; fileMenu->Append(Minimal_Quit, _T("&Quitter\tAlt-Q"), _T("Sortir du programme")); wxMenu *file2Menu = new wxMenu; file2Menu->Append(Minimal_ouvre, _T("&ouvrir"), _T("ouvrir")); // dans une barre de menu : wxMenuBar *menuBar = new wxMenuBar(); menuBar->Append(fileMenu, _T("&Fichier")); menuBar->Append(file2Menu, _T("&ouvrir")); SetMenuBar(menuBar); // Une barre de statut : CreateStatusBar(2); SetStatusText(_T("Bienvenu sur notre premier projet wxWidgets avec MinGW !")); } // La gestion des évènements : void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) { Close(true); } void MyFrame::Onouvre(wxCommandEvent& WXUNUSED(event)) { wxString nomfichier = wxFileSelector("Ouvrir" ,"" ,"" ,"", "cpp files (*.cpp;*.h)|*.h;*.cpp|resources files (*.rc)|*.rc",wxOPEN); if (!nomfichier.empty()) { mlTextCtrl->LoadFile(nomfichier); TextChg = false; } }
sacaht que jai fait l'edition de lien comme indiqué dans le tutoriel sur ce site![]()
Il manquerait pas un petit "_T(" devant "Ouvrir"
Et ainsi de suite.
Donc restez dans le cpp plutôt que de tomber de Charybde en VB.![]()
j'ai fait sa :
et i y a toujours un message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void MyFrame::Onouvre(wxCommandEvent& WXUNUSED(event)) { wxString nomfichier = wxFileSelector(_T("Ouvrir") ,"" ,"" ,"", "cpp files (*.cpp;*.h)|*.h;*.cpp|resources files (*.rc)|*.rc",wxOPEN); if (!nomfichier.empty()) { mlTextCtrl->LoadFile(nomfichier); TextChg = false; } }
error C2664: 'wxFileSelector'*: impossible de convertir le paramètre 2 de 'const char [1]' en 'const wxChar *'
1> Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
Salut,
partout ou il y a des guillemets ( " " ) il faut utiliser la macro _T qui permet la conversion des charactères ANSI en Unicode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 wxString nomfichier = wxFileSelector(_T("Ouvrir") ,_T"" ,_T"" ,_T"", _T"cpp files (*.cpp;*.h)|*.h;*.cpp|resources files (*.rc)|*.rc",wxOPEN);
ah merci beaucoup je suis nulle je saitsa a marché enfin
je veux te demander une chose si tu peux m'aider je serais reconnaissante.En fait je veux suit à l'ouverture d'un fichier faire,je veux récupérer le path de se fichier pour pouvoir l'utiliser par la suite.En fait ,mon projet consiste à traiter les images (zoom,rotation...)j'ai fait le tous sans interface et maintenant je veux faire l'interface,jai comencé par ouvrir le fichier(image) et puis je veux faire les modification en utilisant la barre de menu mais je ne sait pas comment le menu ouvrir peut interagir avec le menu rotation par exemple?j'esper que j'étais claire mais je doute![]()
salut,
j' écris cette fonction:
l'orsque je compile le tout un message d'erreur monfichier identificateur non trouvé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void MyFrame::Onrotation(wxCommandEvent& WXUNUSED(event)) { CImg<double> image(monfichier); image.rotate(90); image.display(); }
je veux faire la rotation sur le fichier ouvert par la fonction
alors comment la focntion onrotation reconnnait t_elle le fichier ouvert par l'autre fonction???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void MyFrame::Onouvre(wxCommandEvent& WXUNUSED(event)) { wxString nomfichier = wxFileSelector(_T("Ouvrir") ,_T("") ,_T("") ,_T(""), _T("cpp files (*.cpp;*.h)|*.h;*.cpp|resources files (*.rc)|*.rc"),wxOPEN); if (!nomfichier.empty()) { mlTextCtrl->LoadFile(nomfichier); TextChg = false; } }
Vous ne travaillez pas avec des fichiers mais avec des images que vous sauvegardez dans des fichiers.
Lors du chargement d'une image depuis un fichier, dans la méthode "Onouvre", sauvegardez le chemin du fichier dans un membre de la classe MyFrame. Vous aurez accès à ce membre dans toutes les méthodes d'instance (non static) de MyFrame.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class MyFrame ... { ... private : wxString m_nomfichier; ...C'est pas dans les règles de l'art, car pas de typage fort, de vérification des données, ce séparation données-affichages etc..., mais c'est le plus simple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 void MyFrame::Onouvre(wxCommandEvent& WXUNUSED(event)) { m_nomfichier = wxFileSelector(_T("Ouvrir") ,_T("") ,_T("") ,_T(""), _T("cpp files (*.cpp;*.h)|*.h;*.cpp|resources files (*.rc)|*.rc"),wxOPEN); if (!nomfichier.empty()) { mlTextCtrl->LoadFile(nomfichier); TextChg = false; } } void MyFrame::Onrotation(wxCommandEvent& WXUNUSED(event)) { CImg<double> image(m_nomfichier); image.rotate(90); image.display(); }
salut,j'ai compris l'erreur sa compile maintenant mais l'orsque je parcours les fichier pour ouvrir un fichier d"s que je sélectionne un fichier l'éxécution s'arrete et un message d'erreur apparait.vous trouvez ci joint un capturer écran du message?la fonction onouvre n'ouvre pas le fichier choisis elle permet de parcourir les fichiers mais l'orsque je séléctionne un fichier l'éxecution sarrete je ne comprend pas pourquoi?
c'est quoi le problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void MyFrame::Onouvre(wxCommandEvent& WXUNUSED(event)) { wxString nomfichier = wxFileSelector(_T("Ouvrir") ,_T("") ,_T("") ,_T(""), _T("cpp files (*.cpp;*.h)|*.h;*.cpp|resources files (*.rc)|*.rc"),wxOPEN); if (!nomfichier.empty()) { mlTextCtrl->LoadFile(nomfichier); TextChg = false; } }la je ne comprend rien
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.
et je dois faire quoi la?j'ai vérifier mon code tout est initialisé.
remarque:l'orsque l'exécution s'arrete,dans visual studio s'affiche un fichier textctrl.h et sa pointe vers :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // load/save the control's contents from/to a file bool LoadFile(const wxString& file, int fileType = wxTEXT_TYPE_ANY) { return DoLoadFile(file, fileType); } bool SaveFile(const wxString& file = wxEmptyString, int fileType = wxTEXT_TYPE_ANY);
VS devrait donner la ligne qui pose problème et vous permettre d'évaluer les variables au moment de l'incident. L'une d'elle n'est pas initialisée ou déjà désallouée.
Partager