[gelöst] Native Netzwerkprogrammierung unter QT?
Verfasst: 6. September 2005 10:14
Hallo Zusammen,
schreibe mir gerade eine Klasse, die in einem seperaten QThread laufen soll und alle ICMP-Nachrichten abfängt, auswertet und dementsprechend Signale an anderen QObjecten senden soll.
Nun aber das Problem: Wenn man die <winsock2.h> includiert, wieso kann man dann nicht auf dessen Funktionen zugreifen? z. B. WSAStartup(), sendto(), recfrom() etc... -halt alles was in der winsock2.h deklariert ist.
Compilieren lässt sich das Programm, erst beim Linken kommen die Fehlermeldungen. siehe:
Gruß John
schreibe mir gerade eine Klasse, die in einem seperaten QThread laufen soll und alle ICMP-Nachrichten abfängt, auswertet und dementsprechend Signale an anderen QObjecten senden soll.
Nun aber das Problem: Wenn man die <winsock2.h> includiert, wieso kann man dann nicht auf dessen Funktionen zugreifen? z. B. WSAStartup(), sendto(), recfrom() etc... -halt alles was in der winsock2.h deklariert ist.
Compilieren lässt sich das Programm, erst beim Linken kommen die Fehlermeldungen. siehe:
Die Klasse funktioniert bereits, aber nur als DOS-Programm. Muss es halt in eine QT-Klasse portieren...G:\scan\v4>make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `G:/scan/v4'
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_GUI_
LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.0.1/include/QtGui" -I"C:/Qt/4.0.1/include/QtCore" -I"C:/Qt/4.0.1/inc
lude" -I"." -I"C:/Qt/4.0.1/include/ActiveQt" -I"release" -I"." -I"C:/Qt/4.0.1/mkspecs/win32-g++" -o release\icmpWatch.o
icmpWatch.cpp
icmpWatch.cpp: In member function `void icmpWatch::start()':
icmpWatch.cpp:119: warning: comparison between signed and unsigned integer expressions
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subs
ystem,windows -o "release\v4.exe" release\main.o release\portScan.o release\icmpWatch.o release\moc_portScan.o release\m
oc_icmpWatch.o -L"C:\Qt\4.0.1\lib" -lmingw32 -lqtmain -lQtCore4 -lQtGui4
release\icmpWatch.o(.text+0x78e):icmpWatch.cpp: undefined reference to `sendto@24'
release\icmpWatch.o(.text+0x7c3):icmpWatch.cpp: undefined reference to `recvfrom@24'
release\icmpWatch.o(.text+0x803):icmpWatch.cpp: undefined reference to `WSAGetLastError@0'
release\icmpWatch.o(.text+0x83b):icmpWatch.cpp: undefined reference to `WSAStartup@8'
release\icmpWatch.o(.text+0x92a):icmpWatch.cpp: undefined reference to `socket@12'
release\icmpWatch.o(.text+0x9c5):icmpWatch.cpp: undefined reference to `setsockopt@20'
release\icmpWatch.o(.text+0x9e7):icmpWatch.cpp: undefined reference to `gethostbyname@4'
release\icmpWatch.o(.text+0xa43):icmpWatch.cpp: undefined reference to `inet_ntoa@4'
release\icmpWatch.o(.text+0xbae):icmpWatch.cpp: undefined reference to `inet_addr@4'
release\icmpWatch.o(.text+0xc9a):icmpWatch.cpp: undefined reference to `socket@12'
release\icmpWatch.o(.text+0xd35):icmpWatch.cpp: undefined reference to `setsockopt@20'
release\icmpWatch.o(.text+0xd57):icmpWatch.cpp: undefined reference to `gethostbyname@4'
release\icmpWatch.o(.text+0xdb3):icmpWatch.cpp: undefined reference to `inet_ntoa@4'
release\icmpWatch.o(.text+0xf1e):icmpWatch.cpp: undefined reference to `inet_addr@4'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\v4.exe] Error 1
mingw32-make[1]: Leaving directory `G:/scan/v4'
mingw32-make: *** [release] Error 2
G:\scan\v4>
Gruß John