Fehlermeldung: error LNK2019

Das Problem ist folgendes:
Du kompilierst die Sipgate.cpp als C-Code, die Request.cpp jedoch als C++-Code. Nun ist es aber so, dass in C die Funktionen anders benannt werdern als bei C++. In C wird aus void GetRequest(char*) der Symbolname _GetRequest in C++ wird daraus ?GetRequest@@YAXPAD@Z. Die Request.obj beinhält also die C++ Variante während die Sipgate.cpp nach der C-Variante verlangt.

Die Symbolnamen gelten so natürlich nur für die cl.exe, jeder Compiler ist da bisschen anders.

Möglichkeiten:
Entweder alle Dateien einheitlich als C oder C++ compilieren oder in der Request.cpp die Deklaration ändern.
C++:
extern "C" void GetRequest(char tmp[1000])
{
	string value = tmp;
    string result = HTTPRequest("http://localhost", 80, "GET /datei.php?param="+value+" HTTP/1.1\r\n"
                                                   "Host: localhost\r\n"
                                                   "Accept-Encoding: text\r\n\r\n");
 
    
}
 
Ich hab es jetzt genauso dastehen wie du... Ich bekomme jetzt den Fehler:

1>request.cpp(146) : error C2732: Bindungsangaben widersprechen vorheriger Angabe für 'GetRequest'



lg Jay
 
Du musst es natürlich auch in der Vorwärtsdeklaration so einbauen, die du in der Request.cpp gemacht hast.
 

Neue Beiträge

Zurück