Heim >Backend-Entwicklung >C++ >Wie behebe ich „Ungelöste externe Symbol'-Fehler beim Aufrufen von C-Funktionen aus C in Visual Studio 2010?
Linkerfehler bei projektübergreifenden C-Funktionsaufrufen in C-Code in Visual Studio 2010
Um den Linkerfehler „unaufgelöstes externes Symbol g_fmt " beim Aufrufen einer C-Funktion aus C-Code in Visual Studio 2010 auftritt, können die folgenden Schritte hilfreich sein:
1. Organisation und Benennung:
Stellen Sie sicher, dass jedes C-Modul seinen eigenen Header und seine eigene Implementierung (Erweiterung .c) hat. Verwenden Sie konsistente Namenskonventionen für Dateien und Makros, z. B. G_FMT_H als Include-Schutz.
2. Änderungen an der Header-Datei:
Ersetzen Sie die Header-Datei header.h durch „functions.h“, die Makros zum Exportieren von Funktionen enthält.
<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. Änderungen an der Implementierungsdatei:
Erstellen Sie eine entsprechende Implementierungsdatei, „functions.c“, und fügen Sie die Header-Datei ein. Definieren Sie die Funktionen und Makros für den Export.
<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. Funktionen exportieren:
Definieren Sie das Makro FUNCTIONS_EXPORT im Projekt, das die DLL erstellt (oder als Projekteinstellung in Visual Studio), um die Funktionen für den Export zu markieren. Alternativ können Sie das von der Visual Studio-IDE automatisch definierte Makro ${YOUR_PROJECT_NAME}_EXPORTS verwenden.
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie behebe ich „Ungelöste externe Symbol'-Fehler beim Aufrufen von C-Funktionen aus C in Visual Studio 2010?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!