Wie repariere ich einen tödlichen Fehler C1113: #verwendete fehlgeschlagen in 'Mylib.lib'

StackOverflow https://stackoverflow.com/questions/2146509

  •  23-09-2019
  •  | 
  •  

Frage

Ich habe ein Projekt, das C ++/CLI verwendet, um eine GUI und eine Hintergrundverarbeitung zu implementieren, um mit einem Sensor zu sprechen. Ich habe das alles funktionieren und viele des Kommunikation, mit dem wir den Sensor in einem .dll vermitteln. Das Problem ist, dass ich die Bibliothek in die wichtigste ausführbare Datei kombinieren möchte, um nicht über die Verteilung von .dlls sorgen zu müssen.

Ich habe ein Demo -Projekt, das mit einem .lib gut funktioniert, aber wenn ich versuche, den Mani -Code -Körper zu wechseln, um eine .lib anstelle von .dll zu erstellen, erhalte ich den folgenden Fehler:

1>------ Build started: Project: MyTool, Configuration: Debug Win32 ------
1>Compiling...
1>stdafx.cpp
1>.\stdafx.cpp : fatal error C1113: #using failed on 'c:\projects\MyTool\debug\MyLib.lib'

Ein bisschen googeln Schlägt vor, dass dies geschieht, wenn Sie den MSIL -Switch nicht angewendet haben, aber es ist definitiv im Bibliotheksprojekt da.

Ich habe eine Mischung aus verwaltetem und nicht verwaltetem Code sowohl in meinem Demo -Projekt als auch in der Realität, also habe ich wirklich Mühe, zu sehen, was das Problem hier ist.

Alle Vorschläge würden sehr dankbar empfangen!

War es hilfreich?

Lösung

Ich vermute ein bisschen, aber ich vermute, dass das "Mytool" -Projekt das "MYLIB" -Projekt als eine seiner Referenzen hat ("Projekt" Menü >> Eigenschaften >> Häufige Eigenschaften >> Referenzen).

Wenn Sie den Typ des MYLIB -Projekts in eine LIB anstelle einer DLL ändern, müssen Sie "Mylib" aus den Projektreferenzen entfernen. Anschließend aktualisieren Sie die Projektabhängigkeiten der Lösung ("Projekt" >> "Projektabhängigkeiten ..."), damit MyTool von Mylib abhängt.

Andere Tipps

Ich bin auch darauf getroffen. Der Grund dafür war, dass ich meine native/verwaltete C ++ - DLL für Target .NET 4.0 zusammenstellte. Und die DLL, die ich war, war eine .NET 2.0 -DLL. Als solches scheiterte es, obwohl die Pfade und Dateinamen perfekt ankamen. In diesem Fall war die Fehlermeldung überhaupt keine Hilfe. Ich lösen es, indem ich die unabhängige DLL an .NET 4.0 aktualisiere. So dass beide Baugruppen das gleiche .NET -Framework verwendeten.

Wenn Sie mit einem gemischten Modus (verwaltet/nativ) DLL verlinken, erhalten Sie diesen Fehler. Was Sie nicht sollten, wenn das Projekt CLR verwendet, auch wenn eine der Quelldateien nicht der Fall ist. Wenn dies der Fall ist, dann versuchen Sie, die Referenz aus Projekten zu entfernen | Common Properties | Referenzen und dann neu aufzutreten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top