Вопрос по sin sockets

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

RevYurMIh
Сообщения: 20
Зарегистрирован: 30 май 2005, 01:36
Откуда: ry_@tut.by

Делаю програмку с помощью синхронных сокетов - тестирую на локальном компьютере - все нормально(посылка, получение данных)
пробовал через сеть - во время выполнения выдает такую хрень -
function pointer declared with a different calling convention.Может кто знает в чем дело? И вообще причем тут function pointer?
:cry:
Kill yourself!
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

А версии оси и так далее на разных машинах одинаковые ???
Такое впечатление что разные ОСИ и в них разная реализация сетевых функций и функция у тебя не в код встроена а используется функция ОС - отсюда и грабли.
Если я прав то сделать мона следующее - в настройках проекта укажи все связывать статически и встраивать в код - программа разбухнеть но должна работать.
В SAD - все в SAD.
RevYurMIh
Сообщения: 20
Зарегистрирован: 30 май 2005, 01:36
Откуда: ry_@tut.by

Вроде бы все настроил,код разбух раза в 2, все равно та же лажа.1 ОС - ХР вторая 2000.Может дело в другом(ядро то одинаковое)?
Я вроде бы все что можно указал :cry:
Kill yourself!
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

попробуй собрать код под вин 2к а не под вин ХР
В SAD - все в SAD.
RevYurMIh
Сообщения: 20
Зарегистрирован: 30 май 2005, 01:36
Откуда: ry_@tut.by

Он и собирался под вин 2к
Kill yourself!
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

пробовал через сеть - во время выполнения выдает такую хрень -
function pointer declared with a different calling convention
Странно, проблемы с calling convention обычно возникают во время сборки... Ты бы фрагмент кода выложил, чтобы заочно не гадать.
RevYurMIh
Сообщения: 20
Зарегистрирован: 30 май 2005, 01:36
Откуда: ry_@tut.by

Сервер в цикле шлет сообщения(файлы в тек. директории)

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,buff_cl,SIZE,0);
}while(FindNextFile(h,&fd));
Клиент принимает
while(...){
recv(...)
...
}
(до тех пор пока сервер не пошлет сообщение что передача завершилась)
и выводит на экран
через каждое сообщение(иммя файла) выскакивает эта фраза:
function pointer declared with a different calling convention
Kill yourself!
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Переполнение буфера?
А что возвращают send/recv?
RevYurMIh
Сообщения: 20
Зарегистрирован: 30 май 2005, 01:36
Откуда: ry_@tut.by

Я дебагом прошелся в клиенте когда сервер на удал компе. Ф-я recv время от времени пишет в буфер эту фигню, возращает количество получ. символов. Переполнения буфера нету. Ничего не понимаю :( Может это как то связано с юникодом/анси?
Kill yourself!
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Может это как то связано с юникодом/анси?
Вряд ли. Попробуй пересылать просто константную строку, посмотри, что получишь на выходе.
Ответить