2009-08-18 14 views
16

-Update zusammengestellt: Ich erhalte diese Warnung beim Kompilieren: mehrere '.text' gefunden Abschnitte mit unterschiedlichen AttributenMit libs/dlls in Linux/MinGW in Visual Studio

Hallo,

Ich habe einige Bibliotheken zusammengestellt (.a und .dll) in Linux mit dem MinGW Cross Compiler. Ich kann erfolgreich in Visual Studio 2008 gegen sie (.a) verknüpfen. Wenn es jedoch ausgeführt wird (unter Verwendung von .dll), wird es mit dem Adresszeiger beendet, der auf leere Speicheradressen verweist.

Gibt es einen Weg/eine Liste von Dingen, die es mir erlauben, diese Bibliotheken erfolgreich in VC08 zu verwenden?

Der Cross-Compiler erzeugt

  1. * .dll.a
  2. * .dll

Dank

Antwort

3

Es klingt für mich wie die beiden Parteien nicht die gleiche Berufung mit Konvention, dh es gibt ein Problem in der Art, wie die exportierten DLL-Funktionen definiert wurden.

Bei weitem die einfachste Ansatz wäre, die Funktionen als extern „C“ zu definieren, indem die exportierten Funktionen definieren, wie folgt:

extern "C" 
{ 
    int MyExportedFunction(char *buffer, int length); 
    void MyOtherFunction(); 
}; 
+0

Ich hatte extern "C" im Header importieren. – jameszhao00

+0

Ich habe es gerade bemerkt. Ich bekomme mehrere '.text' Abschnitte mit verschiedenen Attributen beim Kompilieren gefunden. – jameszhao00

Verwandte Themen