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

Ваш аккаунт

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

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

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

Проблемы с сокетами

2.9K
07 июня 2005 года
RYM
109 / / 06.06.2005
Делаю програмку с помощью синхронных сокетов - тестирую на локальном компьютере - все нормально(посылка, получение данных)
пробовал через сеть - во время выполнения выдает такую хрень -
function pointer declared with a different calling convention.Может кто знает в чем дело? И вообще причем тут function pointer?
:{
425
07 июня 2005 года
sq_deep
498 / / 18.02.2005
Вы вызываете экспортируемую функцию, причём её описание в DLL отличается от описания при вызове разными соглашениями по передаче параметров. Например, такая ошибка будет, если в DLL есть описание
void __stdcall f(int a),
а в вызывающей программе
void __cdecl f(int a).
Параметры при этом могут передаваться неверно.
2.9K
08 июня 2005 года
RYM
109 / / 06.06.2005
Цитата:
Originally posted by sq_deep
Вы вызываете экспортируемую функцию, причём её описание в DLL отличается от описания при вызове разными соглашениями по передаче параметров. Например, такая ошибка будет, если в DLL есть описание
void __stdcall f(int a),
а в вызывающей программе
void __cdecl f(int a).
Параметры при этом могут передаваться неверно.



а я вроде бы ничего такого не описывал:( ошибка возникает именно при полученнии(сама ф-я recv в буфер загоняет эту херню) мот это проблема связана с юникодом/анси?

425
14 июня 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by RYM
а я вроде бы ничего такого не описывал:( ошибка возникает именно при полученнии(сама ф-я recv в буфер загоняет эту херню) мот это проблема связана с юникодом/анси?

Вообще-то идей нет... что значит «проблема связана с юникодом/анси» я не понимаю. Функция recv() была написана в 1980 году, и тогда никакого юникода не было, а если бы вы использовали юникод на месте ansi или наоборот, то, как мне кажется, было бы предупреждение ещё при компиляции...

Вот только одно. Может быть, у вас #include <winsock.h>, а надо #include <winsock2.h>?

А точно, что recv() вызывается из вашего кода, а не из какой-нибудь готовой библиотеки, которая была кем-то криво скомпилирована?

3.3K
14 июня 2005 года
GENA_DJ
123 / / 08.03.2005
А можно кусок неработающего кода показать??
2.9K
17 июня 2005 года
RYM
109 / / 06.06.2005
Цитата:
Originally posted by GENA_DJ
А можно кусок неработающего кода показать??


сервер
while(bytes_recv=recv(my_sock,buff_cl,sizeof(buff_cl),0)
!=SOCKET_ERROR)
{
//client write dir
if(!strncmp(buff_cl,"dir",3))
{
strcpy(curr_dr_mask,curr_dr);
strcat(curr_dr_mask,mask);
buff_cl[0]=0;
sprintf(buff_cl,TEXT("Path: %s"),curr_dr);
send(my_sock,buff_cl,SIZE,0);
if(h=FindFirstFile((LPCTSTR)curr_dr_mask,&fd))
do{
buff_cl[0]=0;
strcat(buff_cl,fd.cFileName);
if(fd.dwFileAttributes!=
FILE_ATTRIBUTE_DIRECTORY)
{
sz=FileSizeInString(fd.nFileSizeHigh,
fd.nFileSizeLow);
strcat(buff_cl,"(");
strcat(buff_cl,sz);
strcat(buff_cl,"kb)");
}
send(my_sock,(const char *)buff_cl,SIZE,0);
}while(FindNextFile(h,&fd));
}
....
клиент в цикле принимает сообщения
while(...)
{
....
recv(...)
....
}

3.3K
18 июня 2005 года
GENA_DJ
123 / / 08.03.2005
На чем компилите/собираете?
В каком виде возникает сообщение "function pointer declared with a different calling convention"?
WSAStartup()?
2.9K
18 июня 2005 года
RYM
109 / / 06.06.2005
Цитата:
Originally posted by GENA_DJ
На чем компилите/собираете?
В каком виде возникает сообщение "function pointer declared with a different calling convention"?
WSAStartup()?


MVC 5.0.Да я использую WSAStartup()

2.9K
18 июня 2005 года
RYM
109 / / 06.06.2005
Когда клиент принемает сооб. от сервера в буфере оказывается полезная информация+это хрень, количество принятых байтов, которое возращает recv равно количеству байтов содерж. в инф-и+колич байттов в этой херне
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог