致命的なエラーC1113を修正するにはどうすればよいですか:#USINGが「mylib.lib」で失敗しました

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

  •  23-09-2019
  •  | 
  •  

質問

C ++/CLIを使用してGUIを実装するプロジェクトと、センサーと通信するためのバックグラウンド処理を実装するプロジェクトがあります。私はすべてが機能していることと、センサーの配置を.dllで通信するために使用するCommsのものの多くを持っています。問題は、.dllsの配布を心配する必要がないように、ライブラリをメイン実行可能ファイルに組み合わせたいということです。

.libを使用して正常に動作するデモプロジェクトがありますが、.dllの代わりに.libを生成するためにマニコード本体を切り替えようとすると、次のエラーが得られます。

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'

少しグーグル これは、MSILスイッチを適用していないときに発生することを示唆していますが、ライブラリプロジェクトには間違いなくそこにあります。

デモプロジェクトと本物の両方に管理されたコードと管理されていないコードが混在しているので、ここで問題が何であるかを見るのに本当に苦労しています。

どんな提案でも非常に感謝します!

役に立ちましたか?

解決

私は少し推測していますが、「mytool」プロジェクトには「mylib」プロジェクトがその「参照」の1つとしてあると思われます(「プロジェクト」メニュー>>プロパティ>>共通プロパティ>>参照)。

MyLibプロジェクトのタイプをDLLの代わりにLIBに変更する場合、プロジェクト参照から「mylib」を削除する必要があります。次に、MyToolがMyLibに依存するように、ソリューションのプロジェクト依存関係(「プロジェクト」メニュー>> "プロジェクト依存関係...")を更新します。

他のヒント

私もこれに出くわしました。それが失敗した理由は、私がネイティブ/マネージドC ++ DLLをターゲットにして.NET 4.0を編集していたからです。そして、私が#USであったDLLは.NET 2.0 DLLでした。そのため、パスとファイル名が完全に並んでいても、失敗していました。この場合、エラーメッセージはまったく助けになりませんでした。独立したDLLを.NET 4.0に更新することで解決します。そのため、両方のアセンブリが同じ.NETフレームワークを使用していました。

混合モード(マネージド/ネイティブ)DLLにリンクしている場合、このエラーが発生する可能性があります。ソースファイルのいずれかがそうでない場合でも、プロジェクトがCLRを使用する場合はそうではありません。しかし、とにかく、もしそうなら、プロジェクトから参照を削除してみてください|プロパティ|共通プロパティ|参照してから再追加してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top