Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Win32-Fenster wird nicht angezeigt

Frage Entwicklung C und C++

Mitglied: Hacker

Hacker (Level 1) - Jetzt verbinden

16.03.2010 um 18:48 Uhr, 4107 Aufrufe, 3 Kommentare

CreateWindowEx liefert NULL-Handle?

Hallo,
Ich habe folgendes Problem: Jedes mal, wenn ich die CreateWindowExA(...) Funktion aufrufe, bekomme ich in meinem Projekt ein NULL-Handle. Ich hab schon versucht, ein bereits funktionierendes Fenster aus einem anderen Projekt (aus einem Programmierbuch) einzufügen, und obwohl es in dem dort einwandfrei funktioniert hat, passiert da genau das selbe, deswegen schließe ich einen Fehler der WNDCLASSEXA-Füllung mal aus. Da ich auch kein Fehlercode habe (RegisterWinClassExA liefert wie normal 0) weis ich auch nicht, wo das Problem sein könnte.

Hier der Code: (von meiner Funktion)
01.
void CreateForm(void) 
02.
03.
// Fenster erstellen 
04.
 
05.
WNDCLASSEXA menueclass; 
06.
const char szclassname[] = "SIMyMenueClass"; 
07.
 
08.
menueclass.cbSize = sizeof(WNDCLASSEXA); 
09.
 
10.
menueclass.style = CS_HREDRAW | CS_VREDRAW | CS_NOCLOSE; 
11.
 
12.
menueclass.lpfnWndProc = WindowProc; 
13.
 
14.
menueclass.cbWndExtra = 0; 
15.
menueclass.cbClsExtra = 0; 
16.
 
17.
menueclass.hInstance = hInstance; 
18.
 
19.
menueclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); 
20.
menueclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); 
21.
menueclass.hCursor = LoadCursor(NULL, IDC_ARROW); 
22.
 
23.
menueclass.hbrBackground = (HBRUSH) COLOR_BACKGROUND+1; 
24.
 
25.
menueclass.lpszMenuName = NULL; 
26.
 
27.
menueclass.lpszClassName = szclassname; 
28.
 
29.
if(!RegisterClassExA(&menueclass)) 
30.
	ExitProcess(0);          // Ist nur temporär 
31.
 
32.
hWnd = CreateWindowExA(WS_EX_TOOLWINDOW | WS_EX_TOPMOST, 
33.
	szclassname, "Menü", WS_OVERLAPPED | WS_VISIBLE, 
34.
	CW_USEDEFAULT, CW_USEDEFAULT, 270, 205, 
35.
        NULL, LoadMenuA(NULL, "myMenu"), hInstance, NULL); 
36.
 
37.
        // Hier kommt immer NULL raus!!! 
38.
 
39.
	// Steuerelemente platzieren ... 
40.
}
Falls es wichtig ist: Ich habe Windows Vista SP 1 und verwende Visual C++ Express Edition 2008

Ich hoffe, jemand kann mir helfen!!!

PS: Wie stelle ich eingendlich mein Projekt um, das das UNICODE - Flag nicht gesetzt wird?
Mitglied: StefanKittel
16.03.2010 um 20:12 Uhr
Hallo,
was liefert denn GetLastError() zurück?
Stefan

PS:
CString GetLastErrorAsString(DWORD _errorID)
{
char GetLastErrorText[1024];
CString tempS;

FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, _errorID, MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN), GetLastErrorText, 1024, NULL );

tempS = GetLastErrorText;
tempS.Trim("\r\n\t ");

return tempS;
}
Bitte warten ..
Mitglied: lowbyte1
16.03.2010 um 22:06 Uhr
Hi


Unicode kanst du unter Project ... Properties ... Configuration Properties ... C/C++ ... General.
Dan kannst du unter dem eintrag "Use UNICODE Response Files" den Value auf no setzen .

Denke das ist auch das Problem. Habe aber dein Quellcode nicht angeschaut.!! Stress





Nachtrag:

Schau mal da !
01.
hWnd = CreateWindowExA(WS_EX_TOOLWINDOW | WS_EX_TOPMOST ,szclassname, "Menü", WS_OVERLAPPED | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 270, 205, NULL, LoadMenuA(NULL, "myMenu"), hInstance, NULL);  
02.
 bei "Menü" und "myMenu"
Sollte doch UNICODE tauglich gemacht werden wen ich mich nicht ire !


lowbyte
Bitte warten ..
Mitglied: Hacker
17.03.2010 um 16:00 Uhr
GetLastError liefert bei mir: "Der Vorgang wurde erfolgreich beendet."

Aber wenn sogar eine lauffähige Fensterfunktion 0 zurückkriegt, muss doch da irgendetwas nicht stimmen!

Ich nehme aber nicht an, das die Funktion irgendwie falsch ist, sonst würde ja eigendlich von Winows ein Fehler geliefert werden!
Bitte warten ..
Ähnliche Inhalte
Visual Studio
gelöst VBScript und WMI (Win32-NetworkAdapterConfiguration) (3)

Frage von MaxMoritz6 zum Thema Visual Studio ...

Webbrowser
T-Online-Login-Fenster öffnet unter Edge-Fenster (3)

Frage von achklein zum Thema Webbrowser ...

Windows Server
RemoteApp Fenster kommt nicht in den Vordergrund (1)

Frage von thomasreischer zum Thema Windows Server ...

Batch & Shell
gelöst Taskkill für bestimmtes cmd Fenster (6)

Frage von n0cturne zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Firewall
Richtige Grundeinstellungen der Pfsense für mein Netzwerk (14)

Frage von Spitzbube zum Thema Firewall ...

Switche und Hubs
gelöst Cisco 2960x Stacking über mehrere Etagen (12)

Frage von b3scher zum Thema Switche und Hubs ...