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 :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
#pragma comment(lib,"user32.lib")
Il reste encore 1 erreur, que je n'arrive pas � r�soudre :
LIBCMTD.lib(wwincrt0.obj) : error LNK2019: symbole externe non r�solu _wWinMain@16 r�f�renc� dans la fonction ___tmainCRTStartup
Dans les propri�t�s du projet
- 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);
   }
}