ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Проблема с WSAIoctl
  #1  
Старый 17.05.2009, 22:49
Virus Catcher
Новичок
Регистрация: 12.07.2007
Сообщений: 8
Провел на форуме:
81254

Репутация: 1
По умолчанию Проблема с WSAIoctl

Суть проблемы следующая.
Был код, он компилировался и работал. Все супер.


Тут я решил вставить его часть в свой проект и начались проблемы.



Код:
Код:
#include <winsock2.h>
#include <stdio.h>

....

int in;

...

if (WSAIoctl(sn, SIO_RCVALL, &j, sizeof(j), 0, 0, &in, 0, 0) == SOCKET_ERROR)
     {
		MessageBox (HWND_DESKTOP, "WSAIoctl() failed.", "Error", MB_OK | MB_ICONEXCLAMATION);
		return 1;
     }

......
Проблема в том, что компилятор начал ругатся, мол: error C2664: 'WSAIoctl' : cannot convert parameter 7 from 'int *' to 'LPDWORD'

Но в исходном проекте все работало!!!

Кроме того, пришлось добавить #pragma comment( lib, "Ws2_32.lib" ) т.к. без этого выдавало еще кучу всяких ошибок...

Где я напортачил???
Может где-то настройки проекта не те или что....
 
Ответить с цитированием

  #2  
Старый 18.05.2009, 00:55
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

WSAIoctl(sn, SIO_RCVALL, &j, sizeof(j), 0, 0, (LPDWORD)&in, 0, 0)

не может преобразовать? мы ему поможем

хотя на самом деле DWORD это unsigned long тобишь безнаковое 4 байтовое целое...

если бы ты обявил in как unsigned long или DWORD он бы не ругался.

Последний раз редактировалось Gar|k; 18.05.2009 в 00:59..
 
Ответить с цитированием

  #3  
Старый 18.05.2009, 01:40
Virus Catcher
Новичок
Регистрация: 12.07.2007
Сообщений: 8
Провел на форуме:
81254

Репутация: 1
По умолчанию

Спасибо!
С DWORDом все получилось.

Ато я когда ему указывал LPDWORD - он компилил, но при екзекьюте слал меня в глубокий нокаун.

Странно то, что изначально он был определен как int и компилятор не ругался...я и подумал что все ок...
 
Ответить с цитированием

  #4  
Старый 18.05.2009, 02:19
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

LPDWORD это ссылка на значение (DWORD *) - тоесть означает что ты должен передать ссылку.
типа &in

но если ты назаваешь
LPDWORD in
и напишешь &in то конечно будет попа... ты передаешь указатель на указатель которого нет ))
 
Ответить с цитированием

  #5  
Старый 18.05.2009, 16:53
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Цитата:
LPDWORD это ссылка на значение (DWORD *) - тоесть означает что ты должен передать ссылку.
типа &in
небольшая поправка LPDWORD это указатель на DWORD, а не ссылка)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с настройками... F&D Windows 8 25.02.2009 10:29
Проблема со сплойтом для вхзлома ipb 2.0.0 Taylorith Форумы 8 18.02.2007 20:06
проблема RocketV1_0 КИРЮХА ! Схемы и программы 0 10.06.2006 23:48
Проблема с установкой proxy Utochka Уязвимости 3 09.05.2006 01:03
Hydra проблема с брутом Utochka Уязвимости 2 02.03.2006 23:37



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