Хранить контрольную сумму файла не в самом ехе файле, а в другой библиотеке. Конрольную сумму библиотеки в другой библиотеке. И так далее. И проверку делать не сразу при запуске программы, а через некоторое время. Чем больше времени от запуска до срабатывания произойдёт - тем лучше. И проверять не все конрольные суммы разом. В разных местах вызовы проверки сумм из разных библиотек выполнять. И это должна быть не одна и та же функция, а для каждой проверки отдельная фукнция, чтобы каждую отдельно взламывать пришлось. Даже одну и ту же проверку можно делать не каждый раз, а с какой-то вероятностью или только после нескольких включений программы, чтобы радостный хакер опубликовал недоломанную сборку. Ну и т.д и т.п.
Но это уже сайт «не соответствует» студии, а не живая MSVC не соответствует сайту.
Да, мне стоило сразу уточнить, что в MSVC всё по умолчанию, включая компилятор и собирался проект через IDE, а не в консольном режиме. И стандарным компилятором, ведь ничего же не мешает любой компилятор к IDE поключить.
Разобрался, почему студия не компилирует. По умолчанию включена опция SDL check. Видимо на сайте этаоция выключена, поэтому появляется предупреждеие, которое никто не читает. Если SDL check включено, то это предупреждение пропустить не получится. Так что, по умолчанию, MSVC пытается не дать отстрелить ногу :)
в последней версии MSVC создал консольный х86 проект, ничего в настройках не менял, скопировал верхний пример и попытался скомпилировать. Полный код и текст ошибки в первом комментарии с статье.
Так то все знают, что у студии своё понимание стандарта и кое что они делают не очень по стандарту… Но тут же речь не о соответствии стандарту, а о проверке того, как это компилируется в студии. Очевидно, что реальная MSVC более достоверна, чем её «эмуляция» на сайте. Интересно, что приведённые мной онлайн-компиляторы этот пример скомпилировали и выполнили, а студия выдаёт ошибку. Я в дебаге компилировал, разумеется.
Сразу хочу усомниться в «полезности» этого онайн-компилятора, раз результат компиляции отличается от реальной студии. Для тестирования перенсоимости кода это сайт явно не походит.
> Для того что бы создать 1 готовый плот, например, сейчас 10 плотов иметь у себя и майнить ими, то вероятность получения награды, при текущей сети, это 9 месяцев, то есть это совсем слабо.
Получается это для 1ТБ, да. Т.е. в 10 «потоков» работая. А на одном 100 гигабайтном файле будет 9*5 месяцев, до награды.
А давай спрашивать это не у меня, а у автора статьи. Если вся статья выдуманный бред, то правильный вопрос: «Что ЭТО делает на Хабре?» и «Хабр уже не торт».
Чувак, ты жалуешься на ЭТО на Хабре с ровно таким же дизайном...
Хранить контрольную сумму файла не в самом ехе файле, а в другой библиотеке. Конрольную сумму библиотеки в другой библиотеке. И так далее. И проверку делать не сразу при запуске программы, а через некоторое время. Чем больше времени от запуска до срабатывания произойдёт - тем лучше. И проверять не все конрольные суммы разом. В разных местах вызовы проверки сумм из разных библиотек выполнять. И это должна быть не одна и та же функция, а для каждой проверки отдельная фукнция, чтобы каждую отдельно взламывать пришлось. Даже одну и ту же проверку можно делать не каждый раз, а с какой-то вероятностью или только после нескольких включений программы, чтобы радостный хакер опубликовал недоломанную сборку. Ну и т.д и т.п.
Да, мне стоило сразу уточнить, что в MSVC всё по умолчанию, включая компилятор и собирался проект через IDE, а не в консольном режиме. И стандарным компилятором, ведь ничего же не мешает любой компилятор к IDE поключить.
Так то все знают, что у студии своё понимание стандарта и кое что они делают не очень по стандарту… Но тут же речь не о соответствии стандарту, а о проверке того, как это компилируется в студии. Очевидно, что реальная MSVC более достоверна, чем её «эмуляция» на сайте. Интересно, что приведённые мной онлайн-компиляторы этот пример скомпилировали и выполнили, а студия выдаёт ошибку. Я в дебаге компилировал, разумеется.
www.programiz.com/cpp-programming/online-compiler
cpp.sh
взял из выдачи гугла первые три онлайн-компилятора, они тоже "-4" возвращают.
Если не быть изобретательным программистом, то такой код просто не компилируется:
Error C4308 negative integral constant converted to unsigned type
Получается это для 1ТБ, да. Т.е. в 10 «потоков» работая. А на одном 100 гигабайтном файле будет 9*5 месяцев, до награды.