Здравствуйте. Есть библиотека, написанная в 7 — студии. Пытаюсь ее слинковать в проекте, написанном в 6-ой студии. При этом выдается ошибка Linking...
vs7dll: fatal error LNK1136: invalid or corrupt file
Error executing link.exe.
Может ли это быть связано с различием версий студий?
Здравствуйте, kermed, Вы писали:
K>Здравствуйте. Есть библиотека, написанная в 7 — студии. Пытаюсь ее слинковать в проекте, написанном в 6-ой студии. При этом выдается ошибка Linking... K>vs7dll: fatal error LNK1136: invalid or corrupt file K>Error executing link.exe. K>Может ли это быть связано с различием версий студий?
Да. Именно с этим и связано — у этих версий несовместимый формат библиотек.
Здравствуйте, Bell, Вы писали:
B>Здравствуйте, kermed, Вы писали:
K>>Здравствуйте. Есть библиотека, написанная в 7 — студии. Пытаюсь ее слинковать в проекте, написанном в 6-ой студии. При этом выдается ошибка Linking... K>>vs7dll: fatal error LNK1136: invalid or corrupt file K>>Error executing link.exe. K>>Может ли это быть связано с различием версий студий? B>Да. Именно с этим и связано — у этих версий несовместимый формат библиотек.
Здравствуйте, Bell, Вы писали:
B>Здравствуйте, kermed, Вы писали:
K>>Здравствуйте. Есть библиотека, написанная в 7 — студии. Пытаюсь ее слинковать в проекте, написанном в 6-ой студии. При этом выдается ошибка Linking... K>>vs7dll: fatal error LNK1136: invalid or corrupt file K>>Error executing link.exe. K>>Может ли это быть связано с различием версий студий? B>Да. Именно с этим и связано — у этих версий несовместимый формат библиотек.
Переконвертировал версию продукта в более позднюю студию. Проблема не решилось . Пробовал конвертировать в 7-ю и 9-ю.
Достоверно известно, что библиотека рабочая — она используется в других приложениях. DumpBin ее читает.
LoadLibrary возращает ноль. Нужен бубен.
Здравствуйте, rg_software, Вы писали:
_>Здравствуйте, kermed, Вы писали:
K>>vs7dll: fatal error LNK1136: invalid or corrupt file K>>Error executing link.exe.
_>А вы часом не DLL-файл линковать пытаетесь?
На самом деле был грешок в начале Потом исправился . Так что про ошибку линкера можно и забыть. А проблема загрузки библиотеки остается. LoadLibrary возвращает 0. GetLastError = 126, что переводится как не найден модуль. Если использовать неявное связывание, то то же самое: "Dll not found" при старте.
Здравствуйте, kermed, Вы писали:
K>Здравствуйте, rg_software, Вы писали:
_>>Здравствуйте, kermed, Вы писали:
K>>>vs7dll: fatal error LNK1136: invalid or corrupt file K>>>Error executing link.exe.
_>>А вы часом не DLL-файл линковать пытаетесь?
K>На самом деле был грешок в начале Потом исправился . Так что про ошибку линкера можно и забыть. А проблема загрузки библиотеки остается. LoadLibrary возвращает 0. GetLastError = 126, что переводится как не найден модуль. Если использовать неявное связывание, то то же самое: "Dll not found" при старте.
Возможно, библиотечная DLL использует какую-то другую DLL, которая и не находится.
Возможно, DLL использует другую версию CRT, (например установлен / не установлен сервис пак на студию).
Для выяснения дерева зависимостей DLL-к воспользуйтесь утилитой depends.exe.
Лежит в C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\Depends.Exe
Здравствуйте, Chorkov, Вы писали:
C>Здравствуйте, kermed, Вы писали:
K>>Здравствуйте, rg_software, Вы писали:
_>>>Здравствуйте, kermed, Вы писали:
K>>>>vs7dll: fatal error LNK1136: invalid or corrupt file K>>>>Error executing link.exe.
_>>>А вы часом не DLL-файл линковать пытаетесь?
K>>На самом деле был грешок в начале Потом исправился . Так что про ошибку линкера можно и забыть. А проблема загрузки библиотеки остается. LoadLibrary возвращает 0. GetLastError = 126, что переводится как не найден модуль. Если использовать неявное связывание, то то же самое: "Dll not found" при старте.
C>Возможно, библиотечная DLL использует какую-то другую DLL, которая и не находится. C>Возможно, DLL использует другую версию CRT, (например установлен / не установлен сервис пак на студию).
C>Для выяснения дерева зависимостей DLL-к воспользуйтесь утилитой depends.exe. C>Лежит в C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\Depends.Exe
1) а библиотека точно не СОМ -- регистрации не требует?
2) попробуйте поиграться с инструментом http://www.flounder.com/loadlibrary_explorer.htm -- хотя бы можно убедиться, что dll в принципе нормально загружается с помощью LoadLibrary() и в ней что-то есть.
Здравствуйте, kermed, Вы писали:
K>Здравствуйте. Есть библиотека, написанная в 7 — студии. Пытаюсь ее слинковать в проекте, написанном в 6-ой студии. При этом выдается ошибка Linking... K>vs7dll: fatal error LNK1136: invalid or corrupt file K>Error executing link.exe. K>Может ли это быть связано с различием версий студий?
на библиотеку то можно взглянуть?!
Ничто не ограничивает полет мысли программиста так, как компилятор.