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

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


Информационный Канал Subscribe.Ru

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

Выпуск № 614
от 24.10.2004, 10:20

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1985
Отправлено ответов: 3799
Активность: 191.3 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

DiGiT
Статус: Доверительный
Общий рейтинг: 117.55
[Подробней >>]
DSota
Статус: Начальный
Общий рейтинг: 122.95
[Подробней >>]
Василевский Александр
Статус: Опытный
Общий рейтинг: 116.29
[Подробней >>]
 
bocha
Статус: Профессиональный
Общий рейтинг: 120.51
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 104.48
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 109.78
[Подробней >>]
 
Olga
Статус: Начальный
Общий рейтинг: 102.94
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1977. Здравствуйте! Почему некорректно работает моя программа? Вроде все в порядке.... (ответов: 4)
Вопрос № 1978. Здравствуйте уважаемые эксперты. Скажите пожалуйста, как делаются инсталляторы, состоящие всего из о... (ответов: 4)
Вопрос № 1979. Здравстуйте эксперты. Как на диалоге отобразить полноцветную картинку например jpg? Visual C++... (ответов: 2)
Вопрос № 1980. Здравствуйте! Пишу программы как учат в учебниках.Но тут наткнулась на программу,которая отличалсь. ... (ответов: 3)
Вопрос № 1981. Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, как сделать так, чтобы при копировании фай... (ответов: 2)

Вопросов: 5, ответов: 15


 Вопрос № 1977

Здравствуйте! Почему некорректно работает моя программа?
Вроде все в порядке.


Приложение:


Вопрос отправлен: 20.10.2004, 15:38
Отправитель: Alex

[Следующий вопрос >>] [Список вопросов]

Отвечает DiGiT

Доброе время суток, Alex!
А что считает х^3, вместо x^n ?
Только вот зачем x глобальная... Потом unsigned short не маловато ли ? Для 2^2 работать будет, а для 100^3 не будет уже. В общем программа так то работает, а вот в чем глючит остается догадываться...

Ответ отправлен: 20.10.2004, 17:58
Отправитель: DiGiT


Отвечает DSota

Приветствую Вас, Alex!
Не знаю, конечно, на каком Си ты ее компилируешь :))... Мне показалось, что ты ее списал из книги, и при этом пропустил некоторые символы... Программа полностью рабочая (после нескольких мелких исправлений внешнего вида)...

Приложение:

Ответ отправлен: 20.10.2004, 17:25
Отправитель: DSota


Отвечает Василевский Александр

Приветствую Вас, Alex!
Обратите внимание на условие в операторе if (recur):
if ( x = 3 )
Вы не сравниваете, а присвиваете значение переменной X. Исправьте на:
if ( x == 3 )
А вообще, на всякий случай, добавьте защиту от некорректных данных в функции recur ( n<0 ). Иначе Ваш цикл никогда не закончится.

Ответ отправлен: 20.10.2004, 15:54
Отправитель: Василевский Александр


Отвечает bocha

Доброе время суток, Alex!
к предыдущим ответам могу добавить, если уж у Вас возникла проблема с оператором сравнения, заведите привычку писать
if(1 == n)//так не ошибетесь

Ответ отправлен: 21.10.2004, 07:40
Отправитель: bocha


 Вопрос № 1978

Здравствуйте уважаемые эксперты.
Скажите пожалуйста, как делаются инсталляторы, состоящие всего из одного файла (например setup.exe), а при установке создающие (или распаковывающие ?) несколько файлов?



Вопрос отправлен: 20.10.2004, 22:27
Отправитель: Technic

[Следующий вопрос >>] [Список вопросов]

Отвечает Василевский Александр

Добрый день, Technic!
Насколько я помню, из одного файла состоит программы-архивы. Такие можно создать, использую WinRAR или WinZIP. Для этого необходимо указать, что создаётся SFX-архив. В результате будет создан один EXE-файл, который призапуске попросит ввести каталог и распакует туда всё содержимое. Можно также указать имя запускаемого файла.

Ответ отправлен: 21.10.2004, 09:01
Отправитель: Василевский Александр


Отвечает --- Нет данных ---

Приветствую Вас, Technic!
WinRar Sfx. Ваще шоколадная вещь, особенно после версий 3.20

Ответ отправлен: 23.10.2004, 12:53
Отправитель: --- Нет данных ---


Отвечает Gibbel

Здравствуйте, Technic!
Такие программы установки состоят из двух частей:
1. Установщик - обычный .exe файл, в задачи которого входит прочитать из второй части файла данные и распаковать их.
2. Архив - сами устанавливаемые файлы, сжатые каким-либо архиватором, или просто записанные последовательно в файл в том формате, в котором их принимает установщик.
Эти две части создаются по отдельности, после чего склеиваются в один файл.
Процесс чтения данных установщиком выглядит следующим образом (здесь приведены функции WinAPI, если вы пишете под другую систему, то необходимо использовать соответствующие функции вашей системы).
1. вызываем GetModuleFileName с первым параметром = NULL, в результате чего получаем имя и путь текущего файла (например, setup.exe).
2. Открываем этот файл на чтение функцией CreateFile с соответствующими параметрами.
3. Перемещаем указатель файла на начало данных (при этом предпологается, что длинну установщика мы знаем, либо мы ее вычисляем каким-либо образом). Функция SetFilePointer.
4. Читаем данные из файла функцией ReadFile и выполняем с ними все необходимые действия.
5. Закрываем файл (CloseHandle).

Ответ отправлен: 21.10.2004, 10:08
Отправитель: Gibbel


Отвечает DSota

Приветствую Вас, Technic!
Делаются специальной программой для создания инсталляторов, например: InstallShield Express, и др. При их отсутствии и большом желании можно просто написать скрипт для WINRar или WinZip. Написав скрипт - типа создать временный каталог, распаковать из себя нужные файлы, запустить один из них на выполнение, удалить этот каталог...


Ответ отправлен: 21.10.2004, 09:43
Отправитель: DSota


 Вопрос № 1979

Здравстуйте эксперты.
Как на диалоге отобразить полноцветную картинку например jpg?
Visual C++



Вопрос отправлен: 21.10.2004, 00:56
Отправитель: gvoZdok (ivan171@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает bocha

Доброе время суток, gvoZdok!
Переводишь ее в бмп и пользуешься стандартным апи.

Ответ отправлен: 21.10.2004, 08:10
Отправитель: bocha


Отвечает Gibbel

Доброе время суток, gvoZdok!
http://rsdn.ru/article/qna/gdi/drawimg.xml

Ответ отправлен: 21.10.2004, 10:22
Отправитель: Gibbel


 Вопрос № 1980

Здравствуйте!
Пишу программы как учат в учебниках.Но тут наткнулась на программу,которая отличалсь.
Например:
Надо ли после определения функции, а именно после закрытия фигурной скобки ставить точку с запятой?
Точка с запятой ставится только после определения класса!(Так учили) А тут после определения каждой функции стоит точка с запятой! Почему?
А еще когда полем класса является не обычная переменная а указатель (в моем случае указатель на указатель(матрица) или просто указатель ) то там тоже осбые методы нужны?
А еще хотела бы спросить чем отличается например Visual C++,Borland C++ и Builder C++?
Тем что каждый из них предназначен под свою ОС? или тем что например в VisualC++ есть свои библиотеки и классы типа STL,MFC?



Вопрос отправлен: 21.10.2004, 09:05
Отправитель: pinky

[Следующий вопрос >>] [Список вопросов]

Отвечает DSota

Приветствую Вас, pinky!
1. Точку с запятой можно ставить везде... Нельзя ее ставить толко посередине команд. Ее просто можно упускать после закрывающей фигурной скобки, так как она там подразумеваеться по умолчанию..
2. Особых методов не нужно, можно работать, как с обычным указателем...
3. Visual C++ и Builder C++ отличаются библиотеками... В Borland C++ труднее писать под виндовс, для этого ее переделали в Builder C++. А вообще она мало, чем отличаються, в синтаксисе языка. Отличаються только средой разработки - а она тоже почти одинакова... Выделяется только Borland C++ как найболее старый...

Ответ отправлен: 21.10.2004, 09:55
Отправитель: DSota


Отвечает Василевский Александр

Приветствую Вас, pinky!
Ответ на первый вопрос: точку с запятой после определений функций ставить необязательно. Как ни странно, компилятору всё равно, стоит точка с запятой или нет (сам удивлён).
На второй вопрос: никаких специальных определений для указателей нет:
int* ptr; // обычный указатель
class cl {
int* ptr; // указатель в классе
};
Ответ на третий вопрос: Borland C++ в основном работал под DOS. Borland C++ Builder изначально предназначался для работы под Windows, как и Visual C++. На данный момент, Borland C++ перерос в Borland C++ Builder и выпускаться прекратил (последняя мне известная версия Borland C++ - 5.0).
Все компиляторы, кроме стандартных библиотек и STL, содержат дополнительные собственные библиотеки (MS VC++ - MFC и ATL, BC++ Builder - VCL).
А вообще, выбор компилятора - дело вкуса. Изначально я использовал Borland C++, но потом перешёл на Visual C++ (т.к. моя версия Borland C++ жутко глючила).


Ответ отправлен: 21.10.2004, 09:35
Отправитель: Василевский Александр


Отвечает vitya

Приветствую Вас, pinky!
предлагаю попробовать.

Ответ отправлен: 21.10.2004, 16:54
Отправитель: vitya


 Вопрос № 1981

Здравствуйте, уважаемые эксперты!
Подскажите, пожалуйста, как сделать так, чтобы при копировании файла показывалось такое же окошко с прогрессбаром, какое показывается, когда копируются файлы в Windows.
Среда - С++Builder 5
Извините, если вопрос глупый.
Заранее благодарен всем ответившим.



Вопрос отправлен: 21.10.2004, 09:42
Отправитель: Alexandr

[Следующий вопрос >>] [Список вопросов]

Отвечает Olga

Добрый день, Alexandr!
Не знаю как в Builder, но в VisualC для этого использую функцию int SHFileOperation(LPSHFILEOPSTRUCT lpFileOp);

Ответ отправлен: 21.10.2004, 12:02
Отправитель: Olga


Отвечает vitya

Добрый день, Alexandr!
CopyFileEx

Ответ отправлен: 22.10.2004, 14:27
Отправитель: vitya



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (27)
C / C++ (16)
Perl (8)
Builder / Delphi (19)
Pascal (21)
Basic / VBA (9)
Java / JavaScript (6)
PHP (18)
Криптография (8)
WinAPI (15)
Радиоэлектроника (15)
Пользователю
Windows 95/98/Me (43)
Windows NT/2000/XP (63)
"Железо" (39)
Поиск информации (21)
Администратору
Windows NT/2000/XP (37)
Linux / Unix (14)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (6)
КоАП (5)

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





http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться

В избранное