Hi Leute!!
Hat jemand ne Ahnung was mit meiner .lib- Datei los sein könnte, wenn der Compiler folgende Fehlermeldung ausspuckt:
C:\\xyz\\xyz.lib:
fatal error LNK1136: Ungueltige oder beschaedigte Datei
Fehler beim Ausführen von link.exe.
Liegt das alleine an der .lib- Datei, oder könnte der Fehler auch andere Gründe haben, z.B. ein Fehler in meinem Programm o.ä. ????
Ich bin für jede Antwort dankbar!!!
Danke im Voraus,
AcMe
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
versucht du evt. eine 16Bit-Lib/dll in einem 32Bit-Projekt zu linken?
Hi ShipHank,
also da bin ich mir nicht so sicher. Woran erkenne ich denn, ob es sich um eine 16- oder 32- bit Library handelt und wie kann ich, falls es sich tatsächlich um eine 16- bit Library handelt, diese in mein Projekt einbinden??
Mit welcher Entwicklungsumgebung arbeitest du denn?
Du kannst z.B. nicht auf 16Bit Funktionen einer dll/lib zugreifen aus einer 32Bit Applikation raus unter WinNT/2000, das geht nur unter Win9x!
Ist die Library von dir selber erstellt worden oder nutzt du nur eine fertige? Hast du, wenn es eine nicht selbstentwickelte ist, dann wenigsten den Quellcode, so das man ihn unter einem neuen 32Bit Lib-Projekt neu compilieren könnte und somit eine 32Bit Lib erhällt!
P.S.
evt. gibt es noch ein paar andere User hier, die dir hier weiterhelfen können, demm meinereins fährt nun mit Frau u. Kinder in den verdienten Urlaub!
Hi Shiphank!
Die Lib- Datei wurde nicht von mir entwickelt, ich nutze eine fertige von der ich leider auch nicht den Quellcode besitze. Das mit den 16-bit Zugriffen dürfte auf meinem System eigentlich kein Problem sein, da ich Windows ME fahre und nicht Win2000/NT. Gibt es vielleicht noch eine andere Ursache für die Linker- Fehlermeldung??
Danke für deine Hilfe und viel Spaß im Urlaub,
AcMe
Was sagt den die Doku(readme o.ä.) für die Lib?
Steht da etwas über einbinden in Projekte?
Meistens finden sich in den Beschreibungen Hinweise über Compileroptionen(Schalter) die man setzen muß, damit alles korrekt gelinkt wird!
Schau auch mal wie groß(KB) die Lib ist die du einbinden willst und ob es schon *.obj Dateien der Lib in deinem Projekt gibt?
Wenn ja, dann lösche die Obj-Dateien und kompilere neu, wenn die Lib-Größe gegen Null geht, dann ist sie beschädigt und muß in jedem Fall neu erstellt werden!
LNK1136 tritt normalerweise unter folgenden bedingugnen auf:
- die library ist tatsaechlich defekt
- die library hat einen 'fehlerhaften' header. (kann z.b. beim vermischen von 16 bit und 32 bit projekten passieren)
- die library hat einen 'nicht passenden' header. (kan z.b. passieren wenn die library nicht mit dem linker/libmanager erzeugt wurde, der das ding hinterher linken soll. [z.b.: es wird eine library die fuer borland gebaut wurde in einem vc projekt verwendet.)
- die platte ist voll.
du kannst mit dem bei vc dabeiliegenden 'link' programm in die library reinsehen - bzw auch nicht: wenn nicht, dann hast du den fehler gefunden....
WM_HOPETHISHELPS
thomas woelfer