[image]

зачем нужен C# если есть Assembler , C++, Delphi .

 
1 2 3 4 5 6 7

tarasv

аксакал

TEvg> Может я чего-то не допираю, но в чем сложность-то?

Сложность что нужно во всей системе вцелом.

TEvg> Вот и все.. Замечу что в Це с плюсами тоже самое. Разница в синтаксисе. :) [»]

Как обмениваться данными между адресными пространствами разных процессов? В DLL на С++ мы пишем такую вот штуку:

#pragma data_seg(".shared")
DWORD InputIdleStart=0;
#pragma data_seg()
#pragma comment(linker, "/SECTION:.shared,RWS /ALIGN:4096")

InputIdleStart - это время последнего события.

extern "C" __declspec( dllexport ) LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
InputIdleStart = GetTickCount();
return (CallNextHookEx(KeyboardHook,code,wParam,lParam));
}

А в своем приложении смотрим на значение InputIdleStart и меняем иконку например.

В Делфи тоже можно написать разделение переменных между процессами но это будет совсем не детская задачка.

   
UA tarasv #10.10.2005 16:37  @Сергей-4030#09.10.2005 18:45
+
-
edit
 

tarasv

аксакал

Сергей-4030> Почему?! Я, скажем, довольно плотно знаком как с Виндовским GUI, так и с Джавовым. И мне кажется, что Джавовый API куда как лучше разработан. [»]

Это личные впечатления, в данном случае не программиста а пользователя. Первая программа с javа GUI от которого небыло впечатления убогости или тормознутости по сравнению с найтивнными (а часто и того и другого в одном флаконе) в моей практике была IDEA. Во всяком случае после JBuilder и всевозможных JProb и прочих консолей WebSphere и помня очень шустрый даже на P100 Visual J++ я был изрядно удивлен :)
   

Mishka

модератор
★★★
tarasv> Как обмениваться данными между адресными пространствами разных процессов? В DLL на С++ мы пишем такую вот штуку:
tarasv> #pragma data_seg(".shared")
tarasv> DWORD InputIdleStart=0;
tarasv> #pragma data_seg()
tarasv> #pragma comment(linker, "/SECTION:.shared,RWS /ALIGN:4096")
tarasv> InputIdleStart - это время последнего события.
tarasv> extern "C" __declspec( dllexport ) LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
tarasv> {
tarasv> InputIdleStart = GetTickCount();
tarasv> return (CallNextHookEx(KeyboardHook,code,wParam,lParam));
tarasv> }
tarasv> А в своем приложении смотрим на значение InputIdleStart и меняем иконку например.
tarasv> В Делфи тоже можно написать разделение переменных между процессами но это будет совсем не детская задачка. [»]


Не корысти ради, а справедливости ради :P
Используйте для это именованные файлы отмапированные в память — они для этого предназначены, синхронизация доступа по глобальным именованным событиям и/или семафорам. Сам MS очень сильно не рекомендует использование таких сегментов с некоторых пор. :D
   

Bobo

опытный

Да ладно, сегменты все равно через файлы работают...
   

61284

опытный
☆★★
TEvg> Не я! Нету этой переносимости в природе. И не будет!

Я не большой спец в програмировании, но прога у меня была, загрузчик прошивок по rs232, собиралась и под виндой и под линуксом через make win32 или make linux, интерфейс через fltk, для com-порта был заведён класс, там конечно "#ifndef WIN32".
И гимора особого я вроде не имел.
   

Mishka

модератор
★★★
Bobo> Да ладно, сегменты все равно через файлы работают... [»]

Это точно? Потому, как можно отмэпить их и по другому — дело имплементации операционке.
   

Bobo

опытный

Bobo>> Да ладно, сегменты все равно через файлы работают... [»]
Mishka> Это точно? Потому, как можно отмэпить их и по другому — дело имплементации операционке. [»]

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

Mishka

модератор
★★★
Bobo> Исходников я не видел, но умные дяди в умных книжках утверждают что любой маршаллинг в винде осуществляется через memory-mapped files. Все остальное просто обвязка, доставшаяся по наследству. [»]

DLL-то были еще в 3.0. А тогда, вроде не было таких файлов.
   
AU Zeus #11.10.2005 02:30  @Реконструктор#10.10.2005 15:53
+
-
edit
 

Zeus

Динамик

Реконструктор> Так когда будем выводить на рынок быстрый и многоплатформеный java Photoshop? :D [»]

Вообще-то, есть вещь, не менее (а скорее более) серьезная, чем Фотошоп. Матлаб называется. Вот он как бы на Джаве, и работает на разных платформах ;)
   

Zeus

Динамик

tarasv> Как обмениваться данными между адресными пространствами разных процессов? В DLL на С++ мы пишем такую вот штуку:
tarasv> #pragma data_seg(".shared")

Жуть какая! Прекрасный пример, как нельзя писать. Есть же нормальные методы!
   

TEvg

аксакал

админ. бан
>Сложность что нужно во всей системе вцелом.

Ну я и написал что задача решается через хуки, а конкретно апишкой SetWindowsHookEx.

>УЖАС КАКОЙ!!! Пожалели бы детишек...

А чего их жалеть, супостатов?

>Вот из-за таких как вы они потом и смеются над качеством нашего образования

Умные не смеются, а дураки смеются над собой. Я вот начинал с Спектрумов и Корветов и Басика и не смеюсь над качеством образования. Наоборот слабая машина заставляет не обработчики кликов писать, а программировать на Паскале и Асме.
   

Bobo

опытный

Mishka> DLL-то были еще в 3.0. А тогда, вроде не было таких файлов. [»]

Ну вот для совместимости с Вин16 и оставили, но реализация уже другая.
   

tarasv

аксакал

tarasv>> Как обмениваться данными между адресными пространствами разных процессов? В DLL на С++ мы пишем такую вот штуку:
tarasv>> #pragma data_seg(".shared")
Zeus> Жуть какая! Прекрасный пример, как нельзя писать. Есть же нормальные методы! [»]

Нормальные методы существуют для нормальных целей а для рюшечек с бантиками сойдет и так :)

   
+
-
edit
 

Mishka

модератор
★★★
Кстати, JBuilder IDE написано на Java, вроде. Как и Eclipse, NetBeans, IBM Websphere Studio. Borland бросил C++Builder в качестве IDE, написанного на С++ и сосредоточился на JBuilder, написанном на джаве, как основном — http://bdn.borland.com/article/0,1410,31277,00.html.

Optrak | Vehicle routing, load planning and scheduling — от девелопера:
Large applications I'd classify my company's main application as large (over 4000 classes, 14MB source), and it is a client application rather than server based. Although as it serves a niche market most people will never have seen it or have a use for it. (See Optrak | Vehicle routing, load planning and scheduling)
Posted by: mthornton on July 20, 2004 at 05:49 AM
 


Examples How about Sketsa SVG drawing application. It is available at KIYUT - Sketsa SVG Editor
Posted by: kiyut on July 20, 2004 at 11:33 AM
 

One Rich example One example of Rich and Commercial applications made using Java are by Tektronix Oscilloscope The average price of these applications are around 5k$, some are more than 10$. Except Data acquization(which is done at the hardware level),everything else is done in JAVA, like data analysis, different algo's Data presenting in a powerfull 2D charts(with Zooming and other features), printing tool etc. There are also few Video measurment Intranet Applets(Swing) which are used to remotely control the apparatus. (Most of the big TV companies uses this tool)
Posted by: kishoresjava on July 27, 2004 at 09:36 AM
 

   
Это сообщение редактировалось 13.10.2005 в 16:58
+
-
edit
 

Nikita

аксакал

Mishka> Кстати, JBuilder IDE написано на Java, вроде. Как и Eclipse, NetBeans, IBM Websphere Studio.

Не все так просто. В том же Eclipse куча специальных нативных библиотек торчащих через JNI. GUI и "чистая" Java это все-таки еще проблема, хотя моя любимая IDEA и демонстрирует, что она вполне решаема :)
   

Mishka

модератор
★★★
Mishka>> Кстати, JBuilder IDE написано на Java, вроде. Как и Eclipse, NetBeans, IBM Websphere Studio.
Nikita> Не все так просто. В том же Eclipse куча специальных нативных библиотек торчащих через JNI. GUI и "чистая" Java это все-таки еще проблема, хотя моя любимая IDEA и демонстрирует, что она вполне решаема :) [»]

Так половина Java — это нативные библиотеки. В том числе куча swing-а. И перенос Java машины недостаточен для переноса языка и его среды — надо портировать эти самые библиотеко-пакеты.
   
US Сергей-4030 #13.10.2005 18:57
+
-
edit
 

Сергей-4030

исключающий третье
★★
Так половина Java — это нативные библиотеки. В том числе куча swing-а. И перенос Java машины недостаточен для переноса языка и его среды — надо портировать эти самые библиотеко-пакеты.
 


У Эклипса есть ими писанный (он не входит в Sun'овский SDK) SWT (The Standard Widget Toolkit), который представляет единый бридж к API UI, а реализация (вернее - реализации) данного интерфейса делается через тесное использование нативных методов платформы. В результате получается, во-первых, быстро, а во-вторых - похоже на "нативный" интерфейс OS :) Они этим очень гордятся, честно говоря не врубаюсь, почему, и зачем оно так уж надо.
   
+
-
edit
 

Mishka

модератор
★★★
Так различие SWT и Swing только в том, что первый IBM написало, а не Sun. Поэтому портирование что одного, что другого — примерно одинаково. Но опять-таки, вынесено на уровень ОС то, что надо ускорить.
   
US Сергей-4030 #14.10.2005 08:15
+
-
edit
 

Сергей-4030

исключающий третье
★★
Так различие SWT и Swing только в том, что первый IBM написало, а не Sun.
 


Нуу... я бы сказал, что это вещи похожие, но не настолько. У Swing'а то, что нужно портировать - несколько методов низкоуровневой отрисовки, типа bitblt, да ишшо wrapper для засовывания мышко-клавиатурных сообщений в JVM. Если я нарисовал на Свинге, скажем, input box - все до последнего пиксела там рисовано самыми что ни есть генеральными Джавовыми методами, не требующими ровно никакого изменения для портирования куда-то еще. Платформно-зависим только механизм копирования получившегося кусочка памяти на экран. У SWT input box - самый что ни есть обычный Windowsкий (если под Windows запускаем) input box, отрисованный Windowsскими библиотеками. Соответственно, работы по портированию много больше.
   
+
-
edit
 

Nikita

аксакал

Mishka> Так половина Java — это нативные библиотеки. В том числе куча swing-а.

Ну дык без них никак. Однако тем не менее зависимых моментов в собственно Java очень мало. И особенно в Swing'е :) Все портируется просто на раз, в отличии от .NET
   
+
-
edit
 

Vestel

разработчик OpenWorlds
А почитать? Там же английским по бекграунду написано: "failed to qualify after a chip failure"... Может быть смайлики конечно говорили о том, что это шутка, но я теперь стал еще меньше доверять не Яве, а чипам VIA
   

Lerm

втянувшийся
Vestel, 20.10.2005 12:32:15:
А почитать? Там же английским по бекграунду написано: "failed to qualify after a chip failure"... Может быть смайлики конечно говорили о том, что это шутка, но я теперь стал еще меньше доверять не Яве, а чипам VIA
[»]
 


Господи, ну конечно там стояли смайлики. И, кстати, дело было не совсем в чипах:

Shortly after 11 AM, Tommy was summoned to the track queue. Tommy started his fourth trial - the second run of Phase 2 nearly flawlessly - handling the gate, the uphill and downhill segments, and the berm obstacles without appreciable error. As Tommy entered the GPS outage tunnel, he began to accelerate inexplicably, and he continued to accelerate through the tunnel.

Tommy exited the tunnel well exceeding the course limit of speed and ultimately reaching an estimated velocity of 60 mi/h. Tommy swerved outside the tunnel to avoid the tire obstacle, but continued to accelerate impacting the K-barrier at a high rate of speed. From the observation bridge, Team Lead Paul Perrone repeatedly requested an E-Stop DISABLE signal to be issued by race officials, but no DISABLE signal was sent. Approximately 12 seconds elapsed between the unexplained acceleration and impact.
 
   
1 2 3 4 5 6 7

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru