2

.lib静的ライブラリがあります。リンカー設定の「追加のライブラリディレクトリ」と「追加の依存関係」でリンクし、を使用しpragma comment (lib, "mylib").ました。そして、それはすべてうまくコンパイルされます。

私が求めているのは、私が見たときにのみリンクソリューションを見つけることができるように見えることですが、それは実際にその中の関数をどのように使用するかです。静的ライブラリで参照されている関数「MyFunc」がある場合、どのように呼び出すことができますか?Visual Studioは現在、ライブラリで定義されている名前空間または関数を認識しません。

ありがとう!

4

2 に答える 2

5

そのライブラリのヘッダーファイルを取得する必要があります。これは通常、ライブラリに付属しています。その後、関数を使用するファイルにそれを含め、宣言されたプロトタイプを使用して関数を呼び出す必要があります。

コンパイラは、関数のプロトタイプについて知る必要があります。これは、libファイルを読み取ったり解析したりできないためです。これがリンカーの仕事です。

于 2013-02-07T23:26:36.983 に答える
2

私があなたが何を求めているかを理解しているなら、あなたはあなたのfunction-that-lives-in-a-libのプロトタイプを宣言する必要があります:

あなたのlibが持っていると言う:

int Foo(int bar) { ... }

pragmaあなたのlibが入っているあなたの「消費者」には、次のようなものが必要です。

extern int Foo(int bar);

または単に:

int Foo(int bar);

通常、これはヘッダーファイル(.hファイル)を介して行います。ライブラリの場合、これらは通常「インクルードファイル」と呼ばれます。

于 2013-02-07T23:28:49.887 に答える