Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 554
от 16.10.2006, 05:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 404, Экспертов: 51
В номере:Вопросов: 3, Ответов: 3


Вопрос № 58398: Здравствуйте! Подскажите пожалуйста сайты где можно посмотреть интересные примеры классов...тока начал их осваивать...хотелось бы рассмотреть несколько интресных примеров, чтобы дальше было легче в их написании... Заранее спасибо!...
Вопрос № 58448: Добрый вечер всем! Есть возможность взяться за проект, посвящённый реализации алгоритма задачи коммивояжора. От программы требуется не только удобный интерфейс и скорость работы, но и способность к расширению, а именно модульность. Был предложен ...
Вопрос № 58454: Здравствуйте! У меня такой вопрос: не могу освободить память из-под динамического массива структур. При запуске именно в месте удаления выдаётся ошибка следующего содержания: "Heap corruption detected: after Normal block (#182) at 0x0035550...

Вопрос № 58.398
Здравствуйте!
Подскажите пожалуйста сайты где можно посмотреть интересные примеры классов...тока начал их осваивать...хотелось бы рассмотреть несколько интресных примеров, чтобы дальше было легче в их написании...
Заранее спасибо!
Отправлен: 10.10.2006, 15:08
Вопрос задал: Минус (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Torsten
Здравствуйте, Минус!
www.codeproject.com
www.codeguru.com
Для Visual C++/MFC.


---------
#define MAGIC_NUMBER 0xdeface
Ответ отправил: Torsten (статус: 1-ый класс)
Ответ отправлен: 10.10.2006, 15:40


Вопрос № 58.448
Добрый вечер всем!
Есть возможность взяться за проект, посвящённый реализации алгоритма задачи коммивояжора. От программы требуется не только удобный интерфейс и скорость работы, но и способность к расширению, а именно модульность. Был предложен Delphi как среда разработки, но я лучше разбираюсь в Си++, и потому выбрал BCB для большей совместимости с Delphi библиотеками, написанными в будущем. Подскажите пожалуйста мне в следующих моментах:

1. как стоит правильно организовать общие для библотек данные. Я так понимаю, что есть некоторые массивы (ну для этой задачи необходимые) и алгоритмы, которые разными способами по ним "пробегают" так вот, стоит ли мне использовать стандартную библиотеку классов STL и поддерживается ли она в дельфи.

2. если нет, то выходит придётся пользоваться типичными массивами int** или лучше организовать свой класс и вывести его в DLLку и чтобы новые алгоритмы, просто наросто её использовали в своих целях.

3. посоветуйте идею вот этой модульности, во первых, какие модификатроы перед функциями и/или переменными или классами стоит использовать, чтобы в дальнейшем можно было писать библиотеки и на BCB и на Delhi. Стоит ли пользоваться экспортируемыми переменными, или правильнее только функциями и результатом (проблема в том, что зачастую результатом является путь, или точнее вектор или матрица).

4. подскажите пожалуйста, как организуется принцип как в миранде, а именно: я понимаю, что прога должна пробегать по каталогу с целью loadlibrary, но вот как мне загнать их к себе в общее меню, типа "алгоритмы" и в них будут выведены внутренние названия ну и возможно содержащие подменю. Может быть как ресурс TMainMenu в каждой биб. стоит создавать?!

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

5. И простите интересует меня понятие, чтобы в дальнейшем корректно спрашивать - всё, что я деляю, это называется SDK для некоторого приложения?! Посоветуйте ссылки, где о библиотеках можно побольше почитать, т.к. существующие у меня примеры отражают идеологию библиотек вскользь...

Спасибо заранее,
Vest
Отправлен: 10.10.2006, 22:04
Вопрос задал: Vest (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Sergey A. Wedensky
Здравствуйте, Vest!

1. В Delphi STL, конечно, не поддерживается. Это сугубо "сишные" библиотеки.
2. Организовать свой набор классов, с которыми и будут оперировать библиотеки (или даже экспортировать классы, уналедованные от них с переопределенными виртуальными функциями) - идея хорошая. Только боюсь, не возникло бы проблем с Delphi.
3. Главное, чтобы модель вызова была одинакова. Можно использовать __pascal. Насчет переменных - они, собственно, могут быть и массивами, векторами или матрицами...
4. Если создавать ресурс, то скорее popup menu, которое можно добавлять в свое меню "Алгоритмы". А оно уже может состоять из одного пункта, или из нескольких, или иметь подменю... Можно в каждом модуле потребовать наличия функции перечисления находящихся в нем алгоритмов с их названиями и пр.
Мне кажется, лучше сразу продумать возможные наборы входных и выходных данных - задача-то не слишком широка. Тогда и проблемы вывода результатов снимаются - выводить будет, конечно, Ваше приложение, всегда в одном стиле и пр. Ну а если все-же необходимо, можно узнавать у модуля типы и количество параметров, вручную их в стек засовывать... Но что в этих параметрах передавать-то Вы как узнаете?
5. SDK - это Software Development Kit, т.е. набор средств для разработки ПО. Мне кажется, Вы делаете несколько другое, а именно, приложение с возможностью расширения, т.е. написания встраиваемых модулей сторонними производителями.
О динамических библиотеках можете почитать, например,
http://www.rtfm.4hack.com/books.php?id1=8&id2=1&id3=13

Удачи!
Ответ отправил: Sergey A. Wedensky (статус: 4-ый класс)
Ответ отправлен: 11.10.2006, 10:30


Вопрос № 58.454
Здравствуйте!
У меня такой вопрос: не могу освободить память из-под динамического массива структур. При запуске именно в месте удаления выдаётся ошибка следующего содержания: "Heap corruption detected: after Normal block (#182) at 0x00355500 CRT detected that the application wrote to memory after end of heap buffer." Работает одинакого и при malloc/free, и при new/delete. Подскажите что-нибудь, пожалуйста!

Приложение:

Отправлен: 10.10.2006, 22:34
Вопрос задала: Verena (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Хватов Сергей
Здравствуйте, Verena!

Причина обычная - вы нагадили в динамическую память: записали за границей выделенного вам блока. Вот здесь (фрагмент в приложении) вы получили массив из ks-1 элемента и тут же заполнили ks элементов (от 0 до ks-1)

Дальше я не смотрел, так что возможно что есть и ещё места.

Приложение:

Ответ отправил: Хватов Сергей (статус: 6-ой класс)
Ответ отправлен: 10.10.2006, 23:02


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное