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

Вниз

А можно ли вообще при проектировании драйверов использовать ООП?   Найти похожие ветки 

 
Городской Шаман   (2009-01-22 23:21) [0]

Насколько я понял компилятор для сборки драйверов почти не понимает конструкции С++. В принципе это и правильно. Но возможно ли использовать C++ для написания kernel-mode кода?


 
jack128_   (2009-01-22 23:25) [1]


> В принципе это и правильно.

почему если не секрет??


 
Городской Шаман   (2009-01-22 23:29) [2]


> jack128_   (22.01.09 23:25) [1]
>
>
> > В принципе это и правильно.
>
> почему если не секрет??


Потому что там очень хитрое выделение памяти и ее освобождение. Если с paged memory еще как-то можно реализовать, то с nonpaged вешайся. Мне бы хотя бы для paged, ну там new, delete, виртуальные функции. Мне много не нужно...


 
Eraser ©   (2009-01-22 23:46) [3]

форум это не справочная система. неужели даже букварь влом почитать.


 
Городской Шаман   (2009-01-23 00:02) [4]


> Eraser ©   (22.01.09 23:46) [3]
>
> форум это не справочная система. неужели даже букварь влом
> почитать.


Ну почему, читал
C++ Issues for Kernel-Mode Drivers
http://www.microsoft.com/whdc/driver/kernel/KMcode.mspx


 
Eraser ©   (2009-01-23 00:05) [5]

мда... склоняюсь к тому, что не зря MS ввело обязательную сертификацию драйверов. с такими писателями по-другому никак видимо.


 
Городской Шаман   (2009-01-23 00:18) [6]


> Eraser ©   (23.01.09 00:05) [5]
>
> мда... склоняюсь к тому, что не зря MS ввело обязательную
> сертификацию драйверов. с такими писателями по-другому никак
> видимо.


Нет, я понимаю что это можно сделать через перегрузку оператора new, но это геморрой перегружать его для каждого класса.


 
Городской Шаман   (2009-01-23 00:45) [7]

Ладно, разобрался, всем спасибо.


 
Пробегал2....   (2009-01-23 00:53) [8]

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


 
Пробегал2....   (2009-01-23 00:55) [9]

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


 
Пробегал2....   (2009-01-23 00:56) [10]

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


 
Германн ©   (2009-01-23 00:58) [11]


> В драйверах тут 90% ничего не понимают

Не. 99.9(9)% в драйверах тут ничего не понимает.
Но "умные" вопросы задают многие.


 
AndreyV ©   (2009-01-23 01:08) [12]

> [6] Городской Шаман   (23.01.09 00:18)
>
> > Eraser ©   (23.01.09 00:05) [5]
> >
> > мда... склоняюсь к тому, что не зря MS ввело обязательную
>
> > сертификацию драйверов. с такими писателями по-другому
> никак
> > видимо.
>
>
> Нет, я понимаю что это можно сделать через перегрузку оператора
> new, но это геморрой перегружать его для каждого класса.

Можно стандартный переопределить
::operator new()
::operator new[]()


 
Johnmen ©   (2009-01-23 01:19) [13]


> Пробегал2....   (23.01.09 00:55) [9]

Вам что-то не нравится? М.б. стОит пойти туда, где Вас любят?


 
Городской Шаман   (2009-01-23 01:32) [14]


> Пробегал2....   (23.01.09 00:56) [10]
>
> Городской Шаман   (23.01.09 0:45) [7]
> Ладно, разобрался, всем спасибо
>
> ну так разобрался - расскажи в трех словах и нам ;)


Просто переопределить операторы, код не особо рабочий просто для примера

#define YOURMEM_TAG 0xfef1
__inline void* __cdecl operator new(size_t lBlockSize)
{
 PAGED_CODE();
 return ExAllocatePoolWithTag(PagedPool, lBlockSize, YOURMEM_TAG);
}

__inline void* __cdecl operator new(size_t lBlockSize, int pageType)
{
 //здесь типа по pageType выбираем функцию под нужный тип памяти
 PAGED_CODE();
 return ExAllocatePoolWithTag(PagedPool, lBlockSize, YOURMEM_TAG);
}

__inline void __cdecl operator delete( void *p )
{
 PAGED_CODE();

 if (!p)
   return;

 ExFreePoolWithTag(p, YOURMEM_TAG);
}

__inline void __cdecl operator delete( void *p, int pageType)
{
 //здесь типа по pageType выбираем функцию под нужный тип памяти

 PAGED_CODE();

 if (!p)
   return;

 ExFreePoolWithTag(p, YOURMEM_TAG);
}


Использовать так

class PagedObject
{
};

PagedObject* newPO = new PagedObject;
int* int_tst = new int;
int* int_tst_unpages = new(10) int;//10 означает что используем нестраничную память из нужного пула


 
Городской Шаман   (2009-01-23 01:34) [15]


> AndreyV ©   (23.01.09 01:08) [12]
>
> Можно стандартный переопределить
> ::operator new()
> ::operator new[]()


Это я уже понял, просто мне проще сперва вслух сформулировать вопрос, а потом дать на него ответ, тоже вслух.


 
Игорь Шевченко ©   (2009-01-23 01:40) [16]

Странно. У меня в каталоге %SystemRoot%\System32\drivers как минимум десяток драйверов написанных на С++, причем фирмы вроде солидные - ATI, Realtek. Кроме того, ядерная часть GDI (которая в драйвере Win32k.sys) она тоже на С++.

Ну и в примерах DDK тоже есть драйверы на С++

Но раз Софт считает, что нельзя - ну увы.

Хотя я лично не вижу причин для ненаписания драйверов на С++. А уж ООП - оно и в Африке ООП (то есть, в драйверах, опять же)


 
ketmar ©   (2009-01-23 01:41) [17]

как хорошо… как хорошо, что Линус не стал писать Linux на *этом*… а то вот понаписали бы…

---
All Your Base Are Belong to Us


 
Игорь Шевченко ©   (2009-01-23 01:43) [18]

ketmar ©   (23.01.09 01:41) [17]

на *этом* - это на чем ?


 
Городской Шаман   (2009-01-23 02:04) [19]


> Игорь Шевченко ©   (23.01.09 01:40) [16]


А можно ссылку на исходники данного драйвера, так как я в WinDDK\6001.18001\src\ не нашёл примеров использования ООП при разработке драйверов, поэтому и спрашивал.


 
Городской Шаман   (2009-01-23 02:22) [20]

А здесь они похоже уже определены
#include <stdunk.h>


 
ketmar ©   (2009-01-23 02:22) [21]

>[18] Игорь Шевченко © (2009-01-23 01:43:00)
на цпп.

---
Understanding is not required. Only obedience.


 
Городской Шаман   (2009-01-23 02:33) [22]


> ketmar ©   (23.01.09 02:22) [21]
>
> >[18] Игорь Шевченко © (2009-01-23 01:43:00)
> на цпп.


Ну там чиста-С. И что в этом хорошего?


 
Petr V. Abramov ©   (2009-01-23 02:44) [23]


> А можно ли вообще при проектировании драйверов использовать
> ООП?

1. Вы знаете ОПП
2. Вы прооекттирете драйверы

ВАш ответ на вопрос "неужна ли эта технология на этой задаче?"
если нет ответа то:
Вы не использовали ООП. ну спросите че-нить "как бы применить ООП к вот таким вызовам, а если никак, то агрументируйте, хоть на уровне нет объектов
Вы объектно-ориентированный парограммист, заставили писать драйверы. задайте вопрос "я объектный, а тут такая задача. есть тут объектность или забить? :)


 
ketmar ©   (2009-01-23 02:52) [24]

>[22] Городской Шаман (2009-01-23 02:33:00)
>там чиста-С. И что в этом хорошего?

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

---
All Your Base Are Belong to Us


 
Городской Шаман   (2009-01-23 03:00) [25]


> Petr V. Abramov ©   (23.01.09 02:44) [23]


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

В принципе ООП там есть, но это не особо тривиально.


 
Городской Шаман   (2009-01-23 03:01) [26]


> ketmar ©   (23.01.09 02:52) [24]
>
> >[22] Городской Шаман (2009-01-23 02:33:00)
> >там чиста-С. И что в этом хорошего?
> нет набора костылей и набора граблей, заботливо разложеных
> трупом страуса в самых интересных и приятных местах.


Обходя щедро разложенные на пути грабли, ты теряешь драгоценный опыт.


 
ketmar ©   (2009-01-23 03:18) [27]

>[26] Городской Шаман (2009-01-23 03:01:00)
идиотия может быть только печальным опытом. благодарю, я не мазохист.

---
Do what thou wilt shall be the whole of the Law.


 
test   (2009-01-23 05:22) [28]

ketmar ©   (23.01.09 03:18) [27]
В одной очень старой книжке по программированию игр автор страниц 5 доказывал что игры можно писать не только на ассемблере!


 
le croise   (2009-01-23 08:54) [29]

http://ldeniau.web.cern.ch/ldeniau/cos.html


 
han_malign ©   (2009-01-23 10:37) [30]


> нет набора костылей и набора граблей, заботливо разложеных
> трупом страуса в самых интересных и приятных местах.

- ну а как же набор костылей и набор граблей - при функциональной декомпозиции? Нахрен - забыть про инструкцию call - только линейный код и исключительно jxx и int - только так можно добиться максимальной прозрачности управления стеком...


 
ketmar ©   (2009-01-23 10:55) [31]

>[28] test (2009-01-23 05:22:00)
>В одной очень старой книжке по программированию игр автор страниц 5 доказывал что
>игры можно писать не только на ассемблере!

и знаешь — во многих случаях он прав. что-то я не видел вменяемых игр для ZX Spectrum, например, написаных не на асме.

>[30] han_malign © (2009-01-23 10:37:00)
>ну а как же набор костылей и набор граблей — при функциональной декомпозиции?

никак. в отличие от цпп, цэ — хороший макроассемблер. и как хороший макроассемблер, он не делает неявных и неочевидных действий. я ж не против там ООП вообще, я против героиновых глюков трупа страуса. тот же Objective C намного логичней, приятней, красивей, удобней, проще и мощней. вдобавок совместим с простым C, а C++ нифига не совместим (я про перекомпиляцию исходников без правки).

---
All Your Base Are Belong to Us


 
Jukadze   (2009-01-23 11:19) [32]

>он не делает неявных и неочевидных действий.

Вся беда в том, что пользователи не хотят читать и запоминать руководства. Для C++ есть неплохое руководство: Annotated Reference Manual, где объясняются большинство неявных и неочевидных действий, а так же причины, по которым эти действия были введены. Поэтому, милочка, идите в сад.


 
ketmar ©   (2009-01-23 13:52) [33]

>[32] Jukadze (2009-01-23 11:19:00)
>Вся беда в том, что пользователи не хотят читать и запоминать руководства.

неа. не хочу. если что-то надо *запоминать* и это логически не очевидно, то это называется «костыль» или «грабли».

>Поэтому, милочка, идите в сад.
уй, пусичка. ты что, абиделась? ну пожуй фекалии ещё, пожуй — у тебя так яро и колоритно выходит…

---
Understanding is not required. Only obedience.


 
Jukadze   (2009-01-23 14:20) [34]

ketmar ©   (23.01.09 13:52) [33]

>неа. не хочу. если что-то надо *запоминать* и это логически не очевидно, то это называется «костыль» или «грабли».

Ну не хотите, так не пользуйтесь, и другим не мешайте. Если бы вы прочли ARM, то поняли бы, что все то, что вы называете костылями, есть логические следствия базового дизайна языка, который очень гибок и мультипарадигменнен. Ни что, как вы знаете, не дается бесплатно.

>ты что, абиделась?

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


 
Игорь Шевченко ©   (2009-01-23 14:25) [35]

ketmar ©   (23.01.09 02:22) [21]


> на цпп.


С ним что-то не так ? Можешь привести реальные аргументы ?


 
KSergey ©   (2009-01-23 14:38) [36]

> Игорь Шевченко ©   (23.01.09 14:25) [35]
> С ним что-то не так ? Можешь привести реальные аргументы?

Это кал из костылей и граблей! неужели нужны еще аргументы?!

PS
Меня всегда поражало ортодоксальное устройство мозгов юниксоидов. Видимо потому мне и не испытать кайфа от использования *nix, увы.


 
test   (2009-01-23 15:06) [37]

ketmar ©   (23.01.09 10:55) [31]
С тех пор ничего не изменилось?


 
ketmar ©   (2009-01-23 15:19) [38]

>[37] test (2009-01-23 15:06:00)
>С тех пор ничего не изменилось?

а я откуда знаю, о какой ты книге? ты сказал «старая». я тебе привёл пример. ты же даже архитектуру и время выпуска не уточнил.

---
Do what thou wilt shall be the whole of the Law.


 
ketmar ©   (2009-01-23 15:20) [39]

>[35] Игорь Шевченко © (2009-01-23 14:25:00)
>С ним что-то не так ? Можешь привести реальные аргументы ?

Игорь, мы с тобой это уже неоднократно обсуждали же.

---
Do what thou wilt shall be the whole of the Law.


 
ketmar ©   (2009-01-23 15:21) [40]

>[36] KSergey © (2009-01-23 14:38:00)
ну так оно и видно, незашореный наш.

---
Do what thou wilt shall be the whole of the Law.


 
test   (2009-01-23 15:31) [41]

ketmar ©   (23.01.09 15:19) [38]
Андре Ла Мот "Программирование игр" год ~1992 Операционка Дос 5-6


 
ketmar ©   (2009-01-23 16:20) [42]

>[41] test (2009-01-23 15:31:00)
однако ни разу не видел там «только на асме». а вот про то, что критические куски на асме — это было. и на то время было очень оправдано.

---
Do what thou wilt shall be the whole of the Law.


 
clickmaker ©   (2009-01-23 16:52) [43]

> [39] ketmar ©   (23.01.09 15:20)
> >[35] Игорь Шевченко © (2009-01-23 14:25:00)
> >С ним что-то не так ? Можешь привести реальные аргументы
> ?
> Игорь, мы с тобой это уже неоднократно обсуждали же.

мне вот тоже интересно: что с ним не так?


 
Eraser ©   (2009-01-23 17:30) [44]

ну вот, тема и перешла, как и ожидалось, в holywarчик, что и нужно было автору еще в 0 посте, с таким же успехом авторм мог заджать вопрос "А можно ли вообще для открытия HTML страниц использовать браузер Опера?". т.к. сам вопрос по-сути бессмысленный.

> А можно ли вообще при проектировании драйверов использовать
> ООП?

т.к. на него есть вполне четкий и однозначный ответ.
правильно ли это - использовать C++ или нет, это уже другой вопрос.


 
Добежал   (2009-01-23 17:35) [45]

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


 
Городской Шаман   (2009-01-23 17:36) [46]

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


 
Городской Шаман   (2009-01-23 17:39) [47]


> Eraser ©   (23.01.09 17:30) [44]
>
> ну вот, тема и перешла, как и ожидалось, в holywarчик, что
> и нужно было автору еще в 0 посте, с таким же успехом авторм
> мог заджать вопрос "А можно ли вообще для открытия HTML
> страниц использовать браузер Опера?". т.к. сам вопрос по-
> сути бессмысленный.


Не совсем. Скорее всего так "Можно ли для обработки xml-документов использовать компоненты web-броузера". Вопрос имеет вполне однозначный ответ с вариациями, в зависимости от типа xml-документа.


 
Игорь Шевченко ©   (2009-01-23 18:30) [48]

Городской Шаман   (23.01.09 02:04) [19]


> А можно ссылку на исходники данного драйвера, так как я
> в WinDDK\6001.18001\src\ не нашёл примеров использования
> ООП при разработке драйверов, поэтому и спрашивал.


Кто-то мешает поискать файлы cpp и просмотреть их ?


 
Городской Шаман   (2009-01-23 19:07) [49]


> Игорь Шевченко ©   (23.01.09 18:30) [48]
>
> Городской Шаман   (23.01.09 02:04) [19]
>
>
> > А можно ссылку на исходники данного драйвера, так как
> я
> > в WinDDK\6001.18001\src\ не нашёл примеров использования
> > ООП при разработке драйверов, поэтому и спрашивал.
>
>
> Кто-то мешает поискать файлы cpp и просмотреть их ?


Так уже нашёл. Но почему-то сама MS не очень приветствует использование С++ при проектировании драйверов.


 
ketmar ©   (2009-01-23 19:08) [50]

>[43] clickmaker © (2009-01-23 16:52:00)
>мне вот тоже интересно: что с ним не так?

а у меня пальцы давно заколебались перечислять всё заново.

вкратце: всё не так. курим Objective C, чтобы увидеть, что такое «так».

---
All Your Base Are Belong to Us


 
Игорь Шевченко ©   (2009-01-23 19:38) [51]

ketmar ©   (23.01.09 19:08) [50]


> курим Objective C


"Objective-C is a reflective, object-oriented programming language which adds Smalltalk-style messaging to C.

Today it is used primarily on Mac OS X, iPhone OS, and GNUstep, three environments based on the OpenStep standard, and is the primary language used for the NeXTSTEP, OPENSTEP, and Cocoa application frameworks."

Все ясно, очередная операционная система "Друг".

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


 
Городской Шаман   (2009-01-23 20:40) [52]


> ketmar ©   (23.01.09 19:08) [50]
>
> >[43] clickmaker © (2009-01-23 16:52:00)
> >мне вот тоже интересно: что с ним не так?
> а у меня пальцы давно заколебались перечислять всё заново.
>
>
> вкратце: всё не так. курим Objective C, чтобы увидеть, что
> такое «так».


Objective C - это Java после обрезания. В принципе тоже хорошо и удобно, но там совсем иная идеология программирования.


 
test   (2009-01-23 22:28) [53]

ketmar ©   (23.01.09 16:20) [42]
C++ все равно компилит в машинные коды, какая разница с какого языка идут машинные коды хоть с Бейсика, тут ИМХО играет роль здравый смысл программиста в первую очередь и потом как реализовано конкретным компилятором.


 
ketmar ©   (2009-01-24 04:40) [54]

>[51] Игорь Шевченко © (2009-01-23 19:38:00)
а, то есть ты не сам язык оцениваешь, а то, есть ли он под любимую игрозапускалку и пишут ли на нём в m$/кодожыр? так под игрозапускалку есть, да. а претензий конкретно к ObjC не вижу. наверное, потому, что ты его кагбэ не того? не шибко знаешь?

>[52] Городской Шаман (2009-01-23 20:40:00)
>Objective C — это Java после обрезания.

я думал, ты просто дурак — а ты идиот, оказывается.

>[53] test (2009-01-23 22:28:00)
>C++ все равно компилит в машинные коды, какая разница с какого языка идут машинные
>коды хоть с Бейсика

хочешь компилятор malbolge в машинный код? с условием, что ты мне предоставишь сначала рабочее «решето эратосфена» на нём. интерпретатор есть. ведь какая разница, всё равно потом на выходе машинный код получится, правда?

---
Understanding is not required. Only obedience.


 
test   (2009-01-24 07:58) [55]

Городской Шаман   (23.01.09 19:07) [49]
Это тот же MS который давно хочет написать обьектно-ориентированное ядро?

ketmar ©   (24.01.09 04:40) [54]
Malbolge — это машинный язык для виртуальной машины (интерпретатора), работающей в троичной системе счисления.

«Се&#769;тунь» — малая ЭВМ на основе троичной логики, разработанная в вычислительном центре Московского государственного университета в 1959 г. Единственная в своём роде ЭВМ, не имеющая аналогов в истории вычислительной техники.

Руководитель проекта — Н. П. Брусенцов, основные разработчики: Е. А. Жоголев, В. В. Веригин, С. П. Маслов, А. М. Тишулина.

Казанским заводом Математических машин было произведено 50 компьютеров Сетунь, 30 из них использовались в университетах СССР.
http://ru.wikipedia.org/

Что не так? Троичная логика или закрученный синтаксис? Теоретически с хорошим компилятором/оптимизатором можно...


 
ketmar ©   (2009-01-24 10:28) [56]

>[55] test (2009-01-24 07:58:00)
угу. «теоретически, при…» человек для субботы, или суббота для человека?

инструмент должен быть удобным. для высокоуровневого (да и местами низкоуровневого %-) классово-объектного подхода придуман Smalltalk. если при этом надо, чтобы компилировало старый C-код — ObjC. кое-чем пожертвовали, правда. ну так C всё-таки не Smalltalk. %-)

а местное школиё типа Шомы о том, что на свете есть Smalltalk может и слышало, но не более. у них вон жаба — вершина технологий, а не идиотское неудобоваримое произведение.

---
Understanding is not required. Only obedience.


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

ketmar ©   (24.01.09 04:40) [54]

Я же просил - отойди, случайно затопчут и не заметят. Мало ли на свете экзотики, что, всю ее бросаться изучать ? :) Жизни не хватит, будь она, экзотика, хоть трижды распрекрасной.

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

Я понимаю, что половой интерес такой, но может эта...лучше естественным путем ?


 
clickmaker ©   (2009-01-24 14:42) [58]

> [50] ketmar ©   (23.01.09 19:08)
> >[43] clickmaker © (2009-01-23 16:52:00)
> >мне вот тоже интересно: что с ним не так?
> а у меня пальцы давно заколебались перечислять всё заново.
>
> вкратце: всё не так. курим Objective C

курим Objective C - мне уже поздно, я уже старый -)
я уж как-нибудь остаток жизни промучаюсь на "всем не так" )


 
ketmar ©   (2009-01-24 15:46) [59]

>[57] Игорь Шевченко © (2009-01-24 13:09:00)
>Мало ли на свете экзотики, что, всю ее бросаться изучать ?

как минимум ту, которая не похожа на текущее используемое. хотя бы заглянуть — может, это какие-то идеи подкинет?

хотя я вот до хацкела так и не могу добраться пока. руки коротки. %-)

>Вот что странно — всем современным поклонникам линуксов доставляет
>удовольствие сам процесс кручения гаек в любимом детище

ну Игорь, ну не надо же за всю сеть, а? %-) мне вот не доставляет. я как настроил несколько лет назад — так и работаю. иногда ядра обновляю, но не часто. вот на новую технику практически те же настройки перенёс, только ядро пересобрал (старое ядро железяки не видело). и немного потрахался с обменом файлами (сдуру поставил NFS. потерял файла, заменил на sshFS. доволен и не трогаю больше). пол-часа ушло на роутинг (потому что никогда раньше не делал; не думаю, что с нуля в винде меньше уйдёт).

а новые софтины ставить, кстати — это вообще к виндузятникам. у многих манечка тыкать в комп софты откуда не попядя и неясного назначения.

>[58] clickmaker © (2009-01-24 14:42:00)
>курим Objective C — мне уже поздно, я уже старый -)
>я уж как-нибудь остаток жизни промучаюсь на «всем не так» )

тебя ж никто не заставляет на нём писать. я сам на C/C++ пишу сейчас, увы. однако ж почитать о нём стоит, я думаю.

---
Understanding is not required. Only obedience.


 
Игорь Шевченко ©   (2009-01-24 16:54) [60]

ketmar ©   (24.01.09 15:46) [59]


> как минимум ту, которая не похожа на текущее используемое.
>  хотя бы заглянуть — может, это какие-то идеи подкинет?


Хотя бы заглянуть и изучать - это все-таки разные вещи, согласись.


> ну Игорь, ну не надо же за всю сеть, а? %-)


Да опыт, понимаешь, общения с той же сетью :)
Рад бы не говорить, но если миллионы мух садятся на (пардон, холиварят на тему какой дистрибутив линукса круче и какой выбор пакетов при установке является единственно верным), то куда ж от впечатлений-то деваться ?

Да и собственный 12-летний опыт экспериментов с линуксом тоже наверное чего-то значит.


> а новые софтины ставить, кстати — это вообще к виндузятникам.
>  у многих манечка тыкать в комп софты откуда не попядя и
> неясного назначения.


"Отучаемся говорить за всю сеть" :)


 
ketmar ©   (2009-01-24 17:25) [61]

>[60] Игорь Шевченко © (2009-01-24 16:54:00)
>Отучаемся говорить за всю сеть

а я и не говорил. сравни: «всем современным поклонникам линуксов» и «у многих». %-)

---
Understanding is not required. Only obedience.


 
ketmar ©   (2009-01-24 17:26) [62]

>[60] Игорь Шевченко © (2009-01-24 16:54:00)
а в принципе — GNU/Linux фекалия. но увы — выбирать опять не из чего. винду не люблю по идеологическим причинам.

---
Understanding is not required. Only obedience.


 
Игорь Шевченко ©   (2009-01-24 17:34) [63]

ketmar ©   (24.01.09 17:26) [62]


> винду не люблю по идеологическим причинам.


Да ради Аллаха - я с твоими идеологическими причинами и не спорю вовсе. Просто Сервантеса почему-то вспомнил :)


 
ketmar ©   (2009-01-24 17:48) [64]

>[63] Игорь Шевченко © (2009-01-24 17:34:00)
так и я тебя не убеждаю винду бросать. я к тому, что далеко не все линуксоиды всё время что-то пилят. просто школиё, которое пилит — оно орёт, а остальные молчат. вот и создаётся впечатление.

---
All Your Base Are Belong to Us


 
Городской Шаман   (2009-01-24 18:56) [65]


> test   (24.01.09 07:58) [55]
>
> Городской Шаман   (23.01.09 19:07) [49]
> Это тот же MS который давно хочет написать обьектно-ориентированное
> ядро?


Угу они сделали еще хуже - хотят вынести разработку драйверов в User Mode (UMDF-технология), причём сделать так, чтобы драйвера можно было писать на .NET с интерпретируемым кодом. Так что .NET для разработки драйверов приветствуют, а вот С++ нет. Ну не идиоты?


 
Городской Шаман   (2009-01-24 19:03) [66]


> ketmar ©   (24.01.09 15:46) [59]
>
> >[58] clickmaker © (2009-01-24 14:42:00)
> >курим Objective C — мне уже поздно, я уже старый -)
> >я уж как-нибудь остаток жизни промучаюсь на «всем не так»
> )
> тебя ж никто не заставляет на нём писать. я сам на C/C++
> пишу сейчас, увы. однако ж почитать о нём стоит, я думаю.


У Objective C основная проблема в том, что он не поддерживает библиотеки на С++, по причине которого его сложно использовать для чего-то серьезного на платформе Win32/64.


 
Anatoly Podgoretsky ©   (2009-01-24 19:06) [67]

> Городской Шаман  (24.01.2009 18:56:05)  [65]

С++ чужой язык и МС сделало все чтобы похоронить его.


 
ketmar ©   (2009-01-24 19:50) [68]

>[66] Городской Шаман (2009-01-24 19:03:00)
>У Objective C основная проблема в том, что он не поддерживает библиотеки на С++

а у вертолёта основная проблема — отсутствие траков и заднего привода. ага.

---
All Your Base Are Belong to Us


 
ketmar ©   (2009-01-24 19:52) [69]

>[67] Anatoly Podgoretsky © (2009-01-24 19:06:00)
да если бы только его. у них даже C99 никак не поддерживается. как они пишут что-то для своего «компилятора» — мне не ясно. ладно, я даже не прошу вложеные функции, как в gcc, но хотя бы объявление переменных когда мне надо, а не в начале блока! но хотя бы стандартные заголовочные файлы! фиг там. m$ должна сдохнуть.

---
Do what thou wilt shall be the whole of the Law.


 
Игорь Шевченко ©   (2009-01-24 19:55) [70]

ketmar ©   (24.01.09 19:52) [69]


> но хотя бы объявление переменных когда мне надо, а не в
> начале блока!


Э...чего-то я не понял - это где нет объявлений не в начале блока ?


> m$ должна сдохнуть.


Ты собрался долго жить.


 
ketmar ©   (2009-01-24 19:59) [71]

>[70] Игорь Шевченко © (2009-01-24 19:55:00)
>Э…чего-то я не понял — это где нет объявлений не в начале блока ?

MSVS express 2008, win32 C. не C++. опапуленьки — не умеет. потому что с C99 никак не дружит. а в режиме C++ мой код не компилируется, потому что C++ нифига с C не совместим.

---
Understanding is not required. Only obedience.


 
Anatoly Podgoretsky ©   (2009-01-24 20:02) [72]

> ketmar  (24.01.2009 19:52:09)  [69]

Ну мне твоя боль за Микрософт но особо волнует.
А вот МС решило, что С++ не нужен. И вряд ли сдохнет МС, а вот другое вероятно.

ЗЫ: кстати и С в любых видах тоже особо не волнует.


 
Игорь Шевченко ©   (2009-01-24 20:12) [73]


> MSVS express 2008, win32 C. не C++. опапуленьки — не умеет.
>  потому что с C99 никак не дружит. а в режиме C++ мой код
> не компилируется, потому что C++ нифига с C не совместим.
>


Э...а что в простом С можно объявлять переменные где угодно ?
типа for (int i = 0; ....) ?

нафиг-нафиг такие примочки


 
ketmar ©   (2009-01-24 20:37) [74]

>[73] Игорь Шевченко © (2009-01-24 20:12:00)
>Э…а что в простом С можно объявлять переменные где угодно ?

нет, не где угодно. ты C++ написал. в C99 можно так:

int a = 5;
callMyCoolFunction(a);
inf f = 10;
callAnotherCoolFunction(f, a);
int res = callAnotherCoolFunctionEx(f, a);


а «компилятор» от m$ (как и всё, что они купили, а допилить не могут) до сих пор такого не понимает и ругается страшным матом. ну, я его тоже матом покрыл — шибко задолбусь исходники лопатить. и хидеры ему писать из стандарта. там даже несчастных unistd.h, stdint.h, inttypes.h нет. тьфу. к-к-к-компилятор, блин.

---
All Your Base Are Belong to Us


 
ketmar ©   (2009-01-24 20:38) [75]

>[73] Игорь Шевченко © (2009-01-24 20:12:00)
кстати, вот от такого объявления (в условиях if/for/while) я бы сильно не отказался, да…

---
Do what thou wilt shall be the whole of the Law.


 
Городской Шаман   (2009-01-24 20:43) [76]


> Игорь Шевченко ©   (24.01.09 20:12) [73]
>
> Э...а что в простом С можно объявлять переменные где угодно
> ?
> типа for (int i = 0; ....) ?
>
> нафиг-нафиг такие примочки


Проверил на VSC++ 2005.
for(int i = 0; i<10; i++); строка отлично скопилировалась. Что я делаю не так?


 
Городской Шаман   (2009-01-24 20:46) [77]


> ketmar ©   (24.01.09 20:37) [74]
> int res = callAnotherCoolFunctionEx(f, a);


Не может такого быть. Давай пример чтобы проверить. Кстати результат возвращаемый функцией при таком присваивании(с определением переменной) должен быть или простого типа или иметь конструктор копирования, так как в данном случе происходит не присваивание, а копирование объекта.

В данном случае всё должно работать.


 
Игорь Шевченко ©   (2009-01-24 20:48) [78]

ketmar ©   (24.01.09 20:37) [74]


> int a = 5;
> callMyCoolFunction(a);
> inf f = 10;
> callAnotherCoolFunction(f, a);
> int res = callAnotherCoolFunctionEx(f, a);


Ужос какой. Это в простом С ? Нафиг-нафиг


 
Городской Шаман   (2009-01-24 20:56) [79]


> ketmar ©   (24.01.09 19:52) [69]
>
> >[67] Anatoly Podgoretsky © (2009-01-24 19:06:00)
> да если бы только его. у них даже C99 никак не поддерживается.
>  как они пишут что-то для своего «компилятора» — мне не
> ясно. ладно, я даже не прошу вложеные функции, как в gcc,
>  но хотя бы объявление переменных когда мне надо, а не в
> начале блока! но хотя бы стандартные заголовочные файлы!
>  фиг там. m$ должна сдохнуть.


Компилятор настрой или файлы c в cpp переименуй.
Если компилировать с ключом /TC (Compile as C code) то используется стандарт ANSI C, в котором нельзя так делать.
По умолчанию стоит ключ /TP (Compile as C++ code), где допустимо объявление переменных после первой присваивающей инструкции.


Кстати, С99 несовместим с C++, поэтому нет и поддержки. В принципе оно там и не нужно. Все что нужно есть и на С++(STL + boost).


 
test   (2009-01-24 20:58) [80]

Игорь Шевченко ©   (24.01.09 20:48) [78]
#define foreve for(;;)

main(){
foreve;
}

И такое тоже работает ))


 
ketmar ©   (2009-01-24 21:03) [81]

>[77] Городской Шаман (2009-01-24 20:46:00)
это не C++, родной.

>[79] Городской Шаман (2009-01-24 20:56:00)
>Все что нужно есть и на С++(STL + boost).

я за тебя рад. а мне C++ в данном случае не нужно. тем более с бустом, который надо было удавить в зародыше.

---
Understanding is not required. Only obedience.


 
Игорь Шевченко ©   (2009-01-24 22:50) [82]

test   (24.01.09 20:58) [80]


> И такое тоже работает ))


#define - это неспортивно



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

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

Наверх





Память: 0.69 MB
Время: 0.043 c
15-1233229384
Лео
2009-01-29 14:43
2009.03.29
ужать видео


15-1232538759
SPeller
2009-01-21 14:52
2009.03.29
ICQ таки обломало сторонних клиентов?


3-1217426639
kirillrepin
2008-07-30 18:03
2009.03.29
как в ДБГриде наименование в две строки?


15-1232825575
Parus95
2009-01-24 22:32
2009.03.29
Определение Windows Mobile based устройства как USB Ethernet


2-1234250798
Iriss
2009-02-10 10:26
2009.03.29
наследник TObjectList





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский