LoadLibrary връща 0
Здравейте Уважаеми майстори.
има Dll-файл "magic.dll", който се намира в текущата папка (папката на exe файла).
На една машина извикването LoadLibrary("magic.dll") връща 0, докато на други машини Dll се зарежда нормално. При статично свързване възниква ужасно изключение. Въпреки че отново всичко е ок на други машини.
Първоначално си помислих, че в някаква тема "C:\Windows\" има повреден "magic.dll" и просто не работи да го заредя. Преименувах Dll, извиквам LoadLibrary с новото име, но резултатът е същият.
Поради какво може да бъде? Помогнете ми моля.
P.S. антивирусна програма - NOD32. На друга машина с NOD32 всичко работи добре. Антивирусните бази данни са същите.
Какво казва GetLastError?
> DevilDevil (15.11.08 г. 11:07 ч.)
hLib := LoadLibrary("magic.dll");Win32Check(hLib <> 0);
и веднага всичко ще стане ясно.
Днес ще проверя. Благодаря ти!
ntfs-Правата върху файла са неподходящи?
системна грешка. Код: 14001. Приложението не беше стартирано, защото не беше конфигурирано правилно. Преинсталирането на приложението може да разреши този проблем.
> Correct$Vasya (15.11.08 г. 19:26) [4]
и там и там - администратор. и там и там - XP.
Приложението не успя да се стартира, защото конфигурацията му едно до друго е неправилна. Моля, вижте регистъра на събитията на приложението за повече подробности.
„Какво, по дяволите, е това?“ (c)
Наистина ли е куче в него? може би тя от своя страна извиква нещо?
> Dll файлът "magic.dll"съществува. и файла случайно не е асемблиран на msvc80?
Той Х. "шибаният C++" (c) аз. "Реших" проблема, благодарение на Google.
Както се оказа, проблемът е сравнително често срещанвъзниква. Лекува се чрез изтегляне на Microsoft Visual C++ 2005 Redistributable Package x86(2.6mb): http://www.microsoft.com/downloads/details.aspx?Family> Благодарим на всички участници!
> DevilDevil (16/11/08 01:54 AM) [9]Има и други лечения (но не винаги полезни)
Създайте директория Microsoft.VC80.CRT до вашия .exe и .manifest файл. Създайте Microsoft.VC80.CRT.manifest файл в тази директория с данни:
> научете английски.Грешно го казах.
google казакакда гледам регистрационните файлове. и когато грешките бяха намерени - шумът каза как да се лекува.
> Грешка (16.11.08 01:58) [10]но все още не разбирам защо е грешката? на други компютри VC++ не е инсталиран, въпреки че dll беше зареден. Подозирам, че проблемът е в 3-тия ServicePack, който е инсталиран на други машини и не е инсталиран на тази (на тази - 2-ра).
> че това е 3rd ServicePack, който е инсталиран на други машини > и не стои на този (на този - 2-ри).
DevilDevil (15/11/08 11:07 AM)
Опитайте се да извикате преди да заредите DLL InitCommonControls();