Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];

Вниз

.Net Compact Framework   Найти похожие ветки 

 
Kerk ©   (2009-04-12 16:14) [0]

Какое бесплатное средство умеет компилить под сабж?


 
Palladin ©   (2009-04-12 16:16) [1]

cs.exe


 
Kerk ©   (2009-04-12 16:28) [2]

А чуть подробнее?
Я могу в Microsoft Visual C# 2008 Express написать обычный дотнетный проект и потом его откомилировать отдельно под компакт?


 
Palladin ©   (2009-04-12 16:33) [3]

cs.exe - компилятор c#, он - бесплатен.


> написать обычный дотнетный проект и потом его откомилировать
> отдельно под компакт?

после обработки напильником до совместимости с КФ? почему бы и нет.


 
Kerk ©   (2009-04-12 16:37) [4]

Ок, вариант
А чтоб без обработок напильником - совсем никак? :)


 
Palladin ©   (2009-04-12 16:51) [5]


> А чтоб без обработок напильником

Это разные пространства имен. Разные среды исполнения.


 
Kerk ©   (2009-04-12 16:54) [6]

Я не конкретно про C# Express сейчас, я в общем про любые средства разработки.


 
Palladin ©   (2009-04-12 17:11) [7]


> Kerk ©   (12.04.09 16:54) [6]

А я про то, что написанное под Windows.Forms, нужно портировать на CF, не помню как там пространство называется. Консольные  то везде пойдут :)


 
Vetal   (2009-04-12 17:21) [8]

Ставишь CF, SharpDevelop и компилишь )


 
oxffff ©   (2009-04-12 17:37) [9]

notepad + ILASM


 
Sergey Masloff   (2009-04-12 17:47) [10]

oxffff ©   (12.04.09 17:37) [9]
>notepad + ILASM
забыл окончание формулы
notepad + ILASM = ДУРДОМ


 
oxffff ©   (2009-04-12 23:29) [11]


> Sergey Masloff   (12.04.09 17:47) [10]
> oxffff ©   (12.04.09 17:37) [9]
> >notepad + ILASM
> забыл окончание формулы
> notepad + ILASM = ДУРДОМ


По себе судишь?


 
Sergey Masloff   (2009-04-13 10:16) [12]

oxffff ©   (12.04.09 23:29) [11]
>По себе судишь?
 Извини, по тебе. Могу ошибаться конечно.
Примеры используемых в боевых условиях программ с твоим авторством и написаных в связкуе (notepad + ILASM)  в студию.
 Я свою уже года три назад демонстрировал кое-кому из формумчан. Свидетелей привлечь можно. Используется до сих пор в известной компании для автоматизации деятельности агентов. В notepad наверное до сих пор бы писал ;-)))


 
oxffff ©   (2009-04-13 10:35) [13]


> Sergey Masloff   (13.04.09 10:16) [12]


Примеры програм тебе ни о чем не скажут. Все для собственно использования, премущественно для изучения самого IL и
процесса верификации.
Чтобы проверить твои знания.
Свидетелей привлекать не нужно. Просто ответь на вопросы

Для чего нужен префикс constrained?
И что такое controlled-mutability managed pointer и для чего он нужен?


 
Sergey Masloff   (2009-04-13 10:42) [14]

Ну вобщем мой диагноз верен...
увы...


 
Kerk ©   (2009-04-13 12:37) [15]

А то, что FPC умеет компилить под WinCE - это не то?


 
Palladin ©   (2009-04-13 12:38) [16]


> Kerk ©   (13.04.09 12:37) [15]

нет конечно.


 
oxffff ©   (2009-04-13 13:03) [17]


> Sergey Masloff   (13.04.09 10:42) [14]
> Ну вобщем мой диагноз верен...
> увы...


Если для тебя есть непреодолимая разница между

ldstr "Enter a number"
call void [mscorlib]System.Console::WriteLine(string)
и
System.Console::WriteLine("Enter a number")

то прошу принять мои соболезнования(хотя тебе они не помогут).


 
Kerk ©   (2009-04-13 13:05) [18]


> oxffff ©   (13.04.09 13:03) [17]

Главный вопрос - а нафига? Вместо Delphi тоже можно на ассемблере писать, только вот зачем?


 
oxffff ©   (2009-04-13 13:06) [19]


> Sergey Masloff   (13.04.09 10:42) [14]
> Ну вобщем мой диагноз верен...
> увы...


И если для тебя этот код

assembly extern mscorlib { auto }
.assembly OddOrEven { }
.module OddOrEven.exe
//----------- Class declaration
.namespace Odd.or {
.class public auto ansi Even extends [mscorlib]System.Object {
//----------- Field declaration
.field public static int32 val
//----------- Method declaration
.method public static void check( ) cil managed {
.entrypoint
.locals init (int32 Retval)

существенно отличается от С#, то мне нечего тебе сказать, поскольку .....

P.S. Я жду твои ответы из [13].


 
oxffff ©   (2009-04-13 13:09) [20]


> Kerk ©   (13.04.09 13:05) [18]


Да собственно язык насколько прост, что принципиальной разницы не заметишь.
+есть возможности, которых например напрямую нет в C#.
Например pinned object.
Насколько я знаю ты парень далеко далеко неглупый. :)
Поэтому считаю что тебе не составит труда слегка адаптироваться.


 
Игорь Шевченко ©   (2009-04-13 13:24) [21]

oxffff ©   (13.04.09 13:03) [17]

Может ты завяжешь наезжать на собеседников ?


 
Sergey Masloff   (2009-04-13 14:53) [22]

oxffff ©   (13.04.09 13:06) [19]
код отличается существенно. Сопровождать такой неудобно. Объем для чтения растет. Преимуществ нет

я очень много лет не пишу программ System.Console::WriteLine("Enter a number"), а для всех остальных отличия будут весьма значимыми. Кроме того, также очень много лет я не пытаюсь заюзать все возможности средства только из любви к искусству. Поэтому это спор слепого с глухим, продолжать его я не намерен.

Повторю - у меня на выходе реальный продукт который используем множество людей для зарабатывания денег. У тебя круглый конь в вакууме. Пока так, насколько я понял

>P.S. Я жду твои ответы из [13].
Ждать придется долго, извини уж. CIL Instruction Set прочесть не проблема, еще можно читать энциклопедии методом последовательного доступа, оно конечно интересно но времени жалко. Я СЛУЧАЙНО ответы знаю, но если бы не знал нашел бы за 10 минут, так что знание наизусть instruction set-ов считаю бесполезной тратой ограниченых ресурсов.

Советую еще раз спросить себя - а оно нужно? Чтобы потом не было больно за бесцельно, так сказать...


 
Игорь Шевченко ©   (2009-04-13 15:27) [23]

Sergey Masloff   (13.04.09 14:53) [22]

А что, коды команд ассемблера x86 ты тоже наизусть не знаешь ?
А зачем живешь тогда ? :)


 
oxffff ©   (2009-04-13 17:24) [24]


> Игорь Шевченко ©   (13.04.09 13:24) [21]
> oxffff ©   (13.04.09 13:03) [17]
>
> Может ты завяжешь наезжать на собеседников ?


Уважаемый Игорь Шевченко.
Хотелось бы что бы вы не только обращали внимание на мои посты, но также и на посты моего опонента. например на посты
Sergey Masloff   [10],[14].
Опонент пытается взять на себя слишком много в том числе слезает в мои посты со своими личными комментариями.


 
oxffff ©   (2009-04-13 17:39) [25]

Удалено модератором


 
oxffff ©   (2009-04-13 18:01) [26]

Удалено модератором
Примечание: Offtopic


 
boa_kaa ©   (2009-04-13 18:04) [27]

Удалено модератором


 
Городской Шаман   (2009-04-13 18:04) [28]


> Kerk ©   (12.04.09 16:14)
>
> Какое бесплатное средство умеет компилить под сабж?


А не проще ли переписать на жабе? Там даже в шаровом NetBeans есть возможность визуального проектирования интерфейса на JavaME.


 
oxffff ©   (2009-04-13 18:07) [29]


> Sergey Masloff   (13.04.09 14:53) [22]


Вообщем, если ты что то пишешь про кого то, то не забывай дабавлять IMHO.
Что касаемо ответа на мои вопросы, то ответ CIL не дает.
Поэтому ты лукавишь, что знаеш ответы.
Однако я могу привести тебе конкретно пример откуда появилось понятие

controlled mutability pointer

Problem 2: Boxing breaks encapsulation (fixed in the .NET 2.0)
Encapsulation is a fundamental concept in object-oriented programming. It
“ensures that users of an object cannot change the internal state of the object
in unexpected ways” (Wikipedia). A number of standard .NET types encapsulate
their state immutably; String is an example that is heap-allocated, and
DateTime and Int32 are so-called value types that also prohibit mutation.
Values with such types can be boxed to obtain a heap-allocated version; as far
as C] is concerned, the boxed value behaves in the same way as the unboxed
one, so properties such as immutability are preserved. Here is some code that
makes use of boxing:
3
// A dictionary keyed on strings
class StringDict {
private Hashtable dict;
public object Get(string s) { return dict[s]; }
internal void Set(string s, object o) { ... }
}
class HR {
public static StringDict salaries;
...salaries.Put("akenn", (object) ...)
}
// In another component, far away...
int mysalary = (int) HR.salaries.Get("akenn");
The Set method is internal and so cannot be invoked by client components;
so it would seem that salaries can be updated only from within this component.
Unfortunately, the unbox instruction in IL, used to compile the (int)
cast above, produces an ‘interior’ pointer to an object that can be used to
replace the boxed value in place. And so boxed data, such as the salary record
above, can be mutated unexpectedly:
ldsfld StringDict HR::salaries ldstr "akenn"
call object StringDict::Get(string)
unbox System.Int32 // Obtain interior pointer
ldc.i4 10000000 // That’ll do nicely
stind.i4 // Replace my salary
Failure of full abstraction can be demonstrated by the following equivalence
which is broken by compilation to IL:
public int g(object o) { int i = (int) o; f(o); return i; }
 public int g(object o) { int i = (int) o; f(o); return (int) o; }

