Форум: "Прочее";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
Внизмоя плакаю. Бросаем delphi, переходим на С под NET Найти похожие ветки
← →
Vlad Oshin © (2008-06-06 17:58) [0]с С сталкивался только в универе на 2м курсе.
осталась жуткая неприязнь почему-то.
на адаптацию 3 недели.
моя плакаю...
:)
← →
Palladin © (2008-06-06 17:59) [1]с++ ты ввиду имеешь?
← →
Галинка (2008-06-06 18:00) [2]это вы дяденька о чем??? Разве бывает С под пункнет?
← →
Галинка (2008-06-06 18:01) [3]Palladin © (06.06.08 17:59) [1]
а мне показалось тот, который с решеточкой )))
← →
Vlad Oshin © (2008-06-06 18:03) [4]C#
-Машь, пойдешь на сеновал?
-я не Маша!
-Да я не об этом спрашивал!
← →
Vlad Oshin © (2008-06-06 18:03) [5]C#
-Машь, пойдешь на сеновал?
-я не Маша!
-Да я не об этом спрашивал!
← →
Vlad Oshin © (2008-06-06 18:03) [6]C#
-Машь, пойдешь на сеновал?
-я не Маша!
-Да я не об этом спрашивал!
← →
Рамиль © (2008-06-06 18:06) [7]Да нормально все. Никаких сложностей адаптации не должно быть.
← →
pasha_golub © (2008-06-06 18:07) [8]Влад, моя твою жалеет. Уж лучче смерть :)
← →
palva © (2008-06-06 18:24) [9]А интересно, что хорошего прожить всю жизнь с одной и той же женщиной?
← →
Mystic © (2008-06-06 18:29) [10]> А интересно, что хорошего прожить всю жизнь с одной и той
> же женщиной?
После того, как переспишь с другой, своя потом кажется милее, интереснее и дороже ;)
← →
^-k2-^ © (2008-06-06 18:42) [11]гурманы..
← →
@!!ex © (2008-06-06 18:45) [12]> [9] palva © (06.06.08 18:24)
> А интересно, что хорошего прожить всю жизнь с одной и той
> же женщиной?
А что плохого?
← →
oxffff © (2008-06-06 18:52) [13]
> Галинка (06.06.08 18:00) [2]
> это вы дяденька о чем??? Разве бывает С под пункнет?
Бывает Managed C++
For .NET Programming, Visual C++ supports the creation of three distinct types of components and applications: mixed, pure, and verifiable. All three are available through the /clr (Common Language Runtime Compilation) compiler option.
← →
ПостОвый терминатор © (2008-06-06 18:52) [14]Удалено модератором
← →
SergeyIT © (2008-06-06 18:53) [15]> на адаптацию 3 недели
3 * 7 = 21
Берем книгу "С под НЕТ за 21 день" и нет проблем.
(Помню перевели меня на другой проект - на php - и даже не спросили, а я этот язык и в глаза не видел. Недели в общем хватило перестроиться.)
← →
Eraser © (2008-06-06 18:59) [16]> [0] Vlad Oshin © (06.06.08 17:58)
C# это больше Delphi, чем C++, imho.
← →
Petr V. Abramov © (2008-06-06 19:11) [17]
> на адаптацию 3 недели.
framework практически начисто слизан с VCL, сложности не больше чем терминологического характера, типа BPL - это сборки, работа с RTTI - работа с reflection и т.д. C# от паскаля идеологией не отличается, основные отличия - begin это { , end - сам догадайся :)
← →
palva © (2008-06-06 19:22) [18]
> А что плохого?
Да я не говорю что плохо. Можно всю жизнь одним фортраном на булку с маслом зарабатывать. Меня тут приглашали недавно на VB6 старый код сопровождать. Скучно только...
← →
Игорь Шевченко © (2008-06-06 19:26) [19]
> моя плакаю...
а ты на delphi хотел всю жизнь ключи подавать ? Пора становиться настоящим мужчиной
← →
tesseract © (2008-06-06 19:28) [20]
> Бывает Managed C++
Он сильно покоцанный. "Только для сопроваждение унаследованного (legacy) кода"
← →
uw © (2008-06-06 19:29) [21]Vlad Oshin © (06.06.08 18:03) [4 - 6]
-Машь, пойдешь на сеновал?
-я не Маша!
-Да я не об этом спрашивал!
Ну, Влад! Рассказывать один и тот же анекдот три раза подряд - это полный моветон :-)
← →
SergeyIT © (2008-06-06 21:02) [22]
> три раза подряд
Ну заикается человек - бывает
← →
SergeyIT © (2008-06-06 21:02) [23]Удалено модератором
← →
DiamondShark © (2008-06-06 21:23) [24]
> tesseract © (06.06.08 19:28) [20]
>
> > Бывает Managed C++
>
> Он сильно покоцанный. "Только для сопроваждение унаследованного
> (legacy) кода"
Откуда дровишки?
Нафига для legacy кода Managed C++?
Или имелся в виду C++ вообще? Ну так слухи о его покоцанности сильно преувеличены. Наоборот, в каждой версии студии новыми фичами обрастает.
← →
Пробегал2.... (2008-06-06 21:23) [25]нда... Судя по постам все уже приняли хорошенько. Вы чего, народ, по привычке? Ведь пятница то не настоящая сегодня...
← →
Пробегал2.... (2008-06-06 21:23) [26]Удалено модератором
← →
DiamondShark © (2008-06-06 21:27) [27]А чего это все вдруг задвоились?
← →
Джо © (2008-06-06 21:33) [28]
> Пробегал2.... (06.06.08 21:23) [25]
> Вы чего, народ, по привычке? Ведь пятница то не настоящая сегодня.
И нормальная себе пятница, не хуже прочих...
← →
tesseract © (2008-06-06 22:03) [29]
> Откуда дровишки?
MSDN
> Ведь пятница то не настоящая сегодня...
Для кого как. У меня полноценная.
← →
SergeyIT © (2008-06-06 22:05) [30]
> нормальная себе пятница
Тяпница как тяпница. А язык вообще не важен в этой жизни - главное, что писать.
← →
oxffff © (2008-06-06 22:20) [31]
> tesseract © (06.06.08 19:28) [20]
>
> > Бывает Managed C++
>
>
> Он сильно покоцанный. "Только для сопроваждение унаследованного
> (legacy) кода"
Интересное откуда ты это взял?
Поскольку набор CLR - это по большей части полиморфная ООП VM.
А 100% функциональности библиотеки .NET написано на С++, то можно уяснить, что .NET это обертка для unmanaged функций.
У тебя какой MSDN?
For .NET languages, such as Visual Basic and C#, the prescribed method for interoperating with native components is P/Invoke. Because P/Invoke is supported by the .NET Framework, C++ supports it as well, but C++ also provides its own interoperability support, which is referred to as C++ Interop. C++ Interop is preferred over P/Invoke because P/Invoke is not type-safe. As a result, errors are primarily reported at run time, but C++ Interop also has performance advantages over P/Invoke......
The data marshaling performed by C++ Interop is the simplest possible form: the parameters are simply copied across the managed/unmanaged boundary in a bitwise fashion; no transformation is performed at all. For P/Invoke, this is only true if all parameters are simple, blittable types. Otherwise, P/Invoke performs very robust steps to convert each managed parameter to an appropriate native type, and vice versa if the arguments are marked as "out", or "in,out".
In other words, C++ Interop uses the fastest possible method of data marshaling, whereas P/Invoke uses the most robust method. This means that C++ Interop (in a fashion typical for C++) provides optimal performance by default, and the programmer is responsible for addressing cases where this behavior is not safe or appropriate.
C++ Interop therefore requires that data marshaling must be provided explicitly, but the advantage is that the programmer is free to decide what is appropriate, given the nature of the data, and how it is to be used. Furthermore, although the behavior of P/Invoke data marshaling can be modified at customized to a degree, C++ Interop allows data marshaling to be customized on a call-by-call basis. This is not possible with P/Invoke.
For .NET languages, such as Visual Basic and C#, the prescribed method for interoperating with native components is P/Invoke. Because P/Invoke is supported by the .NET Framework, C++ supports it as well, but C++ also provides its own interoperability support, which is referred to as C++ Interop. C++ Interop is preferred over P/Invoke because P/Invoke is not type-safe. As a result, errors are primarily reported at run time, but C++ Interop also has performance advantages over P/Invoke.
Both techniques require several things to happen whenever a managed function calls an unmanaged function:
The function call arguments are marshaled from CLR to native types.
A managed-to-unmanaged thunk is executed.
The unmanaged function is called (using the native versions of the arguments).
An unmanaged-to-managed thunk is executed.
The return type and any "out" or "in,out" arguments are marshaled from native to CLR types.
The managed/unmanaged thunks are necessary for interop to work at all, but the data marshaling that is required depends on the data types involved, the function signature, and how the data will be used.
The data marshaling performed by C++ Interop is the simplest possible form: the parameters are simply copied across the managed/unmanaged boundary in a bitwise fashion; no transformation is performed at all. For P/Invoke, this is only true if all parameters are simple, blittable types. Otherwise, P/Invoke performs very robust steps to convert each managed parameter to an appropriate native type, and vice versa if the arguments are marked as "out", or "in,out".
In other words, C++ Interop uses the fastest possible method of data marshaling, whereas P/Invoke uses the most robust method. This means that C++ Interop (in a fashion typical for C++) provides optimal performance by default, and the programmer is responsible for addressing cases where this behavior is not safe or appropriate.
C++ Interop therefore requires that data marshaling must be provided explicitly, but the advantage is that the programmer is free to decide what is appropriate, given the nature of the data, and how it is to be used. Furthermore, although the behavior of P/Invoke data marshaling can be modified at customized to a degree, C++ Interop allows data marshaling to be customized on a call-by-call basis. This is not possible with P/Invoke.
← →
oxffff © (2008-06-06 22:22) [32]
> tesseract © (06.06.08 22:03) [29]
Поэтому для реальных пацанов.
Связка С++ и Managed C++ - это мощнейшее решение.
← →
tesseract © (2008-06-06 22:37) [33]
> вязка С++ и Managed C++ - это мощнейшее решение.
Именно "Вязка". Иделогия С и его мутантное дитя c++ - всё исходит от ассемблера. У CLR свой "ассемблер", и c++ во всех книгах/рукоВВодствах + legacy язык. В VS 2005 уже было - новые функции не для с++. И кстати на пенсию этот изврат давно пора, главная сфера его применения -Windows. А вот Objective-C пока жив и рыпапаеться. Это странное дитя С и SmallTalk меня заинтересовало :-) Только среды разработки MacOs и сильно покоцано Linux.
← →
Игорь Шевченко © (2008-06-06 22:43) [34]tesseract © (06.06.08 22:37) [33]
> Иделогия С и его мутантное дитя c++ - всё исходит от ассемблера
Я считал, от алгола... Блин, надо же так ошибаться - а на первый взгляд к ассемблеру гораздо ближе Фортран.
← →
oxffff © (2008-06-06 22:45) [35]
> tesseract © (06.06.08 22:37) [33]
Ты не те книги читаешь. :)
> У CLR свой "ассемблер",
Ты знаешь набор его команд?
Я специально выбрал тебе все математические команды IL
and – bitwise AND
ckfinite – check for a finite real number
div – divide values
div.un – divide integer values, unsigned
mul – multiply values
mul.ovf.<type> – multiply integer values with overflow check
neg – negate
not – bitwise complement
or – bitwise OR
rem – compute remainder
rem.un – compute integer remainder, unsigned
shl – shift integer left
shr – shift integer right
shr.un – shift integer right, unsigned
sub – subtract numeric values
sub.ovf.<type> – subtract integer values, checking for overflow
xor – bitwise XOR
Увы не густо. А все остальное только через обертки в библиотеке.
Так что Welcome to unmanaged World.
И скорее .NET умрет раньше, чем С++.
← →
wl © (2008-06-07 01:29) [36]а мне вот интересно, как бы выглядел managed c (где ни нэймспейсов, ни классов)?
чисто теоретически его можно вывести, по типу: asm->c, IL->managed c
но он сильно будет отличаться от предка, имхо
← →
ketmar © (2008-06-07 13:53) [37]>[36] wl © (2008-06-07 01:29:00)
>а мне вот интересно, как бы выглядел managed c
как обычный C, только без free(). удобно.
---
All Your Base Are Belong to Us
← →
Галинка (2008-06-07 16:15) [38]да просто некоторые еще и на просто С пишут ))) Бывает и такое.
← →
Хохол (2008-06-07 17:20) [39]
> SergeyIT © (06.06.08 18:53) [15]
>
> > на адаптацию 3 недели
> 3 * 7 = 21
> Берем книгу "С под НЕТ за 21 день" и нет проблем.
Угу "C# для полных идиотов за 23 часа и 59 минут"...
← →
^-k2-^ © (2008-06-07 17:25) [40]"Раньше появлялись средства качественной разработки, а теперь только быстрой.."
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.008 c