Bonjour,
J'ai pass� un moment � consulter les nombreux messages qui traitent de probl�mes d'�dition de lien (en particulier LNK2019), mais je n'y ai pas trouv� d'explication ou de solution � mon probl�me.
J'ai peu d'exp�rience en programmation windows en C++, et j'utilise Visual C++ 2008.
Afin de m'initier � l'API win32 et aux MFC, je souhaite r�aliser une application dont la fen�tre principale est cr��e via l'API CreateWindowEx, et que par la suite je puisse utiliser les MFC pour afficher, par exemple, des fen�tres de type CDialog.
J'ai cr�� un projet de type "Projet Win32", puis j'ai s�lectionn� "Application Windows" et j'ai coch� "Projet vide".
J'ai ensuite ajout� � mon projet vide un fichier 'win32.cpp' dans lequel j'ai plac� le code que j'ai trouv� � cette adresse : http://bob.developpez.com/tutapiwin/article_2.php.
Le programme fonctionne mais comme je souhaite inclure le support des MFC, je suis all� dans les propri�t�s du projet, et j'ai remplac� "Utiliser les biblioth�ques windows standart" par "Utiliser les MFC dans une biblioth�que statique".
Suite � cela j'ai eu 14 erreurs lors de l'�dition de lien. J'ai donc ajout� la ligne suivante :
Il reste encore 1 erreur, que je n'arrive pas � r�soudre :
Code : S�lectionner tout - Visualiser dans une fen�tre � part #pragma comment(lib,"user32.lib")
Dans les propri�t�s du projetLIBCMTD.lib(wwincrt0.obj) : error LNK2019: symbole externe non r�solu _wWinMain@16 r�f�renc� dans la fonction ___tmainCRTStartup
- Le point d'entr�e de l'application : wWinMainCRTStartup
- Le sous-syst�me s�lectionn� : /SUBSYSTEM:WINDOWS
- Unicode est activ�
Le projet ne contient qu'un seul fichier 'win32.cpp' avec le code suivant :
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 #pragma comment(lib,"user32.lib") #include <windows.h> // Declaration du Callback de la fenêtre principale LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam); // Point d'entrée principal int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // Declaration de la fenetre principale de l'application WNDCLASSEX principale; principale.cbSize=sizeof(WNDCLASSEX); principale.style=CS_HREDRAW|CS_VREDRAW; principale.lpfnWndProc=MainProc; principale.cbClsExtra=0; principale.cbWndExtra=0; principale.hInstance=hInstance; principale.hIcon=LoadIcon(NULL,IDI_APPLICATION); principale.hCursor=LoadCursor(NULL,IDC_ARROW); principale.hbrBackground=reinterpret_cast<HBRUSH>(COLOR_WINDOW+1); principale.lpszMenuName=NULL; principale.lpszClassName=L"std"; principale.hIconSm=LoadIcon(NULL,IDI_APPLICATION); RegisterClassEx(&principale); // Création de la fenêtre principale HWND hWnd; hWnd=CreateWindowEx( WS_EX_CLIENTEDGE, L"std", L"Notre fenêtre", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); // Affichage de la fenêtre ShowWindow(hWnd,SW_SHOW); // Gestion des messages MSG msg; while(GetMessage(&msg,NULL,0,0)==TRUE) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } // Callback de gestion des evenements (messages) de la fenetre principale LRESULT CALLBACK MainProc(HWND hWnd, UINT mes, WPARAM wParam, LPARAM lParam) { HDC hDC; PAINTSTRUCT paintst; switch (mes) { case WM_PAINT: hDC=BeginPaint(hWnd,&paintst); EndPaint(hWnd,&paintst); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hWnd, mes, wParam, lParam); } }
Partager