Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyelesaikan Ralat \'Simbol Luaran Tidak Selesai\' Apabila Memanggil Fungsi C daripada C dalam Visual Studio 2010?
Ralat Pemaut dalam Panggilan Fungsi Cross-Projek C dalam Kod C dalam Visual Studio 2010
Untuk menangani ralat pemaut "simbol luaran yang tidak dapat diselesaikan g_fmt " ditemui semasa memanggil fungsi C daripada kod C dalam Visual Studio 2010, langkah berikut boleh membantu:
1. Organisasi dan Penamaan:
Pastikan setiap modul C mempunyai pengepala dan pelaksanaannya sendiri (sambungan .c). Gunakan konvensyen penamaan yang konsisten untuk fail dan makro, seperti G_FMT_H sebagai pengawal termasuk.
2. Pengubahsuaian Fail Pengepala:
Ganti fail pengepala header.h dengan functions.h, yang termasuk makro untuk mengeksport fungsi.
<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. Pengubahsuaian Fail Pelaksanaan:
Buat fail pelaksanaan yang sepadan, functions.c dan sertakan fail pengepala. Tentukan fungsi dan makro untuk mengeksport.
<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. Fungsi Mengeksport:
Tentukan makro FUNCTIONS_EXPORT dalam projek membina DLL (atau sebagai tetapan projek dalam Visual Studio) untuk menandakan fungsi untuk eksport. Sebagai alternatif, gunakan makro yang ditakrifkan secara automatik oleh Visual Studio IDE: ${YOUR_PROJECT_NAME}_EXPORTS.
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Simbol Luaran Tidak Selesai\' Apabila Memanggil Fungsi C daripada C dalam Visual Studio 2010?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!