リンカーエラーLNK2019は__stdcallに戻りました。私は正しいlibを手に入れたと思います - これを解決するために何ができますか?

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

質問

LabCVI ProjektをMSVS 2010 C ++ Expressに移植しようとします。次のように読み取るコードの行があります:

if (InitCVIRTE == 0) return 0;

リンカーエラーが発生します:lnk2019 "_initcvirteex@12" - すべての関連ヘッダーはすでにCPPステートメントを備えています。

#ifdef __cplusplus 
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif

エラーをこれらのスニペットに戻しました。

#define CVIFUNC __stdcall
int CVIFUNC InitCVIRTEEx (void *hInstance, char *argv[], void *reserved);
#define InitCVIRTE InitCVIRTEEx

これをまとめるには:

int __stdcall InitCVIRTEEx (void *hInstance, char *argv[], void *reserved);

この呼び出しは、cvirt.libで定義する必要があります-wichはライブラリパスに追加されます(cvi2009 extlib msvc)リンカーエラーがまだ発生します。

libを別の方法で追加する必要がありますか?これが本当に正しいLIBであることを確認するにはどうすればよいですか?エラーは完全に異なるものを意味しますか?

役に立ちましたか?

解決

リンカーにリンクするライブラリを伝える必要があります。検索パスは、リンカーにそれらのライブラリを見つける場所を指示するだけです。

つまり:

Linker Libraries:
 - a.lib
 - b.lib

Linker Search Dirs:
 C:\project_a\lib
 C:\project_b\lib

リンカーは両方のフォルダーをA.LibとB.Libを検索しますが、言われていないライブラリをリンクしません。

他のヒント

どういうわけかそれを解決しました - 私はプロジェクトにcvirt.libとcvisupp.libをdirektlyに追加しました。エラーはもうなくなりました...

しかし、私はまだプロジェクトにライブラリを探すべき道をプロジェクトに与えたので、まだ満足していません。 Stackoverflowに別の質問を追加します。違いは何なのかを尋ねます。

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