Вопрос № 67230: Здравствуйте уважаемые эксперты. У меня проблема. При компиляции этой проги мне выдаёт 13 ошибок. Не могу понять их смысл. надеюсь на вышу помощь.
Суть проги: одномерный массив из N элементов(N <= 16), где меняются местами первый и второй...Вопрос № 67232: Здравствуйте уважаемые эксперты!
как правильно создать функции в различных модулях. Или скиньте ссылку, де об этом можно что-либо прочитать.
Заранее благодарна!=)...Вопрос № 67326: Доброе время суток!
Проблема с извлечением данных из структуры, которая передается в LPARAM. Код в приложении....Вопрос № 67332: Здравствуйте! Подскажите пожалуйста...уже какой день ищу ошибку. Ниже приведен код программы в C++Builder 6.
По заданию мне надо задать многоугольник и с помощью кнопок производить над ним некоторые действия (перемещения вправо, влево и т.д., вр...
Вопрос № 67.230
Здравствуйте уважаемые эксперты. У меня проблема. При компиляции этой проги мне выдаёт 13 ошибок. Не могу понять их смысл. надеюсь на вышу помощь.
Суть проги: одномерный массив из N элементов(N <= 16), где меняются местами первый и второй элементы, третий и четвёртый и т.д.
В прогу вставила коменты, для лучшего понимания.
Заранее благодарна за помощь!
Приложение:
Отправлен: 16.12.2006, 13:08
Вопрос задал: Spenser (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Bob Johnson
Здравствуйте, Spenser!
прежде всего, в 4-й строке надо писать
#define Max 16
без знака равно.
затем, в 65-й строке нужно в конце добавить ;
printf("Posle preobrazovanija: ");
Ответ отправил: Bob Johnson (статус: Академик) Россия, Калуга WWW:Программирование ---- Ответ отправлен: 16.12.2006, 13:39 Оценка за ответ: 5
Вопрос № 67.232
Здравствуйте уважаемые эксперты!
как правильно создать функции в различных модулях. Или скиньте ссылку, де об этом можно что-либо прочитать.
Заранее благодарна!=)
Отправлен: 16.12.2006, 13:11
Вопрос задал: Spenser (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Алексеев В.В.
Здравствуйте, Spenser!
Если вы имеете ввиду объявление функции в одном файле, а ее вызов в другом то делайте следующим образом:
Напишите саму функцию в одном из файлов, включите его в список компиляции(добавьте файл в проект в Visual Studio или добавьте его в makefile для консольных компиляторов).
Для вызова этой функции в другом файле можно:
а)Написать прототип этой функции в файле, где она вызывается
б)Написать прототип в файле с расширением .h и включить его в файл директивой #include
Приложение:
Ответ отправил: Алексеев В.В. (статус: 2-ой класс)
Ответ отправлен: 16.12.2006, 18:01 Оценка за ответ: 5
Вопрос № 67.326
Доброе время суток!
Проблема с извлечением данных из структуры, которая передается в LPARAM. Код в приложении.
Отвечает: Torsten
Здравствуйте, Белкин Алексей!
Ты создаешь MY_STRUCT локально для одной функции, поэтому при выходе из нее она удаляется. И соотвественно адрес указателя который ты присвоил LPARAM еще какой-то есть, но память там уже особождена и в ней либо находится уже другие данные, либо мусор.
Выделяй для своей структуры память динамически, чтобы она осталась после выхода из функции и естественно не забывай удалять где-нибудь в другом месте (в данном случае, удобно это сделать во 2-ой функции).
Приложение:
--------- #define MAGIC_NUMBER 0xdeface
Ответ отправил: Torsten (статус: 3-ий класс)
Ответ отправлен: 17.12.2006, 11:55 Оценка за ответ: 5
Отвечает: John Paramol
Здравствуйте, Белкин Алексей!
Достаточно создать структуру mmm статической (со спецификатором static).
PS. Если все же не в этом ошибка, есть у меня другое подозрение, пишите в мини-форум
--------- 1=2, at values 1 large enough
Ответ отправил: John Paramol (статус: 5-ый класс)
Ответ отправлен: 17.12.2006, 16:32 Оценка за ответ: 5 Комментарий оценки: спасибо за ответы!
Вопрос № 67.332
Здравствуйте! Подскажите пожалуйста...уже какой день ищу ошибку. Ниже приведен код программы в C++Builder 6.
По заданию мне надо задать многоугольник и с помощью кнопок производить над ним некоторые действия (перемещения вправо, влево и т.д., вращение по часовой и против а также сжатие и растяжение)
В программе заполняю массив TPoint точек а потом с помощью Polygon отображаю его.
Есть следующие кнопки.
Button1 рисует в скрол баре поля для ввода х и у координат вершин.
Button2 заполняет массив TPoint координатами вершин.
ToolButton7 поворачивает фигуру.
ToolButton2 движет её вправо.
Все едействия должны быть НЕ взаимосвязаны, т.е. если я повращал фигуру, то при нажатии на кнопк "вправо" она должна сдвинутся с места не от места куда я её повернул а из изначального положения, это же для перемещения. Должно потом вращатся из изначального положения.
Проблема в том что у меня вращения получается взаимосвязанным от перемещения, т.е. если я немного подвигал и начинаю вращать он вращает не из начального места а из передвинутого.
Посмотри пожалуйста код.
Заранее большое спасибо!!!
Приложение:
Отправлен: 17.12.2006, 08:25
Вопрос задал: Минус (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Tek
Здравствуйте, Минус!
Вы же не предусматриваете сохранения исходного положения. Точнее движение то работает с копией массива. А вот в процедуре сдвига вы изначально хоть присваиваете внутреннему указателю значение указателя основного массива вершин (хотя это верх наглости - сначала выделить НОВУЮ память под массив из n структур типа POINT, а потом единственный указатель на эту память затереть другим значением - утечка гарантирована, да еще и при каждом вызове процедуры движения), однако затем вы по этому укзателю и работаете, то
есть вы изменяете значения координат изначальных вершин.
Могу предложить тщательно почистить код - ооочень много лишнего и использовать следующую схему работы:
в каждой процедуре изменения многоугольника копировать САМ массив а НЕ его указатель в локальный, работать с ним можно и как сейчас в принципе и потом обязательно удалять после использования. Во всяком случае если вы не под .NET работаете - это там сборщик мусора есть :) и то я лично пока его в работе тщательно не опробовал, по-этому не буду советовать ему доверять.
--------- WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 3-ий класс)
Ответ отправлен: 18.12.2006, 09:53