Hi,
ich benoetige fuer eine Applikation nen Ping. Ich habe keine grossen Erfahrungen mit C++.
Habe mir dann das Beispiel von der MSDN Seite angeschaut.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/icmpsendecho.asp
Dies ist meine erarbeitete Klasse:
leider funktioniert dies nicht so ganz er meldet folgende Fehler:
TestDLL error LNK2019: unresolved external symbol "unsigned long __stdcall IcmpSendEcho(void *,unsigned long,void *,unsigned short,struct ip_option_information *,void *,unsigned long,unsigned long)" (?IcmpSendEcho@@YGKPAXK0GPAUip_option_information@@0KK@Z) referenced in function _main
TestDLL error LNK2019: unresolved external symbol "void * __stdcall IcmpCreateFile(void)" (?IcmpCreateFile@@YGPAXXZ) referenced in function _main
TestDLL error LNK2019: unresolved external symbol _inet_addr@4 referenced in function _main
TestDLL error LNK2019: unresolved external symbol _WinMain@16 referenced in function _WinMainCRTStartup
Habe die Iphlpapi.lib und *.dll im selben Verzeichnis.
Nun frage ich mich was ich falsch mache? Die beiden Header ipexport und icmpapi header habe ich mir woanders heruntergeladen.
Ich danke fuer jede kleine Hilfe
ich benoetige fuer eine Applikation nen Ping. Ich habe keine grossen Erfahrungen mit C++.
Habe mir dann das Beispiel von der MSDN Seite angeschaut.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/icmpsendecho.asp
Dies ist meine erarbeitete Klasse:
Code:
#include "stdafx.h"
#pragma comment(lib, "IPHlpApi.lib")
#include "ipexport.h"
#include "icmpapi.h"
#include <iostream>
#include <winsock.h>
using namespace std;
int main(int argc, char* argv[])
{
HANDLE hIcmpFile;
if ((hIcmpFile = IcmpCreateFile()) == INVALID_HANDLE_VALUE)
printf("\tUnable to open file.\n");
else
printf("\tFile created.\n");
// Declare and initialize variables
char SendData[] = "Data Buffer";
LPVOID ReplyBuffer;
int dwRetVal;
ReplyBuffer = (VOID*) malloc(sizeof(ICMP_ECHO_REPLY) + sizeof(SendData));
if ((dwRetVal = IcmpSendEcho(hIcmpFile,
inet_addr("123.456.789.0"),
SendData, sizeof(SendData) + sizeof(ICMP_ECHO_REPLY),
NULL, ReplyBuffer,
sizeof(SendData) + sizeof(ICMP_ECHO_REPLY),
1000)) != 0) {
PICMP_ECHO_REPLY pEchoReply = (PICMP_ECHO_REPLY)ReplyBuffer;
printf("\tReceived %ld messages.\n", dwRetVal);
printf("\tMessage: %s\n", pEchoReply->Data);
}
else {
printf("\tCall to IcmpSendEcho() failed.\n");
printf("\tError: %ld\n", GetLastError());
}
return 0;
}
leider funktioniert dies nicht so ganz er meldet folgende Fehler:
TestDLL error LNK2019: unresolved external symbol "unsigned long __stdcall IcmpSendEcho(void *,unsigned long,void *,unsigned short,struct ip_option_information *,void *,unsigned long,unsigned long)" (?IcmpSendEcho@@YGKPAXK0GPAUip_option_information@@0KK@Z) referenced in function _main
TestDLL error LNK2019: unresolved external symbol "void * __stdcall IcmpCreateFile(void)" (?IcmpCreateFile@@YGPAXXZ) referenced in function _main
TestDLL error LNK2019: unresolved external symbol _inet_addr@4 referenced in function _main
TestDLL error LNK2019: unresolved external symbol _WinMain@16 referenced in function _WinMainCRTStartup
Habe die Iphlpapi.lib und *.dll im selben Verzeichnis.
Nun frage ich mich was ich falsch mache? Die beiden Header ipexport und icmpapi header habe ich mir woanders heruntergeladen.
Ich danke fuer jede kleine Hilfe
Zuletzt bearbeitet: