bonjour à tous,
je voudrais utiliser des classes de la MFC dans mon appli win32. Est-ce possible? Si oui comment?
merci.
Version imprimable
bonjour à tous,
je voudrais utiliser des classes de la MFC dans mon appli win32. Est-ce possible? Si oui comment?
merci.
salut,
ça depend ,quelles classes ?
:D
les classiques: CFile et CString.
Yeeees, enfin tu es de retour, je n'y croyais plus... :D
bien alors ça ne cause pas de pb ,
il faut juste iniatiliser les MFC en debut de programme .
et linker avec les MFC .Code:
1
2
3
4
5
6 // initialize MFC and print and error on failure if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { // erreur }
:D
euh... :oops: comment on fait?Citation:
Envoyé par farscape
bon, en fait, je vais expliquer ma situation car il y a quelque chose qui me semble étrange:
j'ai créé un projet win32 sans console, conformément à cette FAQ Ensuite, j'ai spécifié, dans options du projet, "utiliser les MFC comme lib partagée". Mais il ne connait pas 'AfxWinInit' ni 'CFile'... qu'ai-je oublié?
Code:
1
2
3
4
5
6
7 #include <afx.h> #include <afxwin.h> // MFC core and standard components #include <afxext.h> // MFC extensions #include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT
de rajouter ces headers:
dans ton stdafx.h si tu utilises les entetes precompilés.Code:
1
2
3 #include <afx.h> #include <afxwin.h> // MFC core and standard components
:D
ouilleouilleouille!! J'ai réussi à lancer mon programme en debug, mais maintenant, en release, il m'insulte ainsi:
nafxcw.lib(thrdcore.obj) : error LNK2019: symbole externe non résolu __endthreadex référencé dans la fonction "void __stdcall AfxEndThread(unsigned int,int)" (?AfxEndThread@@YGXIH@Z)
j'avoue que ça me dépasse oO!
en tout cas, :merci:
il faut lier ces deux librairies, dans les settings du projet en releaseCitation:
Envoyé par msdn
Pour tenter de comprendre cette erreur de link, j'ai essayé de faire un truc (j'utilise visualC++ 7.1):
1/ j'ai créé un projet win32, sans console.
2/ j'ai inclus le fichier "mmsystem.h"
3/ j'ai mis en commentaire toute la fonction InitIntance car "Je ne veux pas qu'une fenêtre apparaisse" (voir code ci-après)
4/ j'ai ajouté la ligne sndPlaySound(...).
Le but, pour l'instant, est d'avoir un prog qui joue un son mais qui n'affiche aucune fenêtre.
et j'obtiens encore une erreur de lien:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { //HWND hWnd; //hInst = hInstance; // Stocke le handle d'instance dans la variable globale //hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, // CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); //if (!hWnd) //{ // return FALSE; //} //ShowWindow(hWnd, nCmdShow); //UpdateWindow(hWnd); sndPlaySound("C:\\WINNT\\Media\\notify.wav",SND_SYNC); return TRUE; }
testSound1.obj : error LNK2019: symbole externe non résolu __imp__sndPlaySoundA@8 référencé dans la fonction "int __cdecl InitInstance(struct HINSTANCE__ *,int)" (?InitInstance@@YAHPAUHINSTANCE__@@H@Z)
je n'y comprends rien à ces erreurs de lien :oops:
rajoute : Winmm.lib au link ....
:D
j'y arrive pas :oops:Citation:
Envoyé par nico-pyright(c)
j'ai essayé d'aller dans projet/propriétés/editeur de liens/dépendances supplémentaires, et là, j'ai ajouté ces deux lib, mais alors là, j'ai 50 messages d'erreur!!
heeelp!!
comment on fait?Citation:
Envoyé par farscape
Code:#pragma comment(lib,"Winmm.lib")
:merci: ça marche :D :hola: