Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

 

  Вопрос: C++ vs Basic Добавлено: 21.03.05 18:24  

Автор вопроса:  Дмитрий Щапов

Ответить

  Ответы Всего ответов: 127  

Номер ответа: 76
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #76
Добавлено: 27.03.05 00:32
он ещё забыл такое: #include <vector>
Зачем? Я где-то использовал vector??? Сразу видно - MFCшник, подключим все, что можно, авось, круче будет.

Это шутка? Почти в каждом более менее сложном программном продукте любых разработчиков есть утечки! Это самая распостраненная ошибка!
Это самая обыкновенная глупость, оправдание нерадивых кодеров, которым лень аккуратно писать или грамотно проектировать.

и ещё, я думаю, что STL не оч. удобное стредство.
Сколько лет ты им пользовался, что делаешь такие заявления? И почему он включен в стандарт ISO, а вот твой любимый MFC нет?

Возьмем например байтовый массив из STL - std::vector<BYTE> что ты скажешь, в нем лучшего чем в CByteArray ???
Садись за книжки, ботай темплейты.

Ну вот ошибки:
Убедись в том, что STL установлен. Мне не ведомы дьявольские пути мысли программеров МС, они могли сделать его отдельно устанавливаемым/подключаемым. Убедись, что ты используешь в точности написанный мной код, без всяких .h после string.

Ребяты, написать и потестировать эту несчастную replace - 5 минут, так? Так.
Искать по всему свету эти хидеры, потом искать, что в них декларировано, что можно, что нет - это не один час. НАХРЕНА???
Ты уверен, что твое решение кроссплатформенно, будет понято любым программистом, ни при каких условиях не приведет к утечке памяти, вызову левого кода, краху стека? Я использую STL - я уверен. А ты нет.

Делаться же все равно через API будет.
Смешно.

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

Ответить

Номер ответа: 77
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #77 Добавлено: 27.03.05 01:42
Sharp, мне не нужна кроссплатформенность, давай не будем умными словами (понтами) бросаться :))). И понятно будет любому. И к краху используемые мной ф-ции не приведут, в отличие от stl, wtl и прочих разных библиотек.

Попробуй заведомо ошибочный код:
char* ptr="aaa";
lstrcat(NULL,ptr);
ф-ция вернула ошибку и прога может анализировать результат и выполнять дальше те или иные действия.

попробуй
strcat(NULL,fmt);
из столь горячо любимых си библиотек. Что? Рухнуло? Не вернуло ошибки? Отчего? Почему?
Потому, что это не kernel.

Так что делай свои кирпичи дальше, в надежде, что за тебя всё продумали и предусмотрели...
И не надо забивать людям баки :)))

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

Ответить

Номер ответа: 78
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #78
Добавлено: 27.03.05 03:36
Sharp, мне не нужна кроссплатформенность, давай не будем умными словами (понтами) бросаться :))).
Никогда не думал, что мне придется тебя просвещать, но раз ситуация обязывает... Кроссплафторменность нужна не только для того, чтобы твоя программа компилировалась под Линукс или Solaris, но и для того, чтобы она компилировалась на Win98 и, например, 64-битной Винде.

И к краху используемые мной ф-ции не приведут, в отличие от stl, wtl и прочих разных библиотек.
Если бы STL и WTL могли привести к краху, их бы не использовали серьезные программисты, до которых тебе еще расти и расти, судя по твоим утверждениями.

Что? Рухнуло? Не вернуло ошибки? Отчего? Почему?
Ботай матчасть. Wintel не единственная в мире платформа и на момент создания C++ ее даже не было в проекте.

И не надо забивать людям баки :)))
Если ты считаешь помощь начинающему Си-программисту забиванием баков, я не буду больше тебя лечить. Буду насмехаться :)))

Пожалуйста, не надо рвать на отдельные слова и буквы мой пост, и не надо вкладывать в них свой смысл. Есть что сказать - наполни свои слова своим смыслом.
Типа универсальная отмазка? Знаем, проходили.

Ответить

Номер ответа: 79
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #79
Добавлено: 27.03.05 05:06
Вот она где жизнь - во флуде :)

Ответить

Номер ответа: 80
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #80
Добавлено: 27.03.05 11:39
Если бы STL и WTL могли привести к краху, их бы не использовали серьезные программисты


хи-хи, а MFC программисты не серьезные? толкьо не говори что это не так. Тебе уже я и Cresta сказали: не бросай свои тупые убеждения, как будто это самое правильное решение. Я знаю несколько программистов, из rsdn.ru, они кодят на MFC, так до их уровня, судя по твоим убеждения так точно никогда не дойти! Они создают хорошие С++ проги за несколько часов.

Я использую STL - я уверен

Хе-хе, а я использую MFC, я не уверен??? Ещё как уверен.

Вот давай так: доведи мне, что MFC , как ты сказал "кака". И ответь на мой ворпос std::vector<BYTE> что ты скажешь, в нем лучшего чем в CByteArray ???

Ответить

Номер ответа: 81
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #81 Добавлено: 27.03.05 12:07
Sharp, ты хочешь сказать, что stl-wtl, которые ты призываешь использовать, надёжней и правильней, чем kernel-user-shell, которые я использую? Да?

Ну-Ну...

Ответить

Номер ответа: 82
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #82
Добавлено: 27.03.05 18:21
хи-хи, а MFC программисты не серьезные? толкьо не говори что это не так.
Конечно, нет. MFC непригоден для больших проектов, неудобен и громоздок для маленьких. Я бы мог найти тебе в гугле статью на тему "Почему MFC - это плохо: для маленьких", но думаю, что ты и сам с этим справишься и не будешь больше плакать "Ну почему моя погремушка плохая???" Потому что плохая и это далеко не только мое мнение.

Тебе уже я и Cresta сказали: не бросай свои тупые убеждения, как будто это самое правильное решение.
Ты полагаешь, что программирование на С++ под Винду делится на API и MFC, cresta не может найти стандартных инклюдов и скомпилировать простейший пример. Мне кажется смешным, что вы пытаетесь меня лечить.

Хе-хе, а я использую MFC, я не уверен??? Ещё как уверен.
И ты уверен, до определенной степени (кстати, меньшей, чем в случае STL, MFC никто не стандартизовывал и не отлаживал для промышленного применения), я говорил это о коде cresta.

И ответь на мой ворпос std::vector<BYTE> что ты скажешь, в нем лучшего чем в CByteArray ???
Я уже ответил. Если ты даже не представляешь, что такое темплейты или где про них прочитать, тогда иди в детсад.

Sharp, ты хочешь сказать, что stl-wtl, которые ты призываешь использовать, надёжней и правильней, чем kernel-user-shell, которые я использую? Да?
Если сравнивать функции одного уровня типа lstrcat и STL concat, тогда скажу, что первый вариант:
1) некроссплатформенный
2) может в принципе содержать ошибки, хотя бы потому, что у тебя нет его исходников
Однако ты пытаешься сравнить правильность и качественность своего кода, использующего kernel-user-shell, с правильностью самого kernel-user-shell, что весьма смешно. То, что ты написал на коленке за 5 минут никогда не сможет быть настолько же качественно, как то, что тысячи первоклассных программистов создавали, отаживали, использовали на протяжении 20-30 лет.

Ответить

Номер ответа: 83
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #83 Добавлено: 27.03.05 18:39
Таки на вопрос и не ответил :( Ушел в сторону и начал приводить доводы, не имеющие отношения к вопросу. Всё ясно :)))

Ответить

Номер ответа: 84
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #84
Добавлено: 27.03.05 18:54
Таки на вопрос и не ответил
Перед тем как задавать вопросы имеет смысл научиться их задавать.

Ответить

