Comment puis-je corriger c1113 d'erreur fatale: #using a échoué sur « MYLIB.LIB »

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

  •  23-09-2019
  •  | 
  •  

Question

J'ai un projet qui utilise C ++ / CLI pour mettre en œuvre une interface graphique et un certain traitement de fond pour parler à un capteur. J'ai que tout travail et beaucoup de choses comms que nous utilisons pour communiquer le capteur se trouve dans un .dll. Le problème est que je voudrais combiner la bibliothèque dans l'exécutable principal pour éviter d'avoir à vous soucier de la distribution de fichiers .dll.

J'ai un projet de démonstration qui fonctionne très bien à l'aide d'un .lib mais quand je tente de basculer le corps de code pour produire une mani .lib au lieu de .dll je reçois l'erreur suivante:

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'

Un peu de googler suggère cela se produit lorsque vous ne l'avez pas obtenu le commutateur MSIL appliqué, mais il est certainement là-bas dans le projet de bibliothèque.

J'ai un mélange de gestion et du code non managé à la fois mon projet de démonstration et la vraie chose, je suis tellement vraiment du mal à voir ce que le problème est ici.

Toutes les suggestions seraient très chaleureusement reçus!

Était-ce utile?

La solution

Je devine un peu, mais je soupçonne que le projet « MyTool » a le projet « MyLib » comme l'un de ses (menu « Projet » >> Propriétés >> Propriétés communes >> Références) « références ».

Lorsque vous modifiez le type du projet MyLib à un LIB au lieu d'une DLL, vous devez supprimer « MyLib » des références du projet. Vous mettez à jour les dépendances du projet de la solution (menu « Projet » >> « Dépendances d'un projet ... ») afin que MyTool dépend MyLib.

Autres conseils

J'ai aussi rencontré ce. La raison pour laquelle il a été un échec parce que je compilait mon pays natal / géré C ++ DLL pour cibler .NET 4.0. Et la DLL je #using était une DLL .NET 2.0. A ce titre, il ne parvenait pas, même si les chemins et les noms de fichiers alignés parfaitement. Dans ce cas, le message d'erreur était absolument d'aucune aide. Je résous en mettant à jour la DLL indépendante à .NET 4.0. Alors que les deux assemblées utilisaient le même cadre .NET.

Si vous liez à une DLL en mode mixte (géré / natif), vous pouvez obtenir cette erreur. Ce qui vous ne devriez pas si le projet utilise CLR même si l'un des fichiers source ne fonctionne pas. Mais de toute façon, si tel est le cas, essayez de supprimer la référence du projet | Propriétés | Propriétés communes |. Références puis l'ajouter de nouveau

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top