C コードを異なる VS2010 プロジェクトの C プロジェクトに統合すると、 C コードから C 関数を呼び出すときにリンク エラーが発生する。このエラーは LNK2001 として識別され、未解決の外部シンボルに関連しています。
この問題を修正するには、次の特定のガイドラインに従ってコードベースが適切に構成されていることを確認します。
モジュール化コード:
ヘッダーの作成と実装ファイル:
エクスポートとインポート:
functions.h
<code class="c">#pragma once #define FUNCTIONS_EXPORT_API #if defined(__cplusplus) extern "C" { #endif FUNCTIONS_EXPORT_API char *dtoa(double, int, int, int*, int*, char**); FUNCTIONS_EXPORT_API char *g_fmt(char*, double); FUNCTIONS_EXPORT_API void freedtoa(char*); #if defined(__cplusplus) } #endif</code>
functions.c
<code class="c">#define FUNCTIONS_EXPORTS #include "functions.h" char *dtoa(double, int, int, int*, int*, char**) { // Function implementation } char *g_fmt(char*, double) { // Function implementation } void freedtoa(char*) { // Function implementation }</code>
以上がVS2010 の C プロジェクトと C プロジェクトが混在している場合の LNK2001 リンカー エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。