Problem 2: The mutable boxed value type problem is solved by changing
the typing rule for the unbox instruction to return a special kind of interior
pointer – called a “controlled mutability” pointer in the IL specification [7] –
that prohibits update-in-place.


 
Kerk ©   (2009-04-13 20:53) [30]


> Городской Шаман   (13.04.09 18:04) [28]

Жабу не хочется по религиозным соображениям. Не приглянулась она мне :)


 
Sergey Masloff   (2009-04-13 21:04) [31]

Kerk ©   (13.04.09 20:53) [30]
 Роман, а почему не рассмотреть все же лицензионную студию 2008? В ней очень удобные эмуляторы для отладки, не знаю есть ли это в бесплатной версии.
 Еще есть SharpDevelop наверное его можно подкрутить чтобы и для Compact использовать. Попробую узнать завтра


 
Городской Шаман   (2009-04-13 21:18) [32]


> Kerk ©   (13.04.09 20:53) [30]
>
>
> > Городской Шаман   (13.04.09 18:04) [28]
>
> Жабу не хочется по религиозным соображениям. Не приглянулась
> она мне :)


Зря. Для мобильных устройств лучше пока ничего нет. Она для них и разрабатывалась и проблем будет намного меньше.

А вот с .NET без проблем под мобилити ничего серьезного и не создашь.


 
b z   (2009-04-13 21:24) [33]


> Городской Шаман   (13.04.09 21:18) [32]
> А вот с .NET
а почему-ж не пту? ;)


 
Игорь Шевченко ©   (2009-04-13 21:43) [34]


> А вот с .NET без проблем под мобилити ничего серьезного
> и не создашь.


пробовал ?


 
DVM ©   (2009-04-13 21:58) [35]


> Для мобильных устройств лучше пока ничего нет

Для мобильных устройств (Windows Mobile) нет ничего лучше C/C++.
По важнейшим критериям (компактность программ, скорость работы) он не имеет там равных.


 
tesseract ©   (2009-04-14 11:22) [36]


> Для мобильных устройств (Windows Mobile) нет ничего лучше
> C/C++.


Угу, для нормальной работы приходится вспоминать MFC и юзать Embeded Visual Studio. Которая последний раз обновлялась до выхода XP ещё.


 
Real ©   (2009-04-14 13:32) [37]

oxffff, ну ты отжигаешь :) Меня тоже дико заинтересовал вопрос "а нафига???" Чтоб перед малолетками понтоваться? Цитируя справочники по CIL или фикся на лету софт под .NET с помощью Notepad? Везет же некоторым, столько свободного времени имеют, что даже ерундой могут заниматься :)

По сабжу, у меня #develop версии 3.0 (это не самая свежая наверняка) открываю пункт меню Project, закладка Compiling, блок Output, список Target FrameWork. В этом списке вижу 5 поддерживаемых типа, из которых два: Compact FrameWork версий 2.0 и 3.5

Не проверял, ну думаю должно все работать без проблем.

P.S. #develop вообще вещь, просто не могу не удержаться похвалить разработчиков! сделали офигенную среду, причем бесплатную и с открытым исходником


 
oxffff ©   (2009-04-14 14:06) [38]


> Real ©   (14.04.09 13:32) [37]
> oxffff, ну ты отжигаешь :) Меня тоже дико заинтересовал
> вопрос "а нафига???" Чтоб перед малолетками понтоваться?
>  Цитируя справочники по CIL или фикся на лету софт под .
> NET с помощью Notepad? Везет же некоторым, столько свободного
> времени имеют, что даже ерундой могут заниматься :)


Все гораздо проще.
Подобными вопросами(и многими многими другими) я занимаюсь в свободное время для повышения собственной квалификации.

Я стараюсь писать программы на работе сразу с заделом на будущее с высокой стенью универсализации, чтобы при новом требовании от заказчика софт настраивался, а не программировался.
Поэтому при таком подходе на начальном этапе безусловно тратиться больше времени на этапе разработки (поскольку стараешься думать на два три шага вперед, чутье славо богу не подводило), но это себя оправдывает.
Дальше просто настраиваешь за меньшее время. А разницу тратишь на собственное самообразование в рабочее время.


 
oxffff ©   (2009-04-14 14:18) [39]


> Real ©   (14.04.09 13:32) [37]
> oxffff, ну ты отжигаешь :) Меня тоже дико заинтересовал
> вопрос "а нафига???" Чтоб перед малолетками понтоваться?
>  Цитируя справочники по CIL или фикся на лету софт под .
> NET с помощью Notepad? Везет же некоторым, столько свободного
> времени имеют, что даже ерундой могут заниматься :)


Что касаемо ерунды. Могу тебя заверить что подавляющее большинство .NET разработчиков понятия не имеют что такое controlled mutability pointer. И почему ввели это понятия. А я бы назвал таких "профессионалов" с
разрешения уважаемого Городской Шаман .ПТУшниками. А попытка противопоставить мегапроекты этими разработчиками(типа мы реальные перцы, но мегасофт пишем, а не тратим время на ерунду самообразование) в отсутствие знаний несерьезно.


 
oxffff ©   (2009-04-14 14:20) [40]

Один из представителей в посте [12]. Я его не просил комментировать свои посты

Посмотри как он описал свои достижения


> Я свою уже года три назад демонстрировал кое-кому из формумчан.
>  Свидетелей привлечь можно. Используется до сих пор в известной
> компании для автоматизации деятельности агентов



Грустно.


 
Игорь Шевченко ©   (2009-04-14 14:31) [41]

Мастер Фу и десять тысяч строк.

 Однажды мастер Фу сказал заезжему программисту: "В одной строке кода shell-сценария больше духа Unix, чем в десяти тысячах строк на языке С!".
 Программист, гордый своими познаниями в Сб ответил: "Может ли быть такое? Ведь С - язык, в котором реализовано само ядро Unix!"
 На это мастер Фу ответил: "Это так. Тем не менее, в одной строке кода shell-сценария больше духа Unix, чем в десяти тысячах строк С!"
 Программист выглядел удрученным. "Но ведь через язык С мы познаем просвещенность патриарха Ричи! Мы уподобляемся человеку с операционной системой и компьютеру, который получает непревзойденную производительность!"
 Мастер фу сказал: "То, что ты говоришь, правда. Однако в одной строке кода shell-сценария больше духа Unix, чем в десяти тысячах строк С!".
 Программист усмехнулся и поднялся, чтобы удалиться. Но мастер Фу кивнул своему ученику Ньюби, который писал строку shell-кода на стоящей рядом белой доске, и сказал: "Господин программист, посмотрите на этот конвейер! На заняла бы его реализация на С десять тысяч строк?"
 Просматривая то, что писал Ньюби, программист что-то бромотал в бороду. В конце концов он согласился, что эта так.
 "И сколько часов потребовалось бы вам для реализации и отладки этой программы на языке С?"
 "Много", - признал заезжий программист. "Но только безумец стал бы тратить столько времени, когда его ждет множество более достойных задач".
"Так кто лучше понимает дух Unix?" - спросил мастер Фу. "Тот, ктопишет десять тысяч строк, или тот, кто сознавая тщетность этих усилий, извлекает пользу не программируя?"

Услышав это, программист достиг просветления.

(с) "Корни без корней: Unix-коаны мастера Фу"


 
Kerk ©   (2009-04-14 15:28) [42]


> Sergey Masloff   (13.04.09 21:04) [31]
> Real ©   (14.04.09 13:32) [37]

Да, я сейчас, пока не поздно, мучительно выбираю между триальной "про" студией и #develop. Сначала я в #develop этот функционал и не разглядел.


 
Городской Шаман   (2009-04-14 15:31) [43]


> tesseract ©   (14.04.09 11:22) [36]
>
>
> > Для мобильных устройств (Windows Mobile) нет ничего лучше
> > C/C++.
>
>
> Угу, для нормальной работы приходится вспоминать MFC и юзать
> Embeded Visual Studio. Которая последний раз обновлялась
> до выхода XP ещё.


Ну зачем же вспоминать эти кошмары MFC, когда есть нормальный WxWidgets, который тоже бесплатный.


 
Городской Шаман   (2009-04-14 15:40) [44]


> Игорь Шевченко ©   (14.04.09 14:31) [41]
>
> Мастер Фу и десять тысяч строк.


Правильно, нужно использовать С++, там одним только template можно такие вещи творить, что 10000 программистов не разберутся.


 
DVM ©   (2009-04-14 16:27) [45]


> tesseract ©   (14.04.09 11:22) [36]
>
>
> > Для мобильных устройств (Windows Mobile) нет ничего лучше
> > C/C++.
>
>
> Угу, для нормальной работы приходится вспоминать MFC и юзать
> Embeded Visual Studio. Которая последний раз обновлялась
> до выхода XP ещё.

Зачем Embeded Visual Studio. Последние версии MS Visual Studio позволяют писать на C++ под Windows Mobile.


 
Real ©   (2009-04-14 16:59) [46]


> Подобными вопросами(и многими многими другими) я занимаюсь
> в свободное время для повышения собственной квалификации

Ну так ради бога, занимайтесь чем угодно в свободное время. Вопрос же был задан - посоветуйте бесплатное средство для РАБОТЫ (реальной, работы) а не "как мне провести свободное время и повысить квалификацию". Вы щас просто элементарно съезжаете ;)


> большинство .NET разработчиков понятия не имеют что такое
> controlled mutability pointer

Вам уже ответили на похожие заявления: пишите тогда на асме. Тогда для ЛЮБОГО расширения функциональности готовой программы, вам будет достаточно какого-нибудь hview. На мой взгляд, ЯВУ должен максимально абстрагироваться от низкоуровневых операций с памятью, предоставляя широкие возможности в рамках ООП. Если я столкнусь с задачей, когда потребуется редактирование CIL-кода - ну так открою справочник и буду разбираться. А какой смысл брать на себя работу компилятора, если это более чем вероятно мне не понадобится никогда? Вы правильно сказали - для общего развития эти знания лишними не будут. Но вы же пытаетесь позиционировать что вообще нужно программировать на CIL, это же просто смешно.


 
oxffff ©   (2009-04-14 19:30) [47]


> Real ©   (14.04.09 16:59) [46]


Ответ очень простой, вы сравните файлы на выходе от .NET и от native delphi. Вы не замечаете существенную разницу в размере?
Поэтому приводимый пример asm x86 это не совсем удачное сравнение.
Идея очень простая, поскольку набор IL команд ограничен. Весь функционал это вызовы методов объектов с нужным функционалом.
Весь .net код, это по большому счету вызовы функций, методов других сборок и native реализаторов. Вызов метода я привел, описание класса я привел. Сопоставимо с кодом на С#. Единственное, что может поставить в тупик начинающего, это реализация типовых конструкций If, for ...(но начинающим естественно не следует). Но в этой ветке далеко не начинающие. Поэтому утвреждение, что программирование на IL - это дурдом по поему глубокому убеждению является некорректным.
Однако я всегда открыт и готов к обсуждению.


 
Real ©   (2009-04-15 02:47) [48]

Что тут обсуждать, ваша точка зрения ясна. Я - мазохизм не люблю, поэтому придерживаюсь обратной точки зрения. Все что может быть автоматизировано средой, все что дает удобство и скорость (в том числе и в обучении) необходимо свалить на плечи машины


 
Eraser ©   (2009-04-15 03:41) [49]

> [47] oxffff ©   (14.04.09 19:30)


> Поэтому утвреждение, что программирование на IL - это дурдом
> по поему глубокому убеждению является некорректным

огорчу, если программирование на ассемблере еще может, в некоторых случаях, себя оправдать даже для win32, то программирование реальных проектов на IL это мазохизм, увы.

надеюсь как переводится Intermediate вы вкурсе?


 
oxffff ©   (2009-04-15 08:50) [50]


> Eraser ©   (15.04.09 03:41) [49]
> > [47] oxffff ©   (14.04.09 19:30)
>
>
> > Поэтому утвреждение, что программирование на IL - это
> дурдом
> > по поему глубокому убеждению является некорректным
>
> огорчу, если программирование на ассемблере еще может, в
> некоторых случаях, себя оправдать даже для win32, то программирование
> реальных проектов на IL это мазохизм, увы.
>


Откуда такие выводы?
Может стоило исследовать для начала  то, что можно на IL asm,
и нельзя на С#?


> надеюсь как переводится Intermediate вы вкурсе


1. Переводится как промежуточный.
2. Переводится в коды целевой платформы с использованием peephole оптимизации. Я надеюсь вам известно, что такое peephole оптимизация.


 
Eraser ©   (2009-04-15 13:35) [51]

> [50] oxffff ©   (15.04.09 08:50)


