Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

запара

5.9K
30 марта 2005 года
0m3r
41 / / 08.02.2005
Так вот в сорце ёсть куча переменых типа u8 .
Ну мне умние люди и говорят - мол ёто unsigned char.
 
Код:
typedef unsigned char u8;

Ёсть ф-я примерно с таким вот описаниём :
 
Код:
int parse_ex (u8*, int , int, int, u8*,char*)

и переменые
 
Код:
const u_char *pkt_data
char packetbuf[0x100000]; //32

использую
 
Код:
parse_ex((u8*)pkt_data,1,1,1,
packetbuf,//<- вот ошибка
packetbuf);

252 ...dev-pcap_s2\main.cpp invalid conversion from `char*' to `u8*'
252 ...dev-pcap_s2\main.cpp initializing argument 5 of `int parse_ex(u8*, int, int, int, u8*, char*)'
ёсли
 
Код:
parse_ex((u8*)pkt_data,1,1,1,
(u8*)packetbuf,//<- вот ошибка
packetbuf);

[Linker error] undefined reference to `parse_ex(unsigned char*, int, int, int, unsigned char*, char*)'
Вопрос что же такоё u8???
5.9K
31 марта 2005 года
0m3r
41 / / 08.02.2005
воощем как сказали
--------------------------------------------------
Типы тут ни при чем.
Это ошибка не компилятора, а линкера. Он не может найти реализацию функции parse_ex. А найти не может потому, что ему не передан соответствующий объектный файл или библиотека.
--------------------------------------------------
релиз ф-ї лежыт в upql.c, для л!нкера в upql.о когда
я привинчую ёво к проекту
g++.exe main.o -o "dev-pcap-sniff.exe" -L"lib" C:/Dev-Cpp/lib/libws2_32.a C:/Dev-Cpp/lib/wpcap.lib upql.o
оно мне:
--------------------------------------------------
main.o(.text+0xc11):main.cpp: undefined reference to `parse_ex(unsigned char*, int, int, int, unsigned char*, char const*)'
upql.o(.text+0x24e):upql.c: undefined reference to `inet_ntoa@4'
upql.o(.text+0x2d1):upql.c: undefined reference to `inet_ntoa@4'
upql.o(.text+0x391):upql.c: undefined reference to `inet_ntoa@4'
upql.o(.text+0x414):upql.c: undefined reference to `inet_ntoa@4'
upql.o(.text+0x4ae):upql.c: undefined reference to `inet_ntoa@4'
upql.o(.text+0x531):upql.c: more undefined references to `inet_ntoa@4' follow
..................................................upql.o(.text+0x628):upql.c: undefined reference to `ntohs@4'
upql.o(.text+0xa3d):upql.c: undefined reference to `inet_ntoa@4'
collect2: ld returned 1 exit status
--------------------------------------------------
make.exe: *** [dev-pcap-sniff.exe] Error 1
Получаетса что сама то parse_ex найдена но ненайдены inet_ntoa@4 и ntohs@4 ???
вопрос: где взять inet_ntoa@4 и ntohs@4 для проекта
5.9K
31 марта 2005 года
0m3r
41 / / 08.02.2005
inet_ntoa@4 и ntohs@4 определены в winsock2.h
я подлючил все библиотеки в которых в имени есть чёта типа *w*s*
А результат всё тот же
487
31 марта 2005 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by 0m3r
inet_ntoa@4 и ntohs@4 определены в winsock2.h
я подлючил все библиотеки в которых в имени есть чёта типа *w*s*
А результат всё тот же



Project->Settings->Link:
Object/Library modules -> добавь туда WS2_32.LIB.
Тогда все будет в ажуре.

А вообще в таких случаях MSDN очень помогает.
Вот например выдержка для ntohs:


Requirements
Client: Requires Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95.
Server: Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server.
Header: Declared in Winsock2.h.
Library: Use Ws2_32.lib.

5.9K
31 марта 2005 года
0m3r
41 / / 08.02.2005
Ну не на стоко же я глупо пишу
Ладно попробую вместо libws2_32.a VC-ную WS2_32.LIB
5.9K
01 апреля 2005 года
0m3r
41 / / 08.02.2005
Библиотека ==WS2_32.LIB стандартная з VC.
А winsock2.h я беру с MinGW
У меня В DEV-CPP в winsock2.h эти функции обелены вот так
 
Код:
DECLARE_STDCALL_P (char *) inet_ntoa(struct in_addr); //INET_NTOA DECLARE in DEV-CPP
......................................
#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) // CYGWIN у меня нету равно как и MSYS
......................................
u_short PASCAL ntohs(u_short); // NTOHS DECLARE in DEV-CPP
.......................................
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */

А вот в VC -ом варианте
Код:
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
char FAR *
WSAAPI
inet_ntoa(
    struct in_addr in
    );
#endif // INCL_WINSOCK_API_PROTOTYPES
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
u_short
WSAAPI
ntohs(
    u_short netshort
    );
#endif // INCL_WINSOCK_API_PROTOTYPES

Вопрос как переобявить эти функции в варианте для dev-cpp
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог