Hallo,
Ik wil een HTTP request-library maken, maar ik stuit op het volgende probleem:
als ik de code probeer te runnen, geeft de linker de volgende error:
Mijn code is:
HttpRequest.h:
HttpRequest.cpp:
Weet iemand misschien hoe ik dit kan oplossen? Ik gebruik CodeGear C++ Builder 2009 en verder gebruik ik geen externe libs, alleen WinSock.
Ik wil een HTTP request-library maken, maar ik stuit op het volgende probleem:
als ik de code probeer te runnen, geeft de linker de volgende error:
Code:
[ILINK32 Error] Error: Unresolved external 'HttpPost(System::UnicodeString, System::UnicodeString)' referenced from D:\CPP PROJECTS\JIANCE TOOLS\DEBUG\UPLOADMAIN.OBJ
HttpRequest.h:
Code:
//---------------------------------------------------------------------------
#ifndef HttpRequestLib
#define HttpRequestLib
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <WinSock2.h>
//---------------------------------------------------------------------------
extern UnicodeString HttpPost(UnicodeString Host, UnicodeString Data);
//---------------------------------------------------------------------------
#endif
Code:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "HttpRequest.h"
#pragma package(smart_init)
#pragma comment(lib, "winsock.lib")
//---------------------------------------------------------------------------
UnicodeString HttpPost(UnicodeString Host, UnicodeString Data)
{
// Init
WSAData wsaData;
if (WSAStartup(WINSOCK_VERSION,&wsaData))
return "WSA Startup Failed!";
// Make socket
SOCKET ASocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (ASocket == INVALID_SOCKET)
return "Creating Socket Failed!";
// Fill socket
LPHOSTENT HostEntry = gethostbyname(Host.c_str());
SOCKADDR_IN AServer;
AServer.sin_family = AF_INET;
AServer.sin_addr = *((LPIN_ADDR)*HostEntry->h_addr_list);
AServer.sin_port = htons(80);
// Connect the socket
if (connect(ASocket,(LPSOCKADDR)&AServer,sizeof(struct sockaddr)) == SOCKET_ERROR)
return "Connecting Socket Failed!";
// Fill HTTP request
// Send HTTP request
// Cleanup
closesocket(ASocket);
WSACleanup();
return "Success!";
}
//---------------------------------------------------------------------------