> Может стоило исследовать для начала  то, что можно на IL
> asm,
> и нельзя на С#?

у IL не интуитивно-понятный синтаксис базовых конструкций и этот язык знает очень мало людей, особенно в совершенстве. каких-то значительных плюсов, по сравнению с тем же C# этот язык не дает. т.е. получается, что IL использовать можно, но в одиночку и под одеялом. для командной разработки - не годится.


 
Real ©   (2009-04-15 13:37) [52]


> Может стоило исследовать для начала  то, что можно на IL
> asm,
> и нельзя на С#?

Примеры в студию, с указанием в каких именно проектах это применялась. Вас уже на раз спросили, где примеры проектов? Потому что понять вас сложно: то вы говорите что IL вам нужен для досуга с пользой, то настаиваете что это единственный правильный язык на котором нужно писать всем. Уж определитесь. И покажите что конкретно вы сделали кроме тестовых примеров целиком на IL?

P.S. Мне иногда думается, что статью "Настоящие мужчины не используюсь Паскаль" надо запрещать как и порно по возрастному признаку. Чтоб поменьше вывернутых мозгов было :)


 
oxffff ©   (2009-04-15 14:25) [53]


> Real ©   (15.04.09 13:37) [52]


Что касаемо примеров проектов.
Могу только ответить, что это сборки от Microsoft.


> Потому что понять вас сложно: то вы говорите что IL вам
> нужен для досуга с пользой,


Да именно так.


>то настаиваете что это единственный
> правильный язык на котором нужно писать всем.


Где я такое сказал?
Я сказал, что синтаксис у IL asm в некоторых моментах сложнее(для начинающих), но не на порядок.
Также сказал, что есть возможности которых нет в С#.

P.S. Может следует ознакомится для начала.

Могу литературу рекомендовать.
Expert .NET 2.0 IL Assembler Serge Lidin.

А то не зная языка начинаете говорить, что это так сложно.
Что ну его ...
Ознакомившись с набором инструкций вам не покажется
он таким уж сложным.

3.1 add – add numeric values 33
3.2 add.ovf.<signed> – add integer values with overflow check 34
3.3 and – bitwise AND 35
3.4 arglist – get argument list 36
3.5 beq.<length> – branch on equal 37
3.6 bge.<length> – branch on greater than or equal to 38
3.7 bge.un.<length> – branch on greater than or equal to, unsigned or unordered 39
3.8 bgt.<length> – branch on greater than 40
3.9 bgt.un.<length> – branch on greater than, unsigned or unordered 41
3.10 ble.<length> – branch on less than or equal to 42
3.11 ble.un.<length> – branch on less than or equal to, unsigned or unordered 43
3.12 blt.<length> – branch on less than 44
3.13 blt.un.<length> – branch on less than, unsigned or unordered 45
3.14 bne.un<length> – branch on not equal or unordered 46
3.15 br.<length> – unconditional branch 47
3.16 break – breakpoint instruction 48
3.17 brfalse.<length> – branch on false, null, or zero 49
3.18 brtrue.<length> – branch on non-false or non-null 50
3.19 call – call a method 51
3.20 calli – indirect method call 53
3.21 ceq – compare equal 54
3.22 cgt – compare greater than 55
3.23 cgt.un – compare greater than, unsigned or unordered 56
3.24 ckfinite – check for a finite real number 57
3.25 clt – compare less than 58
3.26 clt.un – compare less than, unsigned or unordered 59
3.27 conv.<to type> – data conversion 60
3.28 conv.ovf.<to type> – data conversion with overflow detection 61
3.29 conv.ovf.<to type>.un – unsigned data conversion with overflow detection 62
3.30 cpblk – copy data from memory to memory 63
3.31 div – divide values 64
3.32 div.un – divide integer values, unsigned 65
3.33 dup – duplicate the top value of the stack 66
3.34 endfilter – end exception handling filter clause 67
3.35 endfinally – end the finally or fault clause of an exception block 68
3.36 initblk – initialize a block of memory to a value 69
3.37 jmp – jump to method 70
3.38 ldarg.<length> – load argument onto the stack 71
3.39 ldarga.<length> – load an argument address 72
3.40 ldc.<type> – load numeric constant 73
3.41 ldftn – load method pointer 74
3.42 ldind.<type> – load value indirect onto the stack 75
3.43 ldloc – load local variable onto the stack 77
3.44 ldloca.<length> – load local variable address 78
3.45 ldnull – load a null pointer 79
3.46 leave.<length> – exit a protected region of code 80
3.47 localloc – allocate space in the local dynamic memory pool 81
3.48 mul – multiply values 82
3.49 mul.ovf.<type> – multiply integer values with overflow check 83
3.50 neg – negate 84
3.51 nop – no operation 85
3.52 not – bitwise complement 86
3.53 or – bitwise OR 87
3.54 pop – remove the top element of the stack 88
3.55 rem – compute remainder 89
3.56 rem.un – compute integer remainder, unsigned 91
3.57 ret – return from method 92
3.58 shl – shift integer left 93
3.59 shr – shift integer right 94
3.60 shr.un – shift integer right, unsigned 95
3.61 starg.<length> – store a value in an argument slot 96
3.62 stind.<type> – store value indirect from stack 97
3.63 stloc – pop value from stack to local variable 98
3.64 sub – subtract numeric values 99
3.65 sub.ovf.<type> – subtract integer values, checking for overflow 100
3.66 switch – table switch based on value 101
3.67 xor – bitwise XOR 102
4 Object model instructions 103
4.1 box – convert a boxable value to its boxed form 104
4.2 callvirt – call a method associated, at runtime, with an object 105
4.3 castclass – cast an object to a class 106
4.4 cpobj – copy a value from one address to another 107
4.5 initobj – initialize the value at an address 108
4.6 isinst – test if an object is an instance of a class or interface 109
4.7 ldelem – load element from array 110
4.8 ldelem.<type> – load an element of an array 111
4.9 ldelema – load address of an element of an array 113
4.10 ldfld – load field of an object 114
4.11 ldflda – load field address 115
4.12 ldlen – load the length of an array 116
4.13 ldobj – copy a value from an address to the stack 117
4.14 ldsfld – load static field of a class 118
4.15 ldsflda – load static field address 119
4.16 ldstr – load a literal string 120
4.17 ldtoken – load the runtime representation of a metadata token 121
4.18 ldvirtftn – load a virtual method pointer 122
4.19 mkrefany – push a typed reference on the stack 123
4.20 newarr – create a zero-based, one-dimensional array 124
4.21 newobj – create a new object 125
4.22 refanytype – load the type out of a typed reference 126
4.23 refanyval – load the address out of a typed reference 127
4.24 rethrow – rethrow the current exception 128
4.25 sizeof – load the size, in bytes,of a type 129
4.26 stelem – store element to array 130
4.27 stelem.<type> – store an element of an array 131
4.28 stfld – store into a field of an object 132
4.29 stobj – store a value at an address 133
4.30 stsfld – store a static field of a class 134
4.31 throw – throw an exception 135
4.32 unbox – convert boxed value type to its raw form 136
4.33 unbox.any – convert boxed type to value 137


 
Real ©   (2009-04-15 17:15) [54]


> Что касаемо примеров проектов.
> Могу только ответить, что это сборки от Microsoft.

Понятно, показать нечего. Отчасти из-за этого, ваши посты звучат очень голословно и неубидительно, особенно когда вы говорите о простоте, скорости и т.п.


> Где я такое сказал?

oxffff ©   (12.04.09 17:37) [9]

Ваш ответ на вопрос на чем нужно писать. Заметьте, ответ краткий и конкретный. Нет оговорок что это приколько только для досуга, это ваша рекомендация как основное средство (во всяком случая мне кажется что только так это можно понять, раз нет комментариев. И кажется не только мне, ведь именно этот пост и породил дальнейшие разговоры о целесообразности).


> Также сказал, что есть возможности которых нет в С#.

Второй раз прошу, примеры в студию


 
oxffff ©   (2009-04-15 23:40) [55]


> Real ©   (15.04.09 17:15) [54]


Вы требуете от меня объяснить как писать на IL.
Я уже привел примеры кода.
Достаточно внимательно посмотреть этот код.
Чтобы понять что он делает. И в тоже время понять что код на С# будет не на порядок меньше


> Ваш ответ на вопрос на чем нужно писать. Заметьте, ответ
> краткий и конкретный. Нет оговорок что это приколько только
> для досуга, это ваша рекомендация как основное средство
> (во всяком случая мне кажется что только так это можно понять,
>  раз нет комментариев. И кажется не только мне, ведь именно
> этот пост и породил дальнейшие разговоры о целесообразности).
>  


Во дела. Это ваши личные умозаключения. Прошу заметить не мои.
Все гораздо проще.

Был вопрос
Какое бесплатное средство умеет компилить под сабж?
Я дал ответ. На вопрос дан ответ. Поскольку предлаги несколько вариантов. Я дал один из тех, о которых не  сказали.
Теперь уже мой ответ раздули до такого, что мне самому интересно, как так можно.


> Второй раз прошу, примеры в студию


