Здравствуйте, Павел Блудов, Вы писали:
ПБ>Статья:
ПБ>Авторы:
ПБ> Павел Блудов
ПБ>Аннотация:
ПБ>В статье рассматриваются способы создания уникодных приложений, способных выполняться в Windows9x/Me
В статье есть 2 маленькие ошибки, хотя в исходниках, что идут со статьей, их нет:
1.
Неправильно:
while(pNamesTable->u1.AddressOfData)
{
... // нет инкремента pNamesTable++
}
Правильно:
for(;pNamesTable->u1.AddressOfData; pNamesTable++)
2. ( Скорее всего это не ошибка, а — недописка )
В той части статьи, где рассказывается о "Проблеме отложенной загрузки",
необходимо сказать, что метод _UnicowsInit тоже изменился:
Было:
_UnicowsInit()
{
...
// Запонимаем таблицу имен и адресов
g_pdwOrd = MakePtr(LPWORD, g_hModuleUnicows, pExpDir->AddressOfNameOrdinals);
g_pdwNames = MakePtr(LPDWORD, g_hModuleUnicows, pExpDir->AddressOfNames);
g_pdwAddrs = MakePtr(LPDWORD, g_hModuleUnicows, pExpDir->AddressOfFunctions);
g_dwNames = pExpDir->NumberOfNames;
return TRUE;
}
Стало:
_UnicowsInit()
{
...
// Запонимаем таблицу имен и адресов
g_pdwOrd = MakePtr(LPWORD, g_hModuleUnicows, pExpDir->AddressOfNameOrdinals);
g_pdwNames = MakePtr(LPDWORD, g_hModuleUnicows, pExpDir->AddressOfNames);
g_pdwAddrs = MakePtr(LPDWORD, g_hModuleUnicows, pExpDir->AddressOfFunctions);
g_dwNames = pExpDir->NumberOfNames;
_RealGetProcAddress = GetProcAddress;
return TRUE;
}