| IFkO 
 
  
 Moderator
 | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору "Уважаемые товарищи потомки!
 Роясь в сегодняшнем окаменевшем г*не..." (С) Маяковский
 
 Итак, роясь в окаменевшем дистрибутиве Windows 98Se, обнаруживаю в APPLETS.INF:
 
 [mfcdlls.files]
 mfc42.dll,,,32          ;32 flag suppresses ver conflict dlgs
 mfc30.dll
 mfcans32.dll,,,32
 mfco30.dll,,,32
 mfcd30.dll,,,32
 mfcn30.dll,,,32
 mfcuia32.dll
 cabinet.dll
 
 mfc30loc.dll,,,32
 mfc42loc.dll,,,32
 
 аналогичный раздел нахожу в WORDPAD.INF:
 
 ;list of files to copy to the \windows\system directory goes here:
 [mfcdllsx.files]
 mfc30.dll
 mfc30loc.dll,,,32
 mfcans32.dll,,,32       ;32 flag suppresses ver conflict dlg
 mfco30.dll,,,32
 mfcd30.dll,,,32
 mfcn30.dll,,,32         ; new one added with mfc 3.01 version
 mfcuia32.dll
 mfc42.dll,,,32
 mfc42loc.dll,,,32
 riched32.dll,,,32
 riched20.dll,,,32
 riched.dll,,,32
 
 соответственно есть и аналогичные разделы регистрации:
 [mfcdlls.register]
 ;Register shared DLLs:
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfc30.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfcans32.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfco30.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfcd30.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\cabinet.dll,1,01,00,00,00
 и
 [mfcdllsx.register]
 ;Register shared DLLs:
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfc30.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfc30loc.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfcans32.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfco30.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfcd30.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfcn30.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfcuia32.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfc42.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\mfc42loc.dll,1,01,00,00,00
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%11%\riched32.dll,1,01,00,00,00
 
 Из чего очевидный вывод: эти DLL нужны PAINTу и WORDPADу
 Ковыряю эти списки.
 
 кладутся в систему всегда:
 в subase.inf в разделе [winbase]:
 mfc30.dll
 mfc30loc.dll
 mfc42.dll
 mfc42loc.dll
 riched.dll
 riched20.dll
 riched32.dll
 
 в ole2.inf в разделе [MS_OLE2_32Bit]:
 mfcuia32.dll
 
 в ole2.inf в разделе [MSIE4f_Inst]:
 cabinet.dll
 
 Имеем в остатке:
 mfcans32.dll
 mfco30.dll
 mfcd30.dll
 mfcn30.dll
 
 Смотрим, кому они нужны:
 mfcans32.dll нужна mfco30.dll (своей сестре по этому списку) и mfcuia32.dll
 Вот это номер!
 Выходит, в системе лежит mfcuia32.dll, НЕРАБОЧАЯ без mfcans32.dll!!!
 
 Но при этом никому не нужны:
 mfco30.dll
 mfcd30.dll
 mfcn30.dll
 В том числе - заказавшим их PAINT и WORDPAD!
 
 Я это не могу объяснить иначе чем невнимательностью сборщиков дистрибутива Windows 98SE
 Или я не понимаю, как работают библиотеки MFC?
 |