ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 22.06.2009, 09:54
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

Практически правильно, но есть способо без изменения позиции переменных

Его необходимо применить чтобы данная структура стала 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..
 

  #12  
Старый 22.06.2009, 10:05
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

P.S. Существуют 2 решения, оба сводятся к одному и томуже, но реализуются соверщенно по разному
 

  #13  
Старый 22.06.2009, 10:13
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

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

Цитата:
Сообщение от slesh  
Практически правильно, но есть способо без изменения позиции переменных
Использовать вместо структуры - объединения (union)?
 

  #14  
Старый 22.06.2009, 10:17
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

Нет union делает другое
 

  #15  
Старый 22.06.2009, 10:20
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

А вот еще одно задание довольно интерестное, если сразу задуматься, то быстро можно решить.

ЗАДАЧА: необходимо откомпилить консольную прожку. Я тестил на 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;
}
ПОДСКАЗКА: решение требует дописания одной строки.
 

  #16  
Старый 22.06.2009, 10:29
Ra$cal
Постоянный
Регистрация: 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..
 

  #17  
Старый 22.06.2009, 10:37
FireFenix
Постоянный
Регистрация: 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);
 

  #18  
Старый 22.06.2009, 10:41
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

Ну и вот еще одна задачка от меня, если заюзать поиск то можно быстро решить её.
ЗАДАЧА: существует програмка
Код:
#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 строчек кода.
 

  #19  
Старый 22.06.2009, 11:20
desTiny
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
 

  #20  
Старый 22.06.2009, 11:41
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

2 desTiny всё делает намного проще )
И то что ты показал, то 12 байт вообще )

Последний раз редактировалось slesh; 22.06.2009 в 11:43..
 
 





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


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




ANTICHAT.XYZ