Номер ответа: 85
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #85 Добавлено: 27.03.05 20:38
Искусством уходить от ответа ты овладел почти в совершенстве. :)))

Ответить

Номер ответа: 86
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #86
Добавлено: 27.03.05 21:16
Если ты даже не представляешь, что такое темплейты или где про них прочитать


Вообще-то я уже имел дело с шаблонами (темплейтами). В одном проэкте я юзал
std::vector<BYTE> , но потом из-за незначителной утечки памяти у меня прога напрчь отказывалась делать a.push_back(). Когда я заменил темплейты на CByteArray , тогда эта утечка не создавала ничего плохого. Конечно, утечку убрал и работали 2 варианта, но всетаки...

ты давай мне ответь, почему я должен переходит из MFC на STL. Перечисли приемущества STL по сравнению с MFC (ой, только не надо о стандартизировании своём). А я тебе сразу могу перечислить приемущества MFC:

1.Более упрощеный для конечного юзера интерфейс работы (имеется ввиду не вид проги, конечно, а методы классов и т. п.)
2. Наличие классов CSocket и подобных, что при наследовании делает оч. удобным сетевое программирование.
3. Наличие хорошего визарда.

Ответить

Номер ответа: 87
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #87 Добавлено: 27.03.05 22:06
Почему работает только при NumError=2

LPCTSTR __stdcall DescriptionError(const int NumError){
std::string S;
switch(NumError){
case 0:return "Выполнено успешно.";
case 1:return "rg";
case 2:return "Ошибка 2.";
default:return strcat("Неопознанная ошибка X";);
}
}


Private Declare Function DescriptionError Lib "MyDLL.dll" (ByVal NumError As Long) As String

Ответить

Номер ответа: 88
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #88
Добавлено: 27.03.05 22:07
Искусством уходить от ответа ты овладел почти в совершенстве. :)))
МГУ научит :) Только в данном случае не я ухожу от ответа, а ты вопрос задал некорректно.

ты давай мне ответь, почему я должен переходит из MFC на STL.
Программист волен использовать то, что ему нравится. Не нравится STL - не ешь, однако хочу предостеречь против излишнего увлечения MFC. Это все-таки не панацея, у него очень много недостатков, например:
1) MFC навязывает не всегда удобную модель приложения, что приводит к непроизводительным затратам при разработке приложений несколько иного типа (читай, например, http://www.softcraft.ru/coding/winapi/mfcbad.shtml)
2) MFC больше не поддерживается
3) MFC - это не только красивые классы, которые все за тебя сделают (как думают и .NETчики), это так же 2-3 мегабайта системных DLLей. А если вспомнить, с какой интенсивностью программисты ругают VBшный рантайм...
4) MFC черезчур большой, поэтому программист часто вынужден вставлять куски API-кода, нарушая целостность приложения, вместо того, чтобы искать то, что ему нужно.
5) Уступает в продуктивности и VB6 и VCL
6) Недостаточно ООП, многое делается с помощью макросов
7) Визарды генерируют слишком много мусора
Таким образом, выводы примерно следующие:
2DaSharm: На MFC мир не замкнулся
2cresta: Надоест все самому писать

Ответить

Номер ответа: 89
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #89 Добавлено: 27.03.05 22:08
Уточню:
LPCTSTR __stdcall DescriptionError(const int NumError){
std::string S;
switch(NumError){
case 0:return "Выполнено успешно.";
case 1:return "rg";
case 2:return "Ошибка 2.";
default:return "Неопознанная ошибка X";
}
}

Ответить

Номер ответа: 90
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #90 Добавлено: 27.03.05 22:15
ну да, конечно.
У меня стоит
default:return strcat("Неопознанная ошибка №",NumStr(NumError));
 - И каким фигом она вываливает ошибку? Если просто указать текст, то всё замечательно.

 LPCTSTR NumStr(const int Num){
wsprintf(Buffer,"%i",Num);
return Buffer;
}
char Buffer[100];

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам