Re[23]: Почему настоящие программисты избегают C++
От: olegkr  
Дата: 25.02.05 17:11
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Покажите мне, где в WinForms есть MVC.


А чем тебе в качестве модели IList или IBindingList не катит?

C>JavaDoc — это документация именно _к_ _исходникам_. То есть просто

C>документируются классы и методы — так же как и reference'ы в MSDN'е.

Только толку с нее...

C>Ну и как он будет оповещать спиок об изменениях данных? Ну а для дерева

C>вообще ничего подходящего нет.

IBindingList.ListChanged event. C деревом сложнее.
Re[25]: Почему настоящие программисты избегают C++
От: olegkr  
Дата: 25.02.05 17:16
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Я помню, что уже через месяц (после того, как набил шишки в нужных

C>местах) писал на Свинге быстрее, чем в редакторе. Причем было это в 2002
C>году.

Согласен. На редакторах формочек для свингов много не напишешь. Проще ручками. Еще проще — в нормальном редакторе.

C>Но! В Яве у layout'ов стандартный интерфейс, поэтому тот же JGoodies без

C>проблем может интеоперировать хоть с FlowLayout'ом из JDK1.0.1

Т.к. интероперировать не с чем, то и проблемы таковой нет.
Re[24]: Почему настоящие программисты избегают C++
От: Cyberax Марс  
Дата: 25.02.05 17:19
Оценка:
olegkr пишет:

> C>Покажите мне, где в WinForms есть MVC.

> А чем тебе в качестве модели IList или IBindingList не катит?

Не катит, так как нормально я их переопределить не могу.

> C>JavaDoc — это документация именно _к_ _исходникам_. То есть просто

> C>документируются классы и методы — так же как и reference'ы в MSDN'е.
> Только толку с нее...

JavaDoc — это _просто_ комментарий к исходникам. Ни больше, ни меньше.

Подробная документация в JavaDoc'е не бывает (обычно), а скачивается
(вариант: браузится) отдельно.

> C>Ну и как он будет оповещать спиок об изменениях данных? Ну а для дерева

> C>вообще ничего подходящего нет.
> IBindingList.ListChanged event. C деревом сложнее.

Тогда IList уже не получится использовать, а IBindingList — достаточно
сложный и громоздкий для реализации.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[19]: Почему настоящие программисты избегают C++
От: Cyberax Марс  
Дата: 25.02.05 17:21
Оценка:
Кодт пишет:

> C>Еще очень забавный опыт: создать в одном потоке дочернее окно с

> C>родителем в другом потоке.
> Вот только что опыт ставил. Результат — мрачный, но (через
> пень-колоду) работает.

Угу, причем ломается в самых неожиданных местах (типа SetFocus).

Я как-то пытался довести такой подход до ума — в итоге наплевал, и стал
делать GUI полностью однопоточным.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[26]: Почему настоящие программисты избегают C++
От: Cyberax Марс  
Дата: 25.02.05 17:22
Оценка:
olegkr пишет:

> C>Я помню, что уже через месяц (после того, как набил шишки в нужных

> C>местах) писал на Свинге быстрее, чем в редакторе. Причем было это в
> 2002
> C>году.
> Согласен. На редакторах формочек для свингов много не напишешь. Проще
> ручками. Еще проще — в нормальном редакторе.

Я с VB тогда сравнивал

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[14]: Почему настоящие программисты избегают C++
От: d Bratik  
Дата: 25.02.05 17:26
Оценка:
Здравствуйте, Garrrrr, Вы писали:

DB>>Я уже молчу, что иногда он (Qt) жрет процессорное время, зацикливаясь на посылках-обработках сообщений, что он вообще НЕ excetion-safe (разработчики называют это "not using exceptions" и вообще не защищают выделение ресурсов, поэтому любой виртуальный метод или обработчик сигнала должен иметь всеобъемлющий try {} catch (...) {}), что он не позволяет создавать многопоточный GUI (для отмазки предоставляя какой-то один отстойный объект синхрониации с однтим циклом обработки сообщений на все потоки!)... И т.д. и т.п.


G>Хотел бы я увидеть хотя бы одну потокобезопасную, безопасную относительно исключений библиотеку GUI.

G>И потом — методы в Qt, из которых нельзя выкидывать исключения, объявлены как throw(), т ч разработчики честно предупреждают,
G>чего они от тебя НЕ ждут (ведь ты же не имеешь привычки кидать исключения из деструктора?)
G>И вообще, многопоточность — это отдельная песня. С каждой библиотекой можно работать в многопоточной среде, просто надо соблюдать
G>ряд правил для этого. STL вон тоже не многопоточная если на то пошло...

Речь идет о моногопоточном, exception-safe GUI. Мне это позарез нужно. Таких библиотек (промышленных) только две: .NET framework и VCL (там все хуже, но все равно есть).

DB>>Версия 4 вроде бы обещает быть получше, но с исключениями и потоками она до сих пор не дружит (хотя уже есть beta).

G>Qt работает на слишком многих платформах с различными по отцтойности компиляторами — отсюда изначальная политика минимализма c++ кода.

G>P.S.: И вообще, у меня сложилось впечатление, что для тебя не обсуждение главное, а посрать в камментах побольше....


Я ставлю проблемы.
Re[15]: Почему настоящие программисты избегают C++
От: Cyberax Марс  
Дата: 25.02.05 17:41
Оценка:
d Bratik пишет:

> G>чего они от тебя НЕ ждут (ведь ты же не имеешь привычки кидать

> исключения из деструктора?)
> G>И вообще, многопоточность — это отдельная песня. С каждой
> библиотекой можно работать в многопоточной среде, просто надо соблюдать
> G>ряд правил для этого. STL вон тоже не многопоточная если на то пошло...
> Речь идет о моногопоточном, exception-safe GUI. Мне это позарез нужно.
> Таких библиотек (промышленных) только две: .NET framework и VCL (там
> все хуже, но все равно есть).

ТАКИХ нет. VCL — НЕпотокобезопасна, пора бы уже знать. Естественно, ее
можно использовать в многотредовом окружении, точно так же как и: MFC,
WTL, WinAPI, QT, GTK и прочие. То есть маршалируя графические вызовы в
нужный поток или используя только их потокобезопасное подмножество.

Ну а в качестве exception-safe — чем MFC или WTL не нравится?

> Я ставлю проблемы.


Какие? Которых нет?

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[14]: Почему настоящие программисты избегают C++
От: The Lex Украина  
Дата: 25.02.05 17:48
Оценка:
Здравствуйте, Demiurg, Вы писали:

sc>>>В Windows все элементы гуи, окна, это судя по названию...


TL>>А теперь "фишка": а вот в Дельфи не все элементы гуи являются окнами Windows!


D> Кстати, я так и не понял почему борландовцы свой TLabel сделали не на основе STATIC'а... И не только его...


— Ы!
— А почему "Ы"?
— А чтоб никто не догадался!
(к)

Хотя могу заметить, что определенный резон в этом есть, но с непривычки это несколько смущает...
Голь на выдумку хитра, однако...
Re[11]: Почему настоящие программисты избегают C++
От: The Lex Украина  
Дата: 25.02.05 17:50
Оценка:
Здравствуйте, Awaken, Вы писали:

TL>> 10 баллов! Первый признак дельфиста: "окно с обычной кнопкой OK, текст которой написан нестандартным шрифтом"! "Повбывав бы!" (к)


A>я чего-то тоже не пойму — а нахрен там нестандартный шрифт?

A>а если пользователь поменяет "тему десктопа" в Винде единообразно, что станет с этим нестандартным шрифтом?

— Ы!
— А почему "Ы"?
...
Голь на выдумку хитра, однако...
Re[16]: Почему настоящие программисты избегают C++
От: The Lex Украина  
Дата: 25.02.05 17:59
Оценка:
Здравствуйте, Awaken, Вы писали:

К>>Вот в винде он как раз многопоточный (для этого и существуют очереди сообщений у потоков).

К>>И этим пользуются разные подпольные компоненты — DDE, OLE.

A>очереди сообщений относятся к приложению а не к графическому движку.

A>разве можно из двух потоков одновременно (а не ставя запросы в очередь) рисовать на одном DC?
A>или например запустить асинхронную операцию заливки экрана а самому в это время рисовать в другом месте

Стоп-стоп-стоп! А при чем тут нижний уровень графики? Или Вы хотите сказать, что на двух мониторах нельзя будет рисовать одновременно?

В конце-концов, какой смысл: "запустить асинхронную операцию заливки экрана а самому в это время рисовать в другом месте"? И опять-таки никто не запрещает "запустить", а рисовать в это время в памяти — правда? И это относится скорее г GDI, чем к GUI, правда?
Голь на выдумку хитра, однако...
Re[16]: Почему настоящие программисты избегают C++
От: The Lex Украина  
Дата: 25.02.05 18:03
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> A>объясни в какой такой ОС существует многопоточный GUI?

>> A>в винде он однопоточный по определению (для этого и очередь сообщений)
>> Вот в винде он как раз многопоточный (для этого и существуют очереди
>> сообщений у потоков).

C>Он однопоточный в том смысле, что нельзя безопасно работать с

C>GUI-элементами, созданными в одном потоке, из другого потока (хотя
C>некоторые оконные сообщения действительно будут обрабатываться корректно).

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

Наверняка можно найти те или иные методы, которыми можно будет работать небезопасно с любым объектом любой ОС или платформы. Правда, говорят, AS/400 "совсем-совсем безопасная" — но сам я не видел...
Голь на выдумку хитра, однако...
Re[21]: Почему настоящие программисты избегают C++
От: The Lex Украина  
Дата: 25.02.05 18:06
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Нет, Свинг — для профессиональных GUI-программистов, которые могут

C>обойтись и без редактора формочек.

да... помню, в былые времена все веб-дизайнеры "обходились без редакторов формочек" — я вот до сих пор обхожусь... Правда я не профессионал...
Голь на выдумку хитра, однако...
Re[20]: Почему настоящие программисты избегают C++
От: The Lex Украина  
Дата: 25.02.05 18:12
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> C>Еще очень забавный опыт: создать в одном потоке дочернее окно с

>> C>родителем в другом потоке.
>> Вот только что опыт ставил. Результат — мрачный, но (через
>> пень-колоду) работает.

C>Угу, причем ломается в самых неожиданных местах (типа SetFocus).


C>Я как-то пытался довести такой подход до ума — в итоге наплевал, и стал

C>делать GUI полностью однопоточным.

Так, я где-то потерялся: придется поднимать старый проект и смотреть, как я "делал это" — самому интересно, а то вы тут заставили меня самому засомневаться в своей жизни...

Т.е. вы хотите сказать, что ежели дочернее окно и родительское окно будут иметь разные потоки, то возникнут проблемы? Хм... Можно огласить весь код? Можно в новую тему...
Голь на выдумку хитра, однако...
Re[21]: Почему настоящие программисты избегают C++
От: Cyberax Марс  
Дата: 25.02.05 18:23
Оценка:
The Lex пишет:

> C>Я как-то пытался довести такой подход до ума — в итоге наплевал, и стал

> C>делать GUI полностью однопоточным.
> Так, я где-то потерялся: придется поднимать старый проект и смотреть,
> как я "делал это" — самому интересно, а то вы тут заставили меня
> самому засомневаться в своей жизни...
> Т.е. вы хотите сказать, что ежели дочернее окно и родительское окно
> будут иметь разные потоки, то возникнут проблемы? Хм... Можно огласить
> весь код? Можно в новую тему...

Возникнут обязательно. Я пытался заставить MDIChild'ов работать в своих
потоках. Оно, в принципе, работало. Но ОООЧЕНЬ глючно.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[20]: Почему настоящие программисты избегают C++
От: Awaken Украина  
Дата: 25.02.05 18:28
Оценка:
C>Я как-то пытался довести такой подход до ума — в итоге наплевал, и стал
C>делать GUI полностью однопоточным.

это примерно как писать многопоточные программы на VB(6)
в теории оно возможно но на практике лучше потратить время на что-нибудь другое
Re[2]: Почему настоящие программисты избегают C++
От: Denis_TST Россия www.transsys.ru
Дата: 25.02.05 20:15
Оценка:
Здравствуйте, AlexEagle, Вы писали:

AE>Здравствуйте, d Bratik, Вы писали:

AE>И предпочитают делфи где-то по следующим причинам:

AE>2. За отсутствие шаблонов.

Не смертельно. в VB их тоже нет, в java и C# они недавно появились.

AE>3. За отсутствие возможности создания автоматических объектов (все объекты изначально является указателем).

Есть такая возможность — используй интерфесы и будет тебе счастье. Или напиши интерфейс обертку — получишь аналог SmartPointer'a
Например как в JCL :

Associates a resource, pointer or object reference, with a safeguard.

function Guard(Mem: Pointer; out SafeGuard: ISafeGuard): Pointer; overload;
function Guard(Obj: TObject; out SafeGuard: ISafeGuard): TObject; overload;
function Guard(Mem: Pointer; var SafeGuard: IMultiSafeGuard): Pointer; overload;
function Guard(Obj: TObject; var SafeGuard: IMultiSafeGuard): TObject; overload;

   var
     SafeGuard: ISafeGuard;
     Strings: TStrings;
   begin
     Strings := TStrings(Guard(TStringList.Create, SafeGuard));
     String.ReadFromFile('d:\delphi\jcl\source\JclBase.pas');
     // code to manipulate strings goes here
     Strings.SaveToFile('d:\delphi\jcl\source\JclBase.pas');
   end;

Project JEDI

AE> Соответственно приходистя вручную вызывать конструктор/деструктор (для чего и TRY..Finnaly)
ЭЭ а в каком языке не нужно вручную вызывать конструктор?

AE>4. За отсутствие множественного наследования

в Java тоже его нет, в мусор java!
AE>5. За отсутствие возможности перегрузки операций
не смертельно. см п. 4
AE>6. За WITH благодаря которому код становится не читабельным до ужаса...
так не используй его! goto тоже в Delphi есть , это же не значит что его нужно пихать где попало!
AE>7. За дикую абстрактность от GUI модели, благодаря чему некоторые события не доступны
Кто тебе мешает отделить модель? Зачем все пихать в одну форму? можно разбить на фреймы, на отдельные
модули...
AE> реализован Handle у компонентов — просто бестселлер, понял когда случайно вызвал в
AE> деструкторе.
нормально реализован, чтобы ресурсы не жрать когда handle не нужен.
AE>12. За отсутствие менеджера конфигураций. Так чтобы сделать Debug и Release хотябы, и пользоваться просто переключая их.
AE>13. За дикий размер EXE, если конечно же не юзать пакаджи.
Дался тебе этот размер. Ты что програмки на дискетках распространяешь?

и вообще, а почему таки не юзать пакаджи? Только вместо стандартных, создать свои — с теми модулями котрые тебе нужны.
Получишь 1-2 пакета размером 1-2 мб + остальные файлы проекта (exe,dll) по 10-90 кб.
Дистрибутив из 300 проектов-плагинов вместо 100 мб занимает 12 мб.
Сложно ставить кучу файлов ? так сделай инсталлятор! и авто обновление .
AE>14. За то что ошибочная работа встроенных функций ведет к генерированию исключения, а не возврату кода ошибки. При этом во многих случаях приходится писать просто try ... except end; чтобы пропустить эту фичу.
Такая же модель в java и С. Если сделать через возврат кода ошибки, то есть вероятность что ты не вставишь код проверки
результата (ты же давишь исключения не глядя) и ошибка произойдет гораздо позже и в другом месте.И опять будут крики
что Delphi ламерская система


AE>15. За то что она не MDI. Это ужасно "УДОБНО". Приходится очищать рабочий стол перед открытием делфи, да и две запущенные — это головняк ("КРУТО"), поскольку никогда не знаешь в редакторе какой находишся. Иногда по ALT-TAB переключается только редактор, а главное окно нет.

Единственный случай кода тебе нужны две IDE — это когда отлаживаешь расширения среды. В остальных случаях используем ProjectManager
для работы. Открываем там N проектов...

AE>16. За WITH благодаря которому дебаггер не показывае значение переменных типа with TComeCObject.Create(...) do Visible := TRUE;

AE> Значение Visible — не увидишь никогда. Только если with SomeObject do SomeProperty := SomeValue; то в ТОЛЬКО окне свойств надо подставить SomeObject.SomeProperty и только тогда будет значение
Не пользуйся им ! см п. 6
AE>17. За дебаггер который видит стек вызовов исключительно ограниченный модулями, пути которых включены в проект.
Это потому что dcu из $(Delphi)\lib собраны без отладочной информации (см п 13). Хочешь видеть весь стек — зайди в настройки
и поставь галочку use Debug DCUs и не мучайся с путями. RTFM!

AE>18. За отсутствие оператора "?". Есть только два псевдоаналога — варианты функции ifthen. При этом нормально работать можно со строкой и Integer-подобными значениями.

AE> Когда речь идет об объекта то тогда запись выростает до TType(ifthen(...,Integer(Object1),(object2)) — грустно...
Ну напиши нужные тебе ifthen (работы на 5 минут), добавь их в отдельный модуль и не грусти.

AE>19. За компилятор, который хавает на ура запятую без указания последнего необязательного параметра функции.

AE> Т.е. если function f(p1: Integer; b1: Boolean=false; B2: Boolean = false), то такое прокатит на ура — f(1,false,);
Это ошибка парсинга на компиляцию это никак не влияет . В D7 эта ошибка исправлена. Можно подумать в компиляторах C ранних версий нет
ошибок. (в мусор их!)
AE>20. За директивы компилятора сделанные в стиле коментариев и мещающие коментированию текста их содержащего
используй // или (* *)
если в коде уже есть комметарии то его тоже неудобно комментировать

AE>21. За отсутствие нормального хелпа к системным функциям.

Поставь MSDN и эксперт для поиска в нем из среды. Или ты хочешь чтобы справка Delphi дублировала весь MSDN

AE> Для того чтобы определить где находится описание сетевой

AE> функции нужно выполнять поиск по каталогу сырцов. К примеру NetWkstaGetInfo которая вообще отсутствиет в
AE> стандартных сырцах
Можно подумать в VC 6 есть все-все API фунции?

AE> Ламерская система....

ага и компонета TNetWkstaGetInfo нет, ламерская система!

AE>23. За то что нельзя создать два пакета содержащие модули с одинаковыми названиями — среда не позволит, будет каждый раз ругаться что Пакет ХХХ использует модуль УУУ, который уже содержится в ХХ1 — это очень удобно, в с++ такого не добиться

Можно , если их не ставить в среду и использовать только в runtime . Как IDE определит из какого пакета брать модуль YYY?


Вы не любите кошек? вы просто не умеете их готовить!

Кроче пост полностью аналогичный первому в ветке.
Я не говорю что Delphi идеальная среда, и для нового проекта я бы выбрал C# . Но ИМХО когда C# еше не было, Delphi
был лучшим инструметом для быстрой разработки мордочек для работы с базами данных (всякие АСУ и т.д.), и сейчас остается если машины слабые
Проблемы начинаются когда инструмент начинают использовать не по назначению. Например
пытатся писать на Delphi игры или маленкие программы или хакерские утилиты
... << RSDN@Home 1.1.4 beta 4 rev. 326>>
Re[4]: Почему настоящие программисты избегают C++
От: Denis_TST Россия www.transsys.ru
Дата: 25.02.05 20:30
Оценка:
Здравствуйте, AlexEagle, Вы писали:

AE>Здравствуйте, AlexBS, Вы писали:


AE>>>12. За отсутствие менеджера конфигураций. Так чтобы сделать Debug и Release хотябы, и пользоваться просто переключая их.


ABS>>А зачем? Во всех конфигурациях размеры файлов и скорость выполнения одна и таже. Не забивай себе голову


AE>Да меня не скорость и размер волнуют — просто в Debug-версии нужны особые фичи отладки например, что можно на уровне "IFDEF" выбросить из релиза. Так и делаю, о приходится вручную менять список CONDITIONS, а есть нежелательный "человеческий фактор".


А у нас для сборки release версии есть сервер сборки. Там и директивы нужные подставляются и инсталлятор генерится и тд.
Никакого человеческого фактора — все исходники из StarTeam, управление через web интерфейс.

Ну а для начала для сборки релиза достаточно батника обрашающегося к dcc32. Все директивы можно там указать.
или посмотри на это:

WANT automates the process of building, testing, and packaging applications and libraries much like Jakarta Ant does. WANT is written in Borland Delphi.
https://sourceforge.net/projects/want/

отличная вещь, уже 3 года пользуемся.
... << RSDN@Home 1.1.4 beta 4 rev. 326>>
Re[13]: Почему настоящие программисты избегают C++
От: Denis_TST Россия www.transsys.ru
Дата: 25.02.05 21:22
Оценка:
Здравствуйте, The Lex, Вы писали:

TL>Здравствуйте, sc, Вы писали:


sc>>В Windows все элементы гуи, окна, это судя по названию...



TL>А теперь "фишка": а вот в Дельфи не все элементы гуи являются окнами Windows!


Это для экономии ресурсов, в win95 с этим были проблемы — ограничение на число hwnd. И машины с 16 мб
были не редкость (и сейчас такие есть).

или например похожий принцип используется в TCanvas —
когда ты например, меняшь цвет кисти или шрифт — это означает что нужно создать новый объект GDI.
Тк в win95 было ограничение на их количество (кажется не больше 16 000) то все гди объекты реально создаются в
только при обращении к ним

procedure TCanvas.Ellipse(X1, Y1, X2, Y2: Integer);
begin
  Changing;
  RequiredState([csHandleValid, csPenValid, csBrushValid]); <<----здесь
  Windows.Ellipse(FHandle, X1, Y1, X2, Y2);
  Changed;
end;

procedure TCanvas.RequiredState(ReqState: TCanvasState);
var
  NeededState: TCanvasState;
begin
  NeededState := ReqState - State;
  if NeededState <> [] then
  begin
    if csHandleValid in NeededState then
    begin
      CreateHandle; <<----------- вот  
      if FHandle = 0 then
        raise EInvalidOperation.CreateRes(@SNoCanvasHandle);
    end;
    if csFontValid in NeededState then CreateFont; <<<---
    if csPenValid in NeededState then CreatePen;   <<--
    if csBrushValid in NeededState then CreateBrush; <<--
    State := State + NeededState;
  end;
end;


и для оконных компонетов такая же система — handle создается только тогда когда он нужен.
Непонятно зачем тебе нужно чтобы все было окнами ? Вот в XAML тоже есть только одно окно, и что это плохо?
... << RSDN@Home 1.1.4 beta 4 rev. 326>>
Re[16]: Почему настоящие программисты избегают C++
От: Denis_TST Россия www.transsys.ru
Дата: 25.02.05 21:22
Оценка:
Здравствуйте, Awaken, Вы писали:

К>>Вот в винде он как раз многопоточный (для этого и существуют очереди сообщений у потоков).

К>>И этим пользуются разные подпольные компоненты — DDE, OLE.

A>очереди сообщений относятся к приложению а не к графическому движку.

A>разве можно из двух потоков одновременно (а не ставя запросы в очередь) рисовать на одном DC?
A>или например запустить асинхронную операцию заливки экрана а самому в это время рисовать в другом месте
А зачем ? Можно создать в памяти битмап и заливать его цветом в другом потоке. Потом послать сообщение SendMessage основному потоку и
передать в нем адрес битмапа... или нужно видеть как он заливает и моргает при перерисовке ?
в чем смысл такой многопоточности?
в тех же игрушках есть два буфера в один рисуют , другой показывают
... << RSDN@Home 1.1.4 beta 4 rev. 326>>
Re[8]: Почему настоящие программисты избегают C++
От: AndrewJD США  
Дата: 26.02.05 12:17
Оценка:
Здравствуйте, Awaken, Вы писали:


A>писано все было на VC++ 6.0 и MFC, и впоследствие портировано на Макинтош.


Можешь описать, хотя бы в двух словах, как портировали под Мак?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.