ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

22.06.2009, 09:54
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Практически правильно, но есть способо без изменения позиции переменных
Его необходимо применить чтобы данная структура стала 7 байт и не потерялся функционал
Код:
struct _REC
{
struct
{
unsigned char data1;
unsigned short data2;
bool data3;
bool data4;
bool data5;
} first_rec;
bool data6;
bool data7;
unsigned short data8;
} REC;
Также более наглядно будет в этом примере:
Размер должен быть 7 байт!!
Код:
struct _REC
{
unsigned short data1;
unsigned short data2;
unsigned short data3;
bool data4;
bool data5;
bool data6;
bool data7;
bool data8;
} REC;
Последний раз редактировалось slesh; 22.06.2009 в 10:02..
|
|
|

22.06.2009, 10:05
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
P.S. Существуют 2 решения, оба сводятся к одному и томуже, но реализуются соверщенно по разному
|
|
|

22.06.2009, 10:13
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
Сообщение от slesh
Практически правильно, но есть способо без изменения позиции переменных
Использовать вместо структуры - объединения (union)?
|
|
|

22.06.2009, 10:17
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Нет union делает другое
|
|
|

22.06.2009, 10:20
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
А вот еще одно задание довольно интерестное, если сразу задуматься, то быстро можно решить.
ЗАДАЧА: необходимо откомпилить консольную прожку. Я тестил на VC++ 2008
ПРИМЕЧАНИЯ:
1) в коде нельзя ничего удалять!!
2) нельзя подключать новые хидеры!!
Код:
#include "stdio.h"
void _stdcall Sleep(unsigned long dwMilliseconds);
int main(int argc, char* argv[])
{
printf("START PAUSE");
Sleep(2000);
printf("STOP PAUSE");
return 0;
}
ПОДСКАЗКА: решение требует дописания одной строки.
|
|
|

22.06.2009, 10:29
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
вот вам моя задачка. есть класс с перегруженным оператором <. есть вектор, который хранит shared_ptr'ы на объекты этого класса. задача - поюзать std::sort не создавая левые функции, только при помощи stl b boost::bind. второй день не могу понять в чем дело =\ был бы вектор чистых объектов - можно было отсортировать строкой
Код:
std::sort(state_lines.begin(), state_lines.end());
а я уже опустился до дублирования сравнения в статик методе less
Код:
std::sort(state_lines.begin(), state_lines.end(),
boost::bind<bool>(&HorizontalStateLine::less, _1, _2));
все равно не компилится =\
Код:
e:\Program Files\boost\boost_1_38\boost\bind.hpp(282): error C2664: 'bool (const geometry::HorizontalStateLine &,const geometry::HorizontalStateLine &)' : cannot convert parameter 2 from 'std::allocator<_Ty>::value_type' to 'const geometry::HorizontalStateLine &'
with
[
_Ty=geometry::HORIZONTALSTATELINE_PTR
]
e:\Program Files\boost\boost_1_38\boost\bind.hpp(282): error C2664: 'bool (const geometry::HorizontalStateLine &,const geometry::HorizontalStateLine &)' : cannot convert parameter 1 from 'std::allocator<_Ty>::value_type' to 'const geometry::HorizontalStateLine &'
with
[
_Ty=geometry::HORIZONTALSTATELINE_PTR
]
Reason: cannot convert from 'std::allocator<_Ty>::value_type' to 'const geometry::HorizontalStateLine'
with
[
_Ty=geometry::HORIZONTALSTATELINE_PTR
]
No constructor could take the source type, or constructor overload resolution was ambiguous
люто бешено не понимаю почему от простого изменения типа элемента с объекта на указатель творится такая жопа
[ADDED]
сцуко скомпилелось =\\\ пришлось сделать внутри класса такое вот
static bool less (const HORIZONTALSTATELINE_PTR& left, const HORIZONTALSTATELINE_PTR& right);
Последний раз редактировалось Ra$cal; 22.06.2009 в 10:42..
|
|
|

22.06.2009, 10:37
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
Сообщение от slesh
А вот еще одно задание довольно интерестное, если сразу задуматься, то быстро можно решить.
ЗАДАЧА: необходимо откомпилить консольную прожку. Я тестил на VC++ 2008
ПРИМЕЧАНИЯ:
1) в коде нельзя ничего удалять!!
2) нельзя подключать новые хидеры!!
Код:
#include "stdio.h"
void _stdcall Sleep(unsigned long dwMilliseconds);
int main(int argc, char* argv[])
{
printf("START PAUSE");
Sleep(2000);
printf("STOP PAUSE");
return 0;
}
ПОДСКАЗКА: решение требует дописания одной строки.
extern "C" __declspec(dllimport) void __stdcall Sleep(unsigned long dwMilliseconds);
|
|
|

22.06.2009, 10:41
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Ну и вот еще одна задачка от меня, если заюзать поиск то можно быстро решить её.
ЗАДАЧА: существует програмка
Код:
#include "stdio.h"
#include "windows.h"
int main(int argc, char* argv[])
{
printf("SRART\n");
__asm
{
hlt
}
return 0;
}
При выполненни вылезит ошибка из-за того что команда hlt является привелегированной и недоступной и пользопательноского режима.
Необходи обработать это исключение и выдать на экран сообщение об ошибке и завершить работу программы.
И Главное - решение не долно использовать конструкцию try except и должно иметь глобальные характер. т.е. даже если это исключение появится в отдельном потоке, то действия программы должны быть такимиже.
P.S. Решение требует примерно 5 строчек кода.
|
|
|

22.06.2009, 11:20
|
|
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме: 3008839
Репутация:
1502
|
|
Сообщение от slesh
Практически правильно, но есть способо без изменения позиции переменных
Его необходимо применить чтобы данная структура стала 7 байт и не потерялся функционал
[code]
Размер должен быть 7 байт!!
Код:
struct _REC
{
unsigned short data1;
unsigned short data2;
unsigned short data3;
struct{
unsigned data4:1;
unsigned data5:1;
unsigned data6:1;
unsigned data7:1;
unsigned data8:1;
} noch_eine_struktur;
} REC;
неявное преобразование типа должно сжевать.
только чушь это всё конечно)
__________________
Bedankt euch dafür bei euch selbst.
H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
|
|
|

22.06.2009, 11:41
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 desTiny всё делает намного проще )
И то что ты показал, то 12 байт вообще )
Последний раз редактировалось slesh; 22.06.2009 в 11:43..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|