Я не понимаю, как не использование диалоговых компонентов Delphi позволяет избежать DLL расширения оболочки, вызывающих хаос в вашей программе, если вы затем вызываете COMDLG32.DLL напрямую. Вы по-прежнему используете общие диалоговые окна, и эти расширения оболочки все еще вводятся.
Более вероятно, что неиспользование компонентов имело побочный эффект в вашем коде, который запутывал или маскировал основную проблему, уменьшая ее до такой степени, что она, казалось, была решена.
Я подозреваю, что и здесь тоже так.
Я не знаю, какие расширения оболочки hokey вы установили в своей системе - возможно, у вас есть какое-то странное расширение, которое вызывает некоторые проблемы. Все, что я могу сказать, это то, что за 15 с лишним лет программирования на Win32 с Delphi я никогда не знал или даже не слышал о компонентах диалога общих файлов Delphi, ответственных за такое поведение.
Конечно, простой способ проверить это - взять скомпилированный EXE-файл, который обнаруживает нарушения прав доступа на вашем компьютере, и запустить тот же EXE-файл на каком-либо другом компьютере XP с "чистой комнатой", то есть без сторонних расширений оболочки. установил что-нибудь-когда-либо.
Если AV исчезает, вы можете быть более уверены, что проблема как-то связана с расширением оболочки. Затем, установив известные расширения оболочки на тестовом компьютере один за другим, пока AV не появится снова, вы можете изолировать виновника и решить, что с этим делать ... если это то, что ваши пользователи / клиенты вряд ли будут используя затем, вы можете просто перечислить ее как известную проблему совместимости и перейти к другим проблемам.
Однако, если AV не исчезают, тогда вы можете в значительной степени исключить диалоги Delphi или любые расширения оболочки, так как они вообще как-то ответственны.
В целом, было бы наиболее полезно увидеть код, в котором происходит AV, если это вообще возможно.
Добавление:
Я нашел эту ссылку на AV, возникающую с самими компонентами Common Dialog . Это, однако, не будет считаться «странным местом» для AV, будучи последовательно воспроизводимым - кажется - в самих компонентах диалога. Но я думал, что упомяну об этом в любом случае. Не зная точно, где находятся ваши AV, возможно, это может быть связано.