Старый 21.03.2011, 22:32   #61
nobody
 
Аватар для nobody
 
Регистрация: 05.07.2010
Сообщений: 176
Репутация: 130
По умолчанию

мож сперва бы сам глянул "справку"?
Код:
    char buf[4];
    printf("%lu,%lu,%lu\n", sizeof(int), sizeof(float), sizeof(buf));
Result: 4,4,4
nobody вне форума   Ответить с цитированием
Старый 21.03.2011, 23:33   #62
rsaReliableS
 
Регистрация: 29.07.2010
Сообщений: 36
Репутация: 7
По умолчанию

Цитата:
Сообщение от nobody Посмотреть сообщение
ах если бы всё было так просто
Код:
int main() {
    printf("%d\n", isint(33/17));
}

result: 1
Все правильно. У M_script код вполне рабочий.
Выполни:
PHP код:
cout << 33/17 << endl;
cout << 33.0/17.0 << endl
Понял? Ты в агрумент передаешь уже округленное частное, приведенное к типу Int. Дальше число приводится к типу float и выполняется вычисление isInt.
Следует делать вызов:
PHP код:
isint((float)33/(float)17
либо
PHP код:
isint(33.0/17.0
rsaReliableS вне форума   Ответить с цитированием
Старый 23.03.2011, 13:31   #63
Ins3t
 
Регистрация: 05.07.2010
Сообщений: 8
Репутация: 0
По умолчанию

Цитата:
под int выделяется 4 байта.
Ничего подобного. Отводится 4 байта на некоторых машинах, но отнюдь не на всех. На современных - это зачастую 8 байт.
Ins3t вне форума   Ответить с цитированием
Старый 03.04.2011, 15:36   #64
Sunzer
 
Аватар для Sunzer
 
Регистрация: 06.07.2010
Сообщений: 1
Репутация: 0
По умолчанию

Цитата:
Ничего подобного. Отводится 4 байта на некоторых машинах, но отнюдь не на всех. На современных - это зачастую 8 байт.
И на 64 и на 32 битах, под int 4 байта отводится. Вот для long разрядность соответствует машине под которую компилируется. Поправьте если ошибаюсь.
Sunzer вне форума   Ответить с цитированием
Старый 03.04.2011, 16:09   #65
nobody
 
Аватар для nobody
 
Регистрация: 05.07.2010
Сообщений: 176
Репутация: 130
По умолчанию

чего мусолить? http://linux.die.net/man/3/int64_t
nobody вне форума   Ответить с цитированием
Старый 03.04.2011, 19:25   #66
SeNaP
 
Аватар для SeNaP
 
Регистрация: 03.08.2010
Сообщений: 152
Репутация: 10
По умолчанию

Всем привет, возник следующий вопрос.
Как например, отослать rcon команду Counter-Strike серверу? Как получить ответ?
Как вообще взаимодействовать с чужими серверами?
SeNaP вне форума   Ответить с цитированием
Старый 03.04.2011, 20:57   #67
oRb
 
Аватар для oRb
 
Регистрация: 01.07.2010
Сообщений: 319
Репутация: 138
По умолчанию

http://developer.valvesoftware.com/wiki/Source_RCON_Protocol
__________________
Не оказываю никаких услуг.
I don't provide any services.
oRb вне форума   Ответить с цитированием
Старый 07.11.2011, 21:26   #68
SeNaP
 
Аватар для SeNaP
 
Регистрация: 03.08.2010
Сообщений: 152
Репутация: 10
По умолчанию

Прочитал статью на хабре о внедрении в чужой процесс
http://habrahabr.ru/blogs/cpp/95305/

Ну и пытаюсь повторить

PHP код:
DWORD WINAPI func(LPVOID)
{
    
    
LoadLibrary("kernel32.dll");
    
LoadLibrary("user32.dll");
    
MessageBox(0,"Hello from addres area of explorer","title",0);

    return 
true;

MessageBox выскакивает, т.е. в недрение в explorer.exe произошло. Потом пытаюсь сделать, чтобы появилось окошко

PHP код:
HINSTANCE HInstance;

DWORD WINAPI func(LPVOID)
{
    
HWND hwnd;
    
WNDCLASS w;
    
memset(&w,0,sizeof(WNDCLASS));
    
w.style CS_HREDRAW CS_VREDRAW;
    
w.lpfnWndProc WndProc;
    
w.hInstance HInstance;
    
w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    
w.lpszClassName "My Class";
    
RegisterClass(&w);

    
LoadLibrary("kernel32.dll");
    
LoadLibrary("user32.dll");
    
//MessageBox(0,"Hello from addres area of explorer","title",0);
    
hwnd CreateWindow("My Class""My title"WS_OVERLAPPEDWINDOW,
        
300200200180NULLNULLHInstanceNULL);
    
ShowWindow(hwnd,SW_SHOWNORMAL);
    return 
true;

и explorer падает . В чём может быть проблема?
SeNaP вне форума   Ответить с цитированием
Старый 07.11.2011, 21:51   #69
DrakonHaSh
 
Регистрация: 05.07.2010
Сообщений: 244
Репутация: 106
По умолчанию

SeNaP
HInstance у тебя не инициализирована
попробуй w.hInstance = GetModuleHandle(NULL);

и пользуйся отладчиком. вставь в первую строку функции DebugBreak();
DrakonHaSh вне форума   Ответить с цитированием
Старый 07.11.2011, 21:57   #70
SeNaP
 
Аватар для SeNaP
 
Регистрация: 03.08.2010
Сообщений: 152
Репутация: 10
По умолчанию

Цитата:
Сообщение от DrakonHaSh Посмотреть сообщение
SeNaP
HInstance у тебя не инициализирована
попробуй w.hInstance = GetModuleHandle(NULL);

и пользуйся отладчиком. вставь в первую строку функции DebugBreak();
Не помогло, а отладчиком щас буду учиться пользоваться
Хотя окошко создается, если вынести её в WinMain

И еще, в WIN 7 внедряется, а в WIN XP нет
SeNaP вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot