Угу, я кстати когда то здесь в форуме кидал код с goddotnet на С#. Помнится даже Павел обещал помочь перевести его на VB.NET, но так по моему и не смог.
хр. флуд разводить... вобщем так, если желаешь вынести критический участок на асьме, то в dll'ку его и функцию на экспорт... другого более-менее приличного решения нет и .
Я понимаю, что очень сложно осознавать свои ошибки, но согласись - красный свет тут очччень за одно место притянут.
Вообще-то этот пример был придуман до того, как я запостил, на случай, если ты вдруг не поймешь, почему "нельзя". В качестве подобных примеров из области ПО приведу "нельзя использовать 2 антивируса вместе", "нельзя не патчить систему в сети", "нельзя на фишинговых сайтах писать свои данные", "нельзя сообщать админу свой пароль" не в смысле невозможности этого действия, а в смысле крайней его нежелательности. Хоть теперь-то понятно?
Это непринципиально.
Это принципиально. В Си возможны ассемблерные вставки, в них ты можешь использовать метки, имена переменной программы, циклы. В машинном коде тебе адреса переменных приходится передавать, об адресах остального - вычислять или надеяться, что они не изменятся.
Меня просто не всегда устаивает то как НЕТ ассемблит некоторые участки. К сожалению я сейчас не найду у себя этот участок, но была даже такая ерунда: цикл проходит по большому массиву байтов, внутри формула преобразования. В ней очевидно нет ничего запутанного или сложного, но скорость всего цикла просто ужасная! Потом я одно действие (Всего одно и абсолютно без всяких изменений в смысле или принципе выполнения операции!) перенес в отдельную строку после чего скорость выросла в десятки раз!
Найди, пожалуйста, этот код, весьма интересно на него взглянуть (что-то в этом роде и ожидалось от MSILа, придуманного на коленке, в отличие от машинного кода x86, разрабатываемого ведущими инженерами Intel не одно десятилетие)
unmanage-код (в C# или C++).
Павел, напиши мне на мыло (или дай линк), как писать на C# в unmanaged-коде
Начет бизнес-логики, скорее наоборот, на C++ на порядок сложнее
написать масштабное корпоративное приложение, чем на .NET.
А почему наоборот-то? Я примерно это и сказал, только совсем не на порядок. Просто C# из-за большого количества syntactic sugar позволяет процентов на 10-100% быстрее написать программу, не требующую разработки алгоритмов.
не там немного посложнее было
Касперски использовал CreateThread вместо CallWindowProc
а ты действительно уверен что сможешь реализовать аналог своего VB.NET кода на ассемблере. Для этого нужно хорошо знать в первую очередь ассемблер, а во вторую архитектуру платформы .NET. Причём обязательно знание и того и другого. Если там может быть какие нибудь простые арифметические операции, так компилятор вполне и сам справится. Остальное скорее всего очень сложно реализуется (например ты знаешь как устроены хотя бы строки в .NET?). Остаются только двоичные преобразования
С ассемблером разберусь, а что непонятно в .NET спрошу у вас.
Найди, пожалуйста, этот код, весьма интересно на него взглянуть (что-то в этом роде и ожидалось от MSILа, придуманного на коленке, в отличие от машинного кода x86, разрабатываемого ведущими инженерами Intel не одно десятилетие