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

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

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

Выпуск № 1135
от 17.10.2008, 16:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 420, Экспертов: 43
В номере:Вопросов: 5, Ответов: 11

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 146839: Здравствуйте, уважаемые эксперты! Хотелось бы услышать Ваше мнение. Если с целью изучения Visual C++ (в среде Visual Studio 2005) я читаю материалы MSDN, то могу ли я обойтись без книг по программированию? В программировании я новичок, MSDN хорошо...
Вопрос № 146859: Здравствуйте! Пишу программу mfc application dialog based в MSVS 2005. Пытаюсь добавить в ресурсы jpg-картинку, чтобы потом вывести её на контрол picture, но компилятор выдаёт ошибку error RC2170 : bitmap file resfon.jpg is not in 3.00 format. Пы...
Вопрос № 146864: Доброго времени суток, товарищи эксперты. Столкнулся с проблемой. Написал программу на С++ в VS 2005 WinXp, пробую запустить ее на другой winXp машине, не удается, ругается "не удается выполнить указанную программу" пробую запустить на ...
Вопрос № 146879: Всё же р ешил задать вопрос в с/с++... В своё время очень раздражало навязывание Юникода (да и сейчас). И тут представилась возможность заценить - из Ворда скопировал символ - стрелку вниз - в текст проги - в надпись айтема менюхи. Однако при прогоне ...
Вопрос № 146914: Доброго времени суток всем.Подскажите кто может пожалуйста. Дано задание,все пункты понятны,кроме одного:"Элементы динамической структуры данных является указатель на тип void." Все было бы понятно,если бы динамические данные были не массив...

Вопрос № 146.839
Здравствуйте, уважаемые эксперты! Хотелось бы услышать Ваше мнение.
Если с целью изучения Visual C++ (в среде Visual Studio 2005) я читаю материалы MSDN, то могу ли я обойтись без книг по программированию? В программировании я новичок, MSDN хорошо читаю на английском.
Отправлен: 11.10.2008, 21:13
Вопрос задал: Веронин Антон Михайлович (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Alexandr A. Rakunov
Здравствуйте, Веронин Антон Михайлович!
Перефразирую Ваш вопрос: "Заменяет ли справочник учебник"?
ИМХО ответ: "Конечно Нет!"
Ответ отправил: Alexandr A. Rakunov (статус: 6-ой класс)
Ответ отправлен: 11.10.2008, 21:24
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Значит, не зря я купил Хортона за 1200 руб.

Отвечает: Vest
Здравствуйте, Веронин Антон Михайлович!
Думаю да, но единственное что вам нужно, это знание синтаксиса языка. а МСДН ему не учит в удобном виде. Оно может привести примеры с ключевыми словами и описание. Но не больше.
И еще вам нужна возможность представления о том, что вы хотите написать. я не знаю как выразить это корректно :) скажем так, способность мыслить как программист. Это только с опытом и с желанием возможно достичь. Не кидайтесь учить функции, это раз, вы их со временем запомните, но обязательно посвящайте время прочтению описанию функционирования той или иной области в ОС (например что такое сообщения, чтотакое окно и как происходит запуск приложения в той или иной ОС). Иначе вы будете знать, что такое мьютекс, как его установить, а саму идею, для чего бы он был полезен - можете не поймать
Удачи вам, в познании МСДН да и всего мира программирования вцелом
---------
"Халявы не бывает" (c)
Ответ отправил: Vest (статус: 6-ой класс)
Ответ отправлен: 11.10.2008, 21:45
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: Verena
Здравствуйте, Веронин Антон Михайлович!
На самом деле, вопрос спорный. Если Вы знакомы с принципами программирования, с ООП и структурным подходом и разбираетесь в синтаксисе языка, то, в принципе, можно обойтись и без книг, другой вопрос, к какому уровню развития это приведёт. Некоторые моменты довольно сложно понять по MSDN, например, создание графического интерфейса или какие-то специфические свойства среды и компилятора. Также в книгах можно найти советы по оптимизации, описание широко используемых алгоритмов, рекомендации по алгоритмическому подходу к той или иной задаче, чтобы не изобретать каждый раз велосипед, который может оказаться и не так уж хорош, как оригинал. MSDN - по большей части просто очень полный справочник, но чтобы грамотно пользоваться справочником необходимо что-то знать. Здесь всё зависит от цели: изучить что-то серьёзное только по MSDN-у, не обращаясь к другим источникам, практически невозможно, хотя бы потому, что будут непонятны какие-то термин ы и основа методов. Грамотное программирование подразумевает знание и теории тоже, а её из справочника почерпнуть не так просто. Впрочем, не обязательно обращаться именно к книгам, можно читать статьи и практикумы в интернете, особенно, если английский язык - не проблема. На том же MSDN-online можно найти много полезных вещей кроме самого справочника.
В общем, скажу так, изучив MSDN Вы сможете писать какие-то программы, но будете делать это как бы "вслепую", что плохо для любой действительно профессиональной деятельности.
Напоследок, могу посоветовать несколько ресурсов:
Хороший набор книг и алгоритмов по разным языкам программирования
Много интересных алгоримов с реализацией и статей на разных языках
Пошаговые курсы для изучения разных языков
Алгоритмы и электронные курсы
Множество доступных для скачивания книг по программированию
Удачи!
---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 11.10.2008, 21:48
Оценка за ответ: 5
Комментарий оценки:
Исчерпывающий ответ. Спасибо!

Отвечает: Olegzp
Здравствуйте, Веронин Антон Михайлович!
Ответ простой нет. MSDN предназначен для опытных программисто. Для изучения программирования могу посоветовать http://www.firststeps.ru/(первые шаги - много хороших примеров для новичков), хорошая коллекция книг http://wmate.ru/ebooks/cat5/,
справочники для программистов http://netcode.ru/download/,RSDN.RU, если знаеш английский http://www.codeproject.com/
Ответ отправил: Olegzp (статус: 3-ий класс)
Ответ отправлен: 12.10.2008, 15:24
Оценка за ответ: 5


Вопрос № 146.859
Здравствуйте!
Пишу программу mfc application dialog based в MSVS 2005. Пытаюсь добавить в ресурсы jpg-картинку, чтобы потом вывести её на контрол picture, но компилятор выдаёт ошибку error RC2170 : bitmap file resfon.jpg is not in 3.00 format. Пыталась искать в интернете, но так и не нашла конкретно, что это за формат и что сделать с картинкой, чтобы она ему соотвествовала. Подскажите, пожалуйста, кто знает.
Спасибо!
Отправлен: 11.10.2008, 23:51
Вопрос задала: Verena (статус: Практикант)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: mega
Здравствуйте, Verena!

По следующей ссылке описано решение аланогичной проблемы: http://forum.vingrad.ru/index.php?showtopic=230466&view=findpost&p=1655667
в данном случае разница jpg и png не играют роли, таким рбразом вы можете добавить любой файл в ресурсы
Ответ отправил: mega (статус: 5-ый класс)
Ответ отправлен: 12.10.2008, 00:08
Оценка за ответ: 5
Комментарий оценки:
Спасибо, сама я не вышла на эту страничку. Однако, интересно, нельзя ли всё-таки как-то менее топорно эту проблему решить?

Отвечает: Olegzp
Здравствуйте, Verena!
Самый простой способ, при помощи любого графического редактора переконвертировать в формат BMP
Ответ отправил: Olegzp (статус: 3-ий класс)
Ответ отправлен: 12.10.2008, 14:24
Оценка за ответ: 4
Комментарий оценки:
Спасибо, но до этого я и сама додумалась :) Просто bmp по объёму значительно больше.


Вопрос № 146.864
Доброго времени суток, товарищи эксперты. Столкнулся с проблемой. Написал программу на С++ в VS 2005 WinXp, пробую запустить ее на другой winXp машине, не удается, ругается "не удается выполнить указанную программу"
пробую запустить на winVista машине "Не удалось запустить приложение,поскольку его паралельныя конфигурация неправильна.Дополнительный свдения содержатся в журнале событий приложений"

Подскажите, в какую сторону копать? что-то слышал, что проблема может быть в неких манифестах
Отправлен: 12.10.2008, 00:25
Вопрос задал: Chip (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Alexandr A. Rakunov
Здравствуйте, Chip!
для начала наличие библиотек mfc проверьте.
system32mfc*.dll
их много какой софт по автоматически ставит, но на свежих системах их часто нет.
другой вариант использовать в программе статическую линковку.

а наличие/отсутствие манифеста на запуск не должно влиять.
Ответ отправил: Alexandr A. Rakunov (статус: 6-ой класс)
Ответ отправлен: 12.10.2008, 00:36
Оценка за ответ: 4

Отвечает: Vest
Здравствуйте, Chip!
Попробуйте проверить, одинаковая ли платформа на ваших машинах. Вы могли скомпилировать на 64 битной платформе а запускать на 32.
Либо с помощью, например, плагина Тотала Коммандера (fileinfo) посмотреть какие иблиотеки она за соой должна тянуть. Возможно их просто нет в новой системе.
Ну и убедитесь, мало ли вы скомпилировали с отладочной информацией. тоже может быть причиной...
Счастливо
---------
"Халявы не бывает" (c)
Ответ отправил: Vest (статус: 6-ой класс)
Ответ отправлен: 13.10.2008, 17:53


Вопрос № 146.879
Всё же решил задать вопрос в с/с++... В своё время очень раздражало навязывание Юникода (да и сейчас). И тут представилась возможность заценить - из Ворда скопировал символ - стрелку вниз - в текст проги - в надпись айтема менюхи. Однако при прогоне программы поимел квадратик :-(
За что боролись? Или что-то не так сделал?

Приложение:

Отправлен: 12.10.2008, 10:12
Вопрос задал: effort (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Vest
Здравствуйте, effort!
Знаете? Вот если честно, я раньше думал также как и вы, но теперь все свои программы пишу с использованием Юникода. Не делайте свою программу узко востребованной...
А по поводу вашей проблемы. Во-первых, в шрифтах Виндоуз, которые вы используете в данный момент, должна быть поддержка юникода. Иначе вам нечего будет отображать. Во-вторых, посмотрите какой именно функцией вы отображаете ваш символ, так как ВСЕ функции WinAPI поддерживающие юникод должны оканчиваться на W (Wide), а не на A (ANSI кажется). В-третьих, ваша программа ДОЛЖНА быть скомпилирована с поддержкой юникод. Так как все функции в win32.h это есть директивы препроцессора, который в зависимости от конкретной директивы подставляет функции либо с A либо с W (в целях совместимости, вы можете использовать как и раньше функции без окончаний, но скорее всего будет использоваться A). В-четвертых, посвятите отдельно время для изучения юникод. Поймите, юникод - это очень важная вещь, полезная и простая. Реализация в windows просто, простите, кривая, но и это можно понять.
Удачи Вам
---------
"Халявы не бывает" (c)
Ответ отправил: Vest (статус: 6-ой класс)
Ответ отправлен: 13.10.2008, 18:00


Вопрос № 146.914
Доброго времени суток всем.Подскажите кто может пожалуйста. Дано задание,все пункты понятны,кроме одного:"Элементы динамической структуры данных является указатель на тип void." Все было бы понятно,если бы динамические данные были не массивами.Вопрос,чисто теоретически что хотят в задание и второй вопрос,можно ли зделать из указателя на void массив?
т.е. void* mas;int* arr=new int[n];
for(int i=0;i<n;i++)
mas[i]=arr[i];
Зарание всем спасибо.
Отправлен: 12.10.2008, 13:51
Вопрос задал: Arias (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Alexandr A. Rakunov
Здравствуйте, Arias!
Да делайте что угодно:
void* mas;
// mas надеюсь инициализирован, т.е. реально указывает на данные
int* arr = new int[n];
int* pdata = reinterpret_cast<int*>(mas);
for(int i=0; i<n; i++)
pdata[i]=arr[i];
Ответ отправил: Alexandr A. Rakunov (статус: 6-ой класс)
Ответ отправлен: 12.10.2008, 20:11
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо!!!

Отвечает: Vest
Здравствуйте, Arias!
Видите ли в чем загвоздка, как бы сказал ворд, на мой взгляд, ваша цитата (вопрос) - не согласованное предложение. А именно обратите внимание на окончания. Ну да ладно.
void - это безразмерный тип данных. И, на мой взгляд, делать из него массив - это не есть корректно. Но! Вы можете приравнивать любой другой указатель вашему void, а именно:
void* mas;
int* pi = new int[10];
mas = pi;
так как void не имеет размера, значит компилятор не может отсчитать i-ый элемент от первого (он же не знает сколько байт надо отступать): конструкция mas[i] не верна. Вы можете использовать этот указатель как нечто промежуточное для интерпретации тех данных на которые вы указывали вначале. То есть вы, допустим записали 10 4-х байтовых чисел, а можете считать как 40 однобайтовых.
Теперь вопрос насчет массивов из указателей.... Интересно... теоретически, если указатель имеет длину 4 байта (ну или 8 на 64 платформе), то его можно обобщать в массив. Знаете? и нтересно. попробуйте - может быть конструкция void**, имеет место быть. Но вот для того чтобы сопоставить ей некоторое практическое применение, я пока затрудняюсь отвечать. Понимаете? Хранить РАЗЛИЧНЫЕ типы данных, причем после преобразования не будет известно КАКИМИ они были ВНАЧАЛЕ... как-то нелогично. Проще завернуть это все в классы, а потом объекты. и пользоваться ими...
Короче, удачи вам в ваших теоретических изысканиях :)
---------
"Халявы не бывает" (c)
Ответ отправил: Vest (статус: 6-ой класс)
Ответ отправлен: 13.10.2008, 17:49
Оценка за ответ: 5
Комментарий оценки:
дык,мне и надо все это сделать в классах и наследование классов))загвоздка для меня в том,что в задание все динамические данные класса состоят из указателей на void,по этому и не знаю как тут быть


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.6 от 14.10.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru
RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

В избранное