000
10.07.2002, 09:49 Uhr
Robert
|
Hallo! Ich habe ein Programm geschrieben (für DOS), welches die Titel der geöffneten Fenster auflistet! Aber ich wollte es jetzt in ein MFC-Projekt mit einbauen und da kommt immer eine Fehlermeldung: error C2664: 'EnumWindows' : Konvertierung des Parameters 1 von 'int (struct HWND__ *,long)' in 'int (__stdcall *)(struct HWND__ *,long)' nicht moeglich
Code des DOS-Programms:
C++: |
#include <windows.h> #include <iostream> using namespace std;
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam) { char String[255];
if (!hWnd) return TRUE; if (!::IsWindowVisible(hWnd)) return TRUE; if (!SendMessage(hWnd, WM_GETTEXT, sizeof(String), (LPARAM)String)) return TRUE;
cout << String << '\n';
return TRUE; }
int main(int argc, char *argv[], char *envp[]) { EnumWindows(EnumWindowsProc, NULL); return 0; }
|
Code des MFC-Programms (Nur die Funktion und der Aufruf):
C++: |
BOOL CALLBACK COpenWinsDlg::EnumWindowsProc(HWND hWnd, LPARAM lParam) { char String[255]; CString Title;
if (!hWnd) return TRUE; if (!::IsWindowVisible(hWnd)) return TRUE; if (!::SendMessage(hWnd, WM_GETTEXT, sizeof(String), (LPARAM)String)) return TRUE;
Title.Format("%c", String); m_cList.AddString(Title);
return TRUE; }
void COpenWinsDlg::OnReload() { m_cList.ResetContent(); EnumWindows(EnumWindowsProc, NULL); }
|
Kann mir jemand sagen woran das liegt, warum das nicht geht und wenns bitte auch mit Tipp zum beheben des Problems . Ciao Robert |