Ausgehend von Windows Me und Windows 2000 fügen die OpenFileName -Struktur von GetOpenFileName () und getaveFileName () drei neue Elemente hinzu. Schauen wir uns zuerst an:
Geben Sie OpenFileName ein
LStructSize so lange
Hwndowner so lange
Hinstance so lange
lpstrFilter als String
lpstrcustomFilter als String
NmaxCustFilter so lange
nFilterIndex so lange
lpstrfile als String
NmaxFile so lange
lpstrFiletital als String
NmaxFiletital so lange
lpstrinitialdir als String
lpstrtital als String
Flaggen so lange
NFileOffset als Ganzzahl
nFilextension als Ganzzahl
LpstrDext als String
Lcustdata so lange
lpfnhook so lang
LPTEMPLENAME AS String
'#if (_win32_winnnt> = 0x0500)
pvreserviert so lange
Dwreserved so lange
Flagsex so lange
'#endif // (_win32_winnnt> = 0x0500)
Endtyp
Es ist nicht schwer zu erkennen, dass die neuen Elemente pvreserviert und dwreserviert sind. . Richten Sie dieses Bit -Etikett ein, um die Schnellleiste auf der linken Seite des Windows 2000 (oder Windows Me) "Öffnen Sie das Datei" -Dialogfeld aus. Diese Abkürzungsleiste kann insgesamt fünf Verknüpfungen speichern, die Ihre eigene Verknüpfung durch Ändern der Registrierung angeben können. Wie zu ändern ist, ist es heute nicht unser Thema, daher werden wir es vorerst nicht diskutieren. In der tatsächlichen Verwendung habe ich jedoch ein Problem festgestellt: Verfahren mit dieser neuen Struktur können jedoch nicht unter Windows 98/95/NT4 ausgeführt werden. Der Grund kann sein, dass die neuen drei Mitglieder beim Einstellen von LStructSize berechnet werden, was zu einer Erhöhung von 12 Bytes in der Strukturlänge führt, und die alte Version des Comdlg32.Dll kann nicht identifiziert werden, und die Strukturlänge ist falsch. Das Endergebnis ist, dass das Dialogfeld "Datei" und "Datei speichern" nicht angezeigt werden kann.
In Anbetracht dieses Problems haben wir die folgenden Ideen zum Lösen verwendet: Verwenden Sie die Funktion GetversionEx (), um die Windows -Version zu erkennen. (), und weisen Sie dann LStructSize einen Wert zu. Auf diese Weise wird die Version des Comdlg32.dll die drei neuen Elemente ignorieren. Nach der Praxis beweist es, dass diese Methode machbar ist.
Natürlich sind wir auch der Meinung, dass es aufgrund der Installation bestimmter Software aufgrund der Installation bestimmter Software eine neue Version der neuen Version des Comdlg32.dll geben kann, damit die neuen Funktionen verwendet werden können. Der beste Weg ist es, die Version des Comdlg32.dlls selbst zu erkennen und dann festzustellen, ob die Länge der OpenFileName -Struktur die Länge der neuen drei Elemente ignorieren muss.
Das größte Demonstrationszentrum für coole Station in China!