bonjour à tous,

Je veux bien utiliser un cast de type défini dans le fichier winuser.h mais je reçois toujours l'erreur C2440

Le type que je veux utilisé est (en rouge) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#ifdef STRICT

typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
mon code est le 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
 
//File AGSDialog.cpp
 
#include "AGSDialog.h"
 
void AGSDialog::OnShowAGSDialog()
{
	if ( PluginDialogBox(IDD_DIALOGAGS, (DLGPROC)AGSdlgProc) == 1 ) //error C2440: 'type cast' : cannot convert from 'overloaded-function' to 'DLGPROC'
    {
		//trait
    }
}
 
INT_PTR AGSDialog::PluginDialogBox(UINT idDlg, DLGPROC lpDlgProc)
{
  HWND hWndFocus = ::GetFocus();
  INT_PTR nRet = ::DialogBox( (HINSTANCE) m_hDllModule, 
      MAKEINTRESOURCE(idDlg), m_nppData._nppHandle, lpDlgProc );
  ::SetFocus(hWndFocus);
  return nRet;
}
 
INT_PTR CALLBACK AGSDialog::AGSdlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	//trait
	return 0;
}
est ce qu'il manque une include ou autre chose. J'ai vu des exemples identique et je ne trouve pas ou est la différence.

Prière de m'aider.
Merci