Hallo,
Ich möchte eigentlich nicht mehr, als ein Beispiel von der msdn 1:1 bei mir auszuführen. Nutze Vista Sp1 mit dem neusten DevC++. Doch es will nicht hinhauen:
--> http://msdn.microsoft.com/en-us/library/ms741557(VS.85).aspx
In DevC++ habe ich:
main.cpp
Linker
---------------------------
Folgende Fehler springen mir beim kompilieren entgegen:
Was muss ich sonst noch beachten, damit er die Funktionen und Konstanten kennt? Laut msdn sollte das ja genügen...
Ich möchte eigentlich nicht mehr, als ein Beispiel von der msdn 1:1 bei mir auszuführen. Nutze Vista Sp1 mit dem neusten DevC++. Doch es will nicht hinhauen:
--> http://msdn.microsoft.com/en-us/library/ms741557(VS.85).aspx
In DevC++ habe ich:
main.cpp
Code:
#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
system("PAUSE");
return EXIT_SUCCESS;
}
/*
WSAConnectByName Function, msdn:
http://msdn.microsoft.com/en-us/library/ms741557(VS.85).aspx
*/
SOCKET OpenAndConnect(LPSTR NodeName, LPSTR PortName)
{
SOCKET ConnSocket;
int ipv6only = 0;
int iResult;
BOOL bSuccess;
SOCKADDR_STORAGE LocalAddr = {0};
SOCKADDR_STORAGE RemoteAddr = {0};
DWORD dwLocalAddr = sizeof(LocalAddr);
DWORD dwRemoteAddr = sizeof(RemoteAddr);
ConnSocket = socket(AF_INET6, SOCK_STREAM, 0);
if (ConnSocket == INVALID_SOCKET){
return INVALID_SOCKET;
}
iResult = setsockopt(ConnSocket, IPPROTO_IPV6,
IPV6_V6ONLY, (char*)&ipv6only, sizeof(ipv6only) );
if (iResult == SOCKET_ERROR){
Closesocket(ConnSocket);
return INVALID_SOCKET;
}
bSuccess = WSAConnectByName(ConnSocket, NodeName,
PortName, &dwLocalAddr,
(SOCKADDR*)&LocalAddr,
&dwRemoteAddr,
(SOCKADDR*)&RemoteAddr,
NULL,
NULL);
if (bSuccess){
return ConnSocket;
} else {
return INVALID_SOCKET;
}
}
Linker
Code:
../../Dev-Cpp/lib/libws2_32.a
../../Dev-Cpp/lib/libwsock32.a
---------------------------
Folgende Fehler springen mir beim kompilieren entgegen:
Code:
D:\C++\WINSOCK2\main.cpp In function `SOCKET OpenAndConnect(CHAR*, CHAR*)':
34 D:\C++\WINSOCK2\main.cpp `IPV6_V6ONLY' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
36 D:\C++\WINSOCK2\main.cpp `Closesocket' undeclared (first use this function)
46 D:\C++\WINSOCK2\main.cpp `WSAConnectByName' undeclared (first use this function)
Was muss ich sonst noch beachten, damit er die Funktionen und Konstanten kennt? Laut msdn sollte das ja genügen...