Re: VC++2005: LoadLibrary
От: axxie  
Дата: 31.08.08 06:31
Оценка:
Здравствуйте, JumangeeNET, Вы писали:

JNE>Проблема странная, но есть. При подключении DLL с помощью LoadLibrary она возвращает 0, а GetLastError = 126 — "Не найден указанный модуль". Эта ошибка вроде как должна появляться только если не найдены модули от которых зависит моя DLL, но они все рядом! Проверял с помощью Dependency Walker — больше никакие не нужны вроде как (он сказал что нужна msvcr80.dll её и всех похожих на нее я подложил рядом, при этом, vc2005 цепляет ее при запуске сам судя по 'core.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_...\msvcp80.dll', No symbols loaded. ). DLL пробовал цеплять и с абсолютными путями, и с относительным....


Я так понял, что core.exe — это ваш главный исполняемый файл, тот который загружает библиотеку с помощью LoadLibrary?
Если это так, то приведенное сообщение ('core.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_...\msvcp80.dll', No symbols loaded) говорит лишь о том, что msvcr80.dll загрузилась для этого экзешника, и не факт, что библиотека тоже её подхватит. Проверьте в ресурсах dll наличие правильного манифеста для SxS. Там должно быть что-то вроде такого:
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.