Обсуждение Программирование на C/C++

Предложение: нормальный протектор, а то мне вот чет надо, а нигде нет версии, которую бы не вскрыли, практически сразу после ее выхода. А тут мощный и малоизвестный.
Протектор какого характера? Который будет видоизменять экзешники для затруднения реверсинга? Или вы про какой-то другой?
 
Точно. Навесной. Типа SoftwarePassport Armadillo, EXECryptor, StarForce и др. http://www.xakep.ru/magazine/xs/057/088/1.asp
Ну здесь надо не программировать, а думать над алгоритмом защиты...
И один фиг сломают=))) Если уж каспера ломают, который сам всех ломает=)))
Хотя... У меня есть одна идейка, как можно реализвать всё это дело...
 

AlexDev

Ословед
Алекс(Я предположил, что Вас по имени именно так=))) Не спрашивайте почему=)))), а давайте че-нить интересное порешаем?
А то у меня практики именно в С++ в последнее время не было совсем, начинаю терять тонус=)
Че-нить типа снифера под винду, или руткита=)... А то я на работе исключительно на ПХП, а он, как сами знаете, для детей...

З.Ы. Или идейку подкиньте, чего бы такого интересненького-полезного написать...
З.З.Ы. Программу для работы с БД не предлагать...

Идея не плохая, надо подумать ) (У самого на работе Delphi, который бесит неимоверно :) )
 

JC Denton

Ословед
Производительность увеличивается, да и стек не засоряется=)
Неужто выделение памяти в куче происходит быстрее, чем на стеке? Очень сомневаюсь. Особенно невыгодно выделять память под маленькие объекты в куче - при этом страдает не только производительность, но и памяти больше тратится - отчего и пишутся специальные аллокаторы. Ссылки - это не "тупиковый" путь, они вполне используемы, когда время жизни параметра функции дольше, чем сама функция, а также для продления жизни временного объекта (const-ссылки). Пока не пришли перемещающие конструкторы C++0x это важно.
 
Неужто выделение памяти в куче происходит быстрее, чем на стеке? Очень сомневаюсь.
Да, но стек ограничен=)
Особенно невыгодно выделять память под маленькие объекты в куче - при этом страдает не только производительность, но и памяти больше тратится - отчего и пишутся специальные аллокаторы.
0_0 Как это памяти больше тратится? То есть если мне надо 200Kb памяти, то в стеке выделится 200, а в куче - 300??? =)))
Ссылки - это не "тупиковый" путь, они вполне используемы, когда время жизни параметра функции дольше, чем сама функция, а также для продления жизни временного объекта (const-ссылки). Пока не пришли перемещающие конструкторы C++0x это важно.
Давайте разберем такую ситуацию....
Функция выделяет в куче область памяти и кладет туда информацию... Какого вида - не известно... Но нам эту информацию надо получить...
С указателями всё просто, надо всего-лишь передать указатель на указатель, то есть:
PHP:
function some(void **param)
{
    void *val = HeapAlloc(bla bla bla);
    *param = val;
}
LPWSTR string;
some((void **)&string);
Как сие реализовать через ссылки?
 

JC Denton

Ословед
0_0 Как это памяти больше тратится? То есть если мне надо 200Kb памяти, то в стеке выделится 200, а в куче - 300??? =)))
не именно такие числа, но да. Причина - для учета выделяемой в куче памяти ее выделяют блоками, с округлением до кратного размеру блока объема, из-за этого используются аллокаторы малых объектов. В стеке вполне можно следить за выделенной памятью до байта, так как все, что для этого нужно сделать - вычесть число из указателя вершины стека, а потом прибавить.

Давайте разберем такую ситуацию....
Функция выделяет в куче область памяти и кладет туда информацию... Какого вида - не известно... Но нам эту информацию надо получить...
С указателями всё просто, надо всего-лишь передать указатель на указатель, то есть:
PHP:
function some(void **param)
{
    void *val = HeapAlloc(bla bla bla);
    *param = val;
}
LPWSTR string;
some((void **)&string);
Как сие реализовать через ссылки?

Довольно странный пример, извините ;) А как же безопасность типов? Все-таки С++ - строго и статически типизированный язык, делая такие преобразования мы эту безопасность и помощь со стороны компилятора теряем. Опять же я не говорил о том, что ссылки всюду и везде применимы (что Вы пытаетесь мне вменять, предъявляя один контрпример), я всего лишь говорил, что есть случаи, где они применимы, а значит, нельзя сказать, что "ссылки - это тупиковый путь". На мой взгляд вы ошиблись квантором ;)
 
Ну, ваша позиция ясна=)
Но:
Довольно странный пример, извините ;) А как же безопасность типов?
На этом примере работает ВСЯ технология Com, и как следствие DirectX... Так что ничего странного... Всеми любимые проигрыватели видео/аудио файлов работают на технологии DirectShow... А технология DirectShow работает по технологии КОМ... Так что... Приведенный мной "довольно странный" пример используется повсеместно
 

