Ошибка линковки
От: kermed  
Дата: 19.06.09 09:04
Оценка:
Здравствуйте. Есть библиотека, написанная в 7 — студии. Пытаюсь ее слинковать в проекте, написанном в 6-ой студии. При этом выдается ошибка Linking...
vs7dll: fatal error LNK1136: invalid or corrupt file
Error executing link.exe.
Может ли это быть связано с различием версий студий?
vs6 vs7
Re: Ошибка линковки
От: Bell Россия  
Дата: 19.06.09 09:23
Оценка:
Здравствуйте, kermed, Вы писали:

K>Здравствуйте. Есть библиотека, написанная в 7 — студии. Пытаюсь ее слинковать в проекте, написанном в 6-ой студии. При этом выдается ошибка Linking...

K>vs7dll: fatal error LNK1136: invalid or corrupt file
K>Error executing link.exe.
K>Может ли это быть связано с различием версий студий?
Да. Именно с этим и связано — у этих версий несовместимый формат библиотек.
Любите книгу — источник знаний (с) М.Горький
Re[2]: Ошибка линковки
От: carpenter СССР  
Дата: 19.06.09 09:55
Оценка:
Здравствуйте, Bell, Вы писали:

B>Здравствуйте, kermed, Вы писали:


K>>Здравствуйте. Есть библиотека, написанная в 7 — студии. Пытаюсь ее слинковать в проекте, написанном в 6-ой студии. При этом выдается ошибка Linking...

K>>vs7dll: fatal error LNK1136: invalid or corrupt file
K>>Error executing link.exe.
K>>Может ли это быть связано с различием версий студий?
B>Да. Именно с этим и связано — у этих версий несовместимый формат библиотек.

чет не слышал о таком
подробности можно ?
Re[2]: Ошибка линковки
От: kermed  
Дата: 19.06.09 12:27
Оценка:
Здравствуйте, 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 возращает ноль. Нужен бубен.
Re: Ошибка линковки
От: rg_software  
Дата: 20.06.09 07:53
Оценка:
Здравствуйте, kermed, Вы писали:

K>vs7dll: fatal error LNK1136: invalid or corrupt file

K>Error executing link.exe.

А вы часом не DLL-файл линковать пытаетесь?
Re[2]: Ошибка линковки
От: kermed  
Дата: 22.06.09 11:03
Оценка:
Здравствуйте, 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" при старте.
Re[3]: Ошибка линковки
От: Chorkov Россия  
Дата: 22.06.09 11:17
Оценка:
Здравствуйте, 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
Re[4]: Ошибка линковки
От: kermed  
Дата: 22.06.09 11:38
Оценка:
Здравствуйте, 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

Со сторонними dll все в порядке. Находятся все.
Re[5]: Ошибка линковки
От: rg_software  
Дата: 23.06.09 06:10
Оценка:
K>Со сторонними dll все в порядке. Находятся все.

1) а библиотека точно не СОМ -- регистрации не требует?
2) попробуйте поиграться с инструментом http://www.flounder.com/loadlibrary_explorer.htm -- хотя бы можно убедиться, что dll в принципе нормально загружается с помощью LoadLibrary() и в ней что-то есть.
Re: Ошибка линковки
От: dcb-BanDos Россия  
Дата: 28.06.09 14:01
Оценка:
Здравствуйте, kermed, Вы писали:

K>Здравствуйте. Есть библиотека, написанная в 7 — студии. Пытаюсь ее слинковать в проекте, написанном в 6-ой студии. При этом выдается ошибка Linking...

K>vs7dll: fatal error LNK1136: invalid or corrupt file
K>Error executing link.exe.
K>Может ли это быть связано с различием версий студий?

на библиотеку то можно взглянуть?!
Ничто не ограничивает полет мысли программиста так, как компилятор.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.