2

私は 390 のライブラリのリストを持っており、ラボ CVI から Visual C にソフトウェアを移植する必要があります。これらの依存関係が私を殺しています。

それらのすべてをインポートすることはできません。それはやり過ぎです-そして、それらのすべてが一意であるとは限らず、まったくロードできるわけではありません。

lib ファイルがどのような呼び出しを行うかを判断する簡単な方法はありますか? このための編集者はいますか?

4

2 に答える 2

2

MicrosoftライブラリアンプログラムLIB.EXEを使用すると、静的ライブラリについて質問していると仮定して、ライブラリの内容を調べることができます。これはVC++ディストリビューションの一部であるか、少なくとも以前はそうでした-私はもうVC++を使用していません。利用可能なオプションは次のとおりです。

Microsoft (R) Library Manager Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

usage: LIB [options] [files]

   options:

      /CONVERT
      /DEBUGTYPE:CV
      /DEF[:filename]
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LINK50COMPAT
      /LIST[:filename]
      /MACHINE:{ALPHA|ARM|IX86|MIPS|MIPS16|MIPSR41XX|PPC|SH3|SH4}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}[,#[.##]]
      /VERBOSE
于 2010-12-16T13:50:39.483 に答える
2

静的ライブラリを使用してインポートするコンテンツの量を減らすために、考慮すべきことがもう 1 つあります。CVI で、使用している .lib/.dll に対応するヘッダー ファイルを開きます。このファイルを別の に保存しますname.h

再びエディターで、そのファイルを編集して、使用したいエクスポートされた関数のみを含めます。 注意: 保持する関数によって呼び出される可能性のある関数を編集して削除しないでください。 必要なものを表すファイルが完成したら、新しいname.hファイルの任意の場所をクリックし (アクティブなファイルであることを確認します)、ワークスペースの上部にあるメニューを使用して [オプション] -> [DLL インポート ライブラリの生成]
を選択します。 ポップアップ ファイル選択ダイアログ ボックスが表示されます。そのダイアログを使用して、生成するファイルに.dll対応する場所に移動し.libます。成功すると、必要なname.libエクスポートされた関数のみを含む新しい が作成されます。

エクスポートの数を制限するもう 1 つの副次的な利点は、異なる環境で作成されたライブラリを混在させるときに時々見られるCOFFの非互換性の問題を回避するのに役立つことです。

于 2011-04-22T22:42:05.267 に答える