Начиная с Windows Me и Windows 2000, структура openfilename of getopenfilename () и getavefilename () добавляют три новых элемента. Давай посмотрим в первую очередь:
Тип OpenFileName
LStructize yont
hwndowner в течение долгого времени
hinstance как долго
lpstrfilter как строка
lpstrcustomfilter как строка
nmaxcustfilter в течение длительного времени
nfilterIndex как долго
lpstrfile как строка
nmaxfile как долго
lpstrfiletital как строка
nmaxfiletital дольше
Lpstrinitialdir как строка
LPStrtital как строка
Флаги как долго
nfileoffset как целое число
nfileextension как целое число
Lpstrdext как строка
Lcustdata как долго
lpfnhook как долго
Lptemplename как строка
'#if (_win32_winnt> = 0x0500)
Pvreserved в течение долгого времени
DWRESERVED в течение долгого времени
Флагсекс долго
'#endif // (_win32_winnt> = 0x0500)
Конечный тип
Нетрудно увидеть, что новые элементы Pvreserved и Dwreserved сохраняются. Полем Установите эту метку бита, чтобы выключить быструю полосу на левой стороне диалогового окна Windows 2000 (или Windows Me) «Откройте файл». Эта ярлыка может хранить в общей сложности пять ярлыков, которые могут указать ваш собственный ярлык путем изменения реестра. Что касается того, как изменить, то это не наша тема сегодня, поэтому мы не будем обсуждать ее в настоящее время. Однако в фактическом использовании я обнаружил проблему: процедуры, использующие эту новую структуру, не могут работать в Windows 98/95/NT4. Причина может заключаться в том, что при установке LStructize рассчитываются новые три члена, что приводит к увеличению на 12 байт в длине структуры, и старая версия Comdlg32.dll не может быть идентифицирована, и длина структуры ошибочна. Конечным результатом является то, что диалоговое окно «Открыть файл» и «Сохранить файл» не может быть отображен.
Ввиду этой проблемы мы использовали следующие идеи для решения: используйте функцию getVersionex () для обнаружения версии Windows. (), а затем назначьте значение lStructize. Таким образом, версия Comdlg32.dll будет игнорировать три новых элемента. После практики это доказывает, что этот метод возможен.
Конечно, мы также считаем, что может быть новая версия новой версии Comdlg32.dll из -за установки определенного программного обеспечения из -за установки определенного программного обеспечения, чтобы можно было использовать новые функции. Таким образом, лучший способ - обнаружить версию самого comdlg32.dll, а затем определить, должна ли длина структуры OpenFilename игнорировать длину новых трех элементов.
Крупнейший демонстрационный центр прохладной станции в Китае!