À partir de Windows ME et de Windows 2000, la structure OpenFileName de getOpenFileName () et getAveFileName () ajoutent trois nouveaux éléments. Jetons un coup d'œil d'abord:
Tapez OpenFileName
lstructSize comme longtemps
Hwndowner aussi longtemps
Hinstance aussi longtemps
lpstrfilter comme chaîne
lpstrcustomFilter en tant que chaîne
NmaxCustFilter comme long
nfilteIndex comme long
lpstrfile comme chaîne
nmaxfile comme long
LPSTRFILITITAL comme chaîne
nmaxfiletital comme long
lpstrinitialdir comme chaîne
lpstrtital comme chaîne
Drapeaux aussi longs
Nfileoffset comme entier
NfileExtension comme entier
Lpstrdext en chaîne
Lcustdata comme long
lpfnhook aussi longtemps
Lptemplename comme chaîne
'#if (_win32_winnt> = 0x0500)
pvère aussi longtemps
dwreserved aussi longtemps
Flagsex aussi longtemps
'#endif // (_win32_winnt> = 0x0500)
Type final
Il n'est pas difficile de voir que les nouveaux éléments PVERSERVED et DWRESERVED sont conservés. . Configurez cette étiquette de bit pour éteindre la barre rapide sur le côté gauche de la boîte de dialogue Windows 2000 (ou Windows Me) "ouvrez le fichier". Cette barre de raccourci peut stocker un total de cinq raccourcis, ce qui peut spécifier votre propre raccourci en modifiant le registre. Quant à la façon de modifier, ce n'est pas notre sujet aujourd'hui, donc nous n'en discuterons pas pour le moment. Cependant, dans une utilisation réelle, j'ai découvert un problème: les procédures utilisant cette nouvelle structure ne peuvent pas s'exécuter sur Windows 98/95 / NT4. La raison peut être que lors de la définition de LSTRUCTSIZE, les trois nouveaux membres sont calculés, entraînant une augmentation de 12 octets dans la longueur de la structure, et l'ancienne version du comdlg32.dll ne peut pas être identifiée, et la longueur de la structure est erronée. Le résultat final est que la boîte de dialogue "Fichier ouvert" et la boîte de dialogue "SAVE FILE" ne peut pas être affichée.
Compte tenu de ce problème, nous avons utilisé les idées suivantes pour résoudre: utilisez la fonction getVersionEx pour détecter la version Windows. (), puis attribuer une valeur à LSTructSize. De cette façon, la version du comdlg32.dll ignorera les trois nouveaux éléments. Après la pratique, cela prouve que cette méthode est réalisable.
Bien sûr, nous considérons également qu'il peut y avoir une nouvelle version de la nouvelle version du comdlg32.dll en raison de l'installation de certains logiciels en raison de l'installation de certains logiciels, afin que les nouvelles fonctionnalités puissent être utilisées. La meilleure façon est donc de détecter la version du comdlg32.dll elle-même, puis de déterminer si la longueur de la structure OpenFileName doit ignorer la longueur des trois nouveaux éléments.
Le plus grand centre de démonstration de la station cool en Chine!