Внимательно мои посты читали?
oxffff ©  [20].
Черным по белому написано. Pinned Модификатор.
Далее у вас будет вопрос: Что это?

Ответ
The pinned modifier is applicable to the method’s local variables only. Its use means that the object referenced by the local variable cannot be relocated by the garbage collector and must stay put throughout the method execution. If a local variable representing an object reference or a managed pointer is “pinned,” it is safe to convert it to an unmanaged pointer and then to dereference this unmanaged pointer, because the unmanaged pointer is guaranteed to
still be valid when it is dereferenced (it is safe in the sense of dereferencing, but it is still unverifiable, as is any usage of an unmanaged pointer)

Если спросите зачем это?
Могу рекомендовать еще раз книгу выше.


 
oxffff ©   (2009-04-15 23:45) [56]


>  И кажется не только мне, ведь именно этот пост и породил
> дальнейшие разговоры о целесообразности


Ну собственно это не моя вина, что люди о которых вы говорите,
додумывают что-то, чего нет. :)


 
oxffff ©   (2009-04-15 23:50) [57]


> Real ©   (15.04.09 17:15)


Поэтому коль выяснилось, что я ни кого не принуждал использовать IL. А ответил, что можно использовать эту связку в качестве бесплатного инструмента.
Поэтому можно продолжить дисскусию о пользе и вреде ILASM в сравнении с другими, но в рамках отдельной ветки.
Поэтому если вам интересно. Заведите отдельную ветку.


 
Real ©   (2009-04-16 01:06) [58]


> Теперь уже мой ответ раздули до такого

Раздуваешь ты, тебя русским по-белому спрашивают - что ты конкретно сделал на IL, ссылки на проект, чтоб можно было оценить если какие-то преимущества или нет.


> Я уже привел примеры кода.
> Достаточно внимательно посмотреть этот код

Что мне твой код? Ты мне по-русски напиши реальную задачу, с которой в каком-то участке нельзя справиться средствами C#. Понятное дело что ЛЮБОЙ язык низкого уровня имеет возможности превосходящие ЯВУ, однако нужны ли они всегда? Я уже сказал что если встанет такая необходимость, то тогда можно будет покопаться в исходнике на IL.


> А ответил, что можно использовать эту связку в качестве
> бесплатного инструмента

Ну это все равно что на вопрос "посоветуйте девайс для сноса небоскреба" отписать "кирка + лом". Ими безусловно можно уничтожить небоскреб, но стоит ли так даже пробовать? Я не говорю что принуждал, но по-моему очевидно, что на вопрос ждут ответа который можно использовать. А то что в принципе можно писать на IL, я думаю итак все прекрасно знают. Об этом пишется в любой книге по .NET, равно как и описывается сам язык чтобы представить "анатомию".


 
Вариант   (2009-04-16 06:33) [59]


> oxffff ©  [20].
> Черным по белому написано. Pinned Модификатор.

Пример не тот. Подобное возможно на C#. Например через GCHandle.  Возможно есть то (не знаю, но думаю скорее всего так), что можно сделать используя  IL ,и что сделать на C# трудно или невозможно. Но если говорить о применении IL для разработки прикладного ПО, то мне понравился пост


> Игорь Шевченко ©   (14.04.09 14:31) [41]


Хотя вполне возможно, что так же можно сказать и о C# или дельфи по отношению к другим инструментам.  В любом случае - выбор инструмента диктуется задачей в первую очередь и потом уже предпочтениями и возможностями исполнителя.


 
oxffff ©   (2009-04-16 10:12) [60]


> Real ©   (16.04.09 01:06) [58]


Ну как говориться каждому свое.
Что касаемо кирки и лома. То для того снести небоскреб, сначала нужно заложить заряды. А чтобы их заложить нужны примитивные инструменты.


 
oxffff ©   (2009-04-16 10:14) [61]


> Вариант   (16.04.09 06:33) [59]
>
> > oxffff ©  [20].
> > Черным по белому написано. Pinned Модификатор.
>
> Пример не тот. Подобное возможно на C#. Например через GCHandle.
>  


Да твоя правда.
GCHandleType может быть Pinned.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.67 MB
Время: 0.009 c
11-1202864756
Jon
2008-02-13 04:05
2009.06.21
Applet and Forms?


2-1241431602
95
2009-05-04 14:06
2009.06.21
Содержимое буфера в поток


15-1239948209
desc
2009-04-17 10:03
2009.06.21
Свой MAP


2-1241610748
dis12345
2009-05-06 15:52
2009.06.21
из какой ячейки вызван DblClick


15-1239374642
Igorek
2009-04-10 18:44
2009.06.21
Многомодульный клиент





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский