[c++]Header Frage

Bionicman

Mitglied
Also ich hab ne Frage zu den Headers:Ich habe eine Header Datei zu meinem Projekt hinzugefügt und darin funktionen initialisiert und deklariert.In einer Funktion lasse ich die MessageBox erscheinen.Der Message Box geb ich 3 Parameter.Wenn ich jetzt kompilier kommt eine Fehlermeldung.
PHP:
error C2660: 'MessageBoxA' : Funktion akzeptiert keine 3 Parameter
Wenn ich die Message Box in der "Haupt Datei" aufrufe funktioniert sie.Meine Frage:Was mache ich falsch?
 
Das liegt daran, daß es sich eigentlich hier um 2 unterschiedliche Funktionen von MessageBox handelt. Die MessageBox-Funktion, die du in deiner sog. "Haupt-Datei" verwendest, ist eine Memberfunktion von CWnd bzw. CWindow und die andere, die du in deiner Header-Datei verwendest, ist die MessageBox-Funktion der Win-API.
Die MessageBox-Funktion der Win-API benötigt noch einen Fenster-Handel (HWND) um die Zugehörigkeit der MessageBox festzulegen, da diese MessageBox global angewendet wird. Also entweder du übergibtst an die Funktion in deiner Header-Datei, wo die MessageBox angezeigt wird, das Handel deines "aufrufenden" Fensters, oder du nimmst standartmäßig 0, was allerdings etwas unsauber ist.

Code:
int MessageBox(
  HWND hWnd,          // handle of owner window
  LPCTSTR lpText,     // address of text in message box
  LPCTSTR lpCaption,  // address of title of message box
  UINT uType          // style of message box
);

Andere Möglichkeit wäre, wenn du MFC verwendest, die Funktion AfxMessageBox:
Code:
int AfxMessageBox( 
  LPCTSTR lpszText, 
  UINT nType = MB_OK, 
  UINT nIDHelp = 0
);

Gruss Homer
 

Neue Beiträge

Zurück