Visual Studio 2010 の C コードでのクロスプロジェクト C 関数呼び出しのリンカー エラー
リンカー エラー「未解決の外部シンボル g_fmt」を解決するにはVisual Studio 2010 で C コードから C 関数を呼び出すときに「」が発生した場合は、次の手順が役立つ場合があります:
1.構成と命名:
各 C モジュールに独自のヘッダーと実装 (拡張子 .c) があることを確認します。インクルード ガードとして G_FMT_H を使用するなど、ファイルとマクロには一貫した命名規則を使用します。
2.ヘッダー ファイルの変更:
header.h ヘッダー ファイルを function.h に置き換えます。このファイルには、関数をエクスポートするためのマクロが含まれています。
<code class="c">#define FUNCTIONS_EXPORT_API __declspec(dllexport) // For DLL export #ifdef __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*); #ifdef __cplusplus } #endif</code>
3.実装ファイルの変更:
対応する実装ファイル function.c を作成し、ヘッダー ファイルをインクルードします。エクスポートする関数とマクロを定義します。
<code class="c">#include "functions.h" char *dtoa(double, int, int, int*, int*, char**) {} // Define functions char *g_fmt(char*, double) {} void freedtoa(char*) {}</code>
4.関数のエクスポート:
DLL を構築するプロジェクトで (または Visual Studio のプロジェクト設定として) FUNCTIONS_EXPORT マクロを定義して、エクスポートする関数をマークします。または、Visual Studio IDE によって自動的に定義されたマクロを使用します: ${YOUR_PROJECT_NAME}_EXPORTS.
追加の考慮事項:
以上がVisual Studio 2010 で C から C 関数を呼び出すときに発生する「未解決の外部シンボル」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。