JC Denton

Ословед
Ну, ваша позиция ясна=)
Но:

На этом примере работает ВСЯ технология Com, и как следствие DirectX... Так что ничего странного... Всеми любимые проигрыватели видео/аудио файлов работают на технологии DirectShow... А технология DirectShow работает по технологии КОМ... Так что... Приведенный мной "довольно странный" пример используется повсеместно

PHP:
int a = 3;
int b = 2;
int c = a + b;
операция "+" из моего примера используется повсюду, на ней построено подавляющее большинство современных программ. Мое предложение - заменить всюду "-" на "+". Ведь "+" используется ВЕЗДЕ, значит, применимости "-" нет никакой.
Ваше предложение из этой оперы. :)

Моя "позиция" проста. Всему свое место. С++ - мультипарадигменный язык. Если Вы не видите применимости какой-то его состовляющей, Вы скорее всего плохо искали, но это Ваше дело - на С++ можно писать очень по-разному, и каждый программист по сути пишут по-своему. Есть поговорка: "Каждый программист на С++ использует 30% возможностей языка. Проблема в том, что у каждого это свои 30%".
 

RedkiY

Ословед
Награды
4
Здрасте!Ток начал знакомиться с данным языком программирования!И хотелось бы знать расшифровку некоторых команд, помогите кто чем может плиз!
#include "stdafx.h"
#include <stdlib.h>
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[])
printf
scanf(" ")
return 0
void main()
getch()
system("CLS")
p.s.Заранее спасибо!
 
Здрасте!Ток начал знакомиться с данным языком программирования!И хотелось бы знать расшифровку некоторых команд, помогите кто чем может плиз!
#include "stdafx.h"
#include <stdlib.h>
#include "conio.h"
int _tmain(int argc, _TCHAR* argv[])
printf
scanf(" ")
return 0
void main()
getch()
system("CLS")
p.s.Заранее спасибо!
А воспользоваться интернетом, не? В Студию (а вы именно ей пользуетесь, насколько я вижу) встроена неплохая справка, плюс все есть на MSDN. Просто если вы не можете найти даже такую банальную информацию, как значение директив #include, то делать в программировании вам нечего, кроме шуток.
 

RedkiY

Ословед
Награды
4
А воспользоваться интернетом, не? В Студию (а вы именно ей пользуетесь, насколько я вижу) встроена неплохая справка, плюс все есть на MSDN. Просто если вы не можете найти даже такую банальную информацию, как значение директив #include, то делать в программировании вам нечего, кроме шуток.
Ну во-первых, не обладаю безлимитным интернет, так что ищю только по большой необходимости.Во-вторых только начал знакомиться с данным языком.И в-третьих наверное не вам судить где мне и что делать.Прост думал тут есть знающие люди готовые помочь...а оказывается...
 

    Just Talk

    очки: -19
    Хамло

JIECHuK

Ословед
Ну во-первых, не обладаю безлимитным интернет, так что ищю только по большой необходимости.Во-вторых только начал знакомиться с данным языком.И в-третьих наверное не вам судить где мне и что делать.Прост думал тут есть знающие люди готовые помочь...а оказывается...

в осле полно книжек-самоучителей по Си, в том числе ссылки есть в первом посте...
 

SunnyMan

Namynnuz
Ну во-первых, не обладаю безлимитным интернет, так что ищю только по большой необходимости.Во-вторых только начал знакомиться с данным языком.И в-третьих наверное не вам судить где мне и что делать.Прост думал тут есть знающие люди готовые помочь...а оказывается...
Подобного рода помощь является преподовательской\репетиторской деятельностью. А за нее принято платить.

Лучше всего - почитать создателя С++, Страуструпа. Тогда у вас будут базовые знания по бесплатформенному С++. Если потом надумаете писать что-то под винду - придется курить MSDN, обжигаться и курить снова. Это мне бородатые дяди страшилки рассказывали :)
Бьярн Страуструп - Язык программирования C++ (2 издание).pdf

2Just Talk а мне что-то подсказывает, что это C++ Builder :) (кстати, штука жутко неудобная :()
 
2Just Talk а мне что-то подсказывает, что это C++ Builder :) (кстати, штука жутко неудобная :()
А хз, просто stdafx.h - единственное, что я запомнил из студии. Правда пересев на связку NetBeans + GCC понял, что такой прекомпилированный заголовок нужен только тормозному мелкософтовскому компилеру, GCC и без него собирает вполне быстро. :D

А с наследием Borland приходилось сталкиваться, да. Как раз те самые "блекджек и шлюхи" Бендера в чистом виде.
 

    RedkiY

    очки: -7
    Взаимно
Подскажите какой код скрыт под pow???
меня интересует как же происходит вычисление pow (x , 1/y)!
 

HD Radio

HDR | LOUNGE & CHILL [AAC-LC 192 kbps]
  • Сверху