Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyelesaikan Ralat \'Simbol Luaran Tidak Selesai\' Apabila Memanggil Fungsi C daripada C dalam Visual Studio 2010?

Bagaimana untuk Menyelesaikan Ralat \'Simbol Luaran Tidak Selesai\' Apabila Memanggil Fungsi C daripada C dalam Visual Studio 2010?

Patricia Arquette
Lepaskan: 2024-10-28 09:49:02
asal
591 orang telah melayarinya

How to Resolve

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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:

  • Gunakan yang sama termasuk pengawal dalam pengepala fail dan fail pelaksanaan yang sepadan.
  • Pastikan projek yang memautkan ke DLL mempunyai perpustakaan import yang betul atau merujuk DLL import yang betul.
  • Semak definisi prapemproses dalam Project Properties untuk mengesahkan bahawa eksport makro ditakrifkan dengan betul.

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan