Ich habe eine DLL kompiliert im 32bit-Modus, aber wenn kompilieren im 64-Bit-Modus (sowohl auf einem 32-Bit-Box Cross Compiling und auf einer nativen 64bit-Box) bekomme ich die oberer Fehler. Das Symbol, das es über beschwert sind die folgenden:VC++ LNK2001: ungelöst externes Symbol nur beim Kompilieren auf 64bit
"struct return_info_ * __cdecl patch_file(char *,char *,char *)"
Ich bin neu in C++, aber ich glaube, ich definiert haben sowohl die Struktur und die Signatur korrekt. Die Struktur "return_info_" wie folgt definiert ist:
typedef struct return_info_
{
char *message;
int code;
} return_info;
Im gleichen Header, um die Signatur der Funktion ich habe:
return_info* patch_file(char* oldfile, char* newfile, char* patchfile);
Das ist alles in nativen C/C++ Code, der kompiliert wird als statisch verknüpfte Bibliothek. Ich habe dann unsere Hauptbibliothek, die mit diesem verlinkt und eine clr-kompatible Binärdatei ist. Irgendwelche Ideen, warum der 64bit Compiler diese Fehler wirft?
Ich hatte nicht bemerkt, dass der 64-Bit-Build in ein anderes Verzeichnis gegangen war, als ich mit den verschiedenen Build- und Linker-Optionen herumhantierte, musste ich es geändert haben. Alles gelöscht, sichergestellt, dass alles auf den richtigen Platz zeigt und es nun korrekt kompiliert. Vielen Dank! –