Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Вопрос: C++ vs Basic | Добавлено: 21.03.05 18:24 |
Автор вопроса: ![]() |
Ответы | Всего ответов: 127 |
Номер ответа: 76 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #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 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #77 | Добавлено: 27.03.05 01:42 |
Sharp, мне не нужна кроссплатформенность, давай не будем умными словами (понтами) бросаться ![]() Попробуй заведомо ошибочный код: char* ptr="aaa"; lstrcat(NULL,ptr); ф-ция вернула ошибку и прога может анализировать результат и выполнять дальше те или иные действия. попробуй strcat(NULL,fmt); из столь горячо любимых си библиотек. Что? Рухнуло? Не вернуло ошибки? Отчего? Почему? Потому, что это не kernel. Так что делай свои кирпичи дальше, в надежде, что за тебя всё продумали и предусмотрели... И не надо забивать людям баки ![]() P.S. Пожалуйста, не надо рвать на отдельные слова и буквы мой пост, и не надо вкладывать в них свой смысл. Есть что сказать - наполни свои слова своим смыслом. |
Номер ответа: 78 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #78 | Добавлено: 27.03.05 03:36 |
Sharp, мне не нужна кроссплатформенность, давай не будем умными словами (понтами) бросаться Никогда не думал, что мне придется тебя просвещать, но раз ситуация обязывает... Кроссплафторменность нужна не только для того, чтобы твоя программа компилировалась под Линукс или Solaris, но и для того, чтобы она компилировалась на Win98 и, например, 64-битной Винде.
![]() И к краху используемые мной ф-ции не приведут, в отличие от stl, wtl и прочих разных библиотек. Если бы STL и WTL могли привести к краху, их бы не использовали серьезные программисты, до которых тебе еще расти и расти, судя по твоим утверждениями.
Что? Рухнуло? Не вернуло ошибки? Отчего? Почему? Ботай матчасть. Wintel не единственная в мире платформа и на момент создания C++ ее даже не было в проекте.
И не надо забивать людям баки Если ты считаешь помощь начинающему Си-программисту забиванием баков, я не буду больше тебя лечить. Буду насмехаться ![]() ![]() Пожалуйста, не надо рвать на отдельные слова и буквы мой пост, и не надо вкладывать в них свой смысл. Есть что сказать - наполни свои слова своим смыслом. Типа универсальная отмазка? Знаем, проходили.
|
Номер ответа: 79 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #79 | Добавлено: 27.03.05 05:06 |
Вот она где жизнь - во флуде ![]() |
Номер ответа: 80 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #80 | Добавлено: 27.03.05 11:39 |
Если бы STL и WTL могли привести к краху, их бы не использовали серьезные программисты
хи-хи, а MFC программисты не серьезные? толкьо не говори что это не так. Тебе уже я и Cresta сказали: не бросай свои тупые убеждения, как будто это самое правильное решение. Я знаю несколько программистов, из rsdn.ru, они кодят на MFC, так до их уровня, судя по твоим убеждения так точно никогда не дойти! Они создают хорошие С++ проги за несколько часов. Я использую STL - я уверен
Хе-хе, а я использую MFC, я не уверен??? Ещё как уверен. Вот давай так: доведи мне, что MFC , как ты сказал "кака". И ответь на мой ворпос std::vector<BYTE> что ты скажешь, в нем лучшего чем в CByteArray ??? |
Номер ответа: 81 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #81 | Добавлено: 27.03.05 12:07 |
Sharp, ты хочешь сказать, что stl-wtl, которые ты призываешь использовать, надёжней и правильней, чем kernel-user-shell, которые я использую? Да?
Ну-Ну... |
Номер ответа: 82 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #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 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #83 | Добавлено: 27.03.05 18:39 |
Таки на вопрос и не ответил ![]() ![]() |
Номер ответа: 84 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #84 | Добавлено: 27.03.05 18:54 |
Таки на вопрос и не ответил Перед тем как задавать вопросы имеет смысл научиться их задавать.
|
Номер ответа: 85 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #85 | Добавлено: 27.03.05 20:38 |
Искусством уходить от ответа ты овладел почти в совершенстве. ![]() |
Номер ответа: 86 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #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]; |
|