Страница 1 из 2
Вопрос по sin sockets
Добавлено: 05 июн 2005, 02:42
RevYurMIh
Делаю програмку с помощью синхронных сокетов - тестирую на локальном компьютере - все нормально(посылка, получение данных)
пробовал через сеть - во время выполнения выдает такую хрень -
function pointer declared with a different calling convention.Может кто знает в чем дело? И вообще причем тут function pointer?

Добавлено: 06 июн 2005, 12:11
Kolinus
А версии оси и так далее на разных машинах одинаковые ???
Такое впечатление что разные ОСИ и в них разная реализация сетевых функций и функция у тебя не в код встроена а используется функция ОС - отсюда и грабли.
Если я прав то сделать мона следующее - в настройках проекта укажи все связывать статически и встраивать в код - программа разбухнеть но должна работать.
Добавлено: 07 июн 2005, 01:50
RevYurMIh
Вроде бы все настроил,код разбух раза в 2, все равно та же лажа.1 ОС - ХР вторая 2000.Может дело в другом(ядро то одинаковое)?
Я вроде бы все что можно указал

Добавлено: 07 июн 2005, 15:23
Kolinus
попробуй собрать код под вин 2к а не под вин ХР
Добавлено: 07 июн 2005, 20:34
RevYurMIh
Он и собирался под вин 2к
Добавлено: 07 июн 2005, 21:47
Eugie
пробовал через сеть - во время выполнения выдает такую хрень -
function pointer declared with a different calling convention
Странно, проблемы с calling convention обычно возникают во время сборки... Ты бы фрагмент кода выложил, чтобы заочно не гадать.
Добавлено: 08 июн 2005, 03:32
RevYurMIh
Сервер в цикле шлет сообщения(файлы в тек. директории)
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
Добавлено: 08 июн 2005, 09:34
Eugie
Переполнение буфера?
А что возвращают send/recv?
Добавлено: 08 июн 2005, 21:01
RevYurMIh
Я дебагом прошелся в клиенте когда сервер на удал компе. Ф-я recv время от времени пишет в буфер эту фигню, возращает количество получ. символов. Переполнения буфера нету. Ничего не понимаю

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