Вылет configspy 1.0.0.2 на W10X64

Автор Djelf, 06 апреля 2024, 15:46

« назад - далее »

Djelf

Обнаружил уже давно, но подкинув старую mfc42.dll 6.02.8073.0 в католог BIN, проблему решил.
Не заморачивался особенно, а тут вдруг решил formex проверить на штатной библиотеке и configspy опять стал вылетать (обновления W10 все есть).
Вылет видимо из shel32.dll по цепочке вызовов - окно архиватора не показывается.
Может стоит и этот код рассекретить? Могу покопаться... не торопливо...
Возможно, банальное подключение PSDK2013 поможет, но это это не точно.
Имя сбойного приложения: 1cv7s.exe, версия: 7.70.0.27, метка времени: 0x4573fcd8
Имя сбойного модуля: KERNELBASE.dll, версия: 10.0.19041.4239, метка времени: 0x7c23e677
Код исключения: 0xc0000005
Смещение ошибки: 0x00115170
Идентификатор сбойного процесса: 0x35f0
Время запуска сбойного приложения: 0x01da881e1a1f7b2a
Путь сбойного приложения: D:\1C\BIN\1cv7s.exe
Путь сбойного модуля: C:\WINDOWS\System32\KERNELBASE.dll
Идентификатор отчета: 4413db72-c584-485e-8af0-92e5a93fe43e
Полное имя сбойного пакета: 
Код приложения, связанного со сбойным пакетом:

АЛьФ

Напиши мне на alf@dorex.pro, вышлю исходники.

Djelf

Ситуация потихоньку проясняется, вылет происходит при компиляции с /O2, а она включает в себя /Oy[-] enable frame pointer omission, если скомпилировать с  /O2  /Oy- вылета нет.
Причем вылет происходит только при вызове внешнего файла архиватора, иначе бы и FormEx накрылся...
Видимо можно wrap как-то переписать, но смысла нет, достаточно перекомпилировать со флагом  /Oy-

Djelf

Я ж упоротый ;D
Предположение что вылет как я и писал в первом сообщении вызывает вызов shel было верное.
Вылет происходит в if(ShellExecuteEx( &info )), и wrap, как я предполагал в 3м посте, не виноват.
Лечится просто: в 2х местах
SHELLEXECUTEINFO info;
+info.lpDirectory = NULL;
А вот почему с /Oy- без этой строки работает, мне неведомо...