Вопрос № 82698: кто нибуть обьясните мне зачем нужен оператор extern(тоесть какие модули им подключяются и зачем это нужно например)поподробней и доступным языком..спасибо...Вопрос № 82810: Всем здрасьте!
Срочно требуются ссылки на ресурсы с подробнейшим описание работы с базами данных, а именно с MsAccess, чтение запись итд итп. Пожалуйста помогите
Спасибо....Вопрос № 82815: Доброе время суток, эксперты. Вся наденжда на вас. Приведите пожалуйста пример работы с mp3 файлом. Везде где я ищу его описание везде только заголовок а тела нету. Мне нужно к примеру написать прогу которая формирует mp3 файл и содержит допустим зву...Вопрос № 82838: Здраствуйте уважаемые эксперты! Помогите пожалуйста. Делаю курсовую по програмированию. Работаю с потоками данных. Компилятор ругается.
Подскажите какую библиотеку подключить, что бы работали seekp(...,ios::...); или seekg(...,ios::...); Вроде библио...
Вопрос № 82.698
кто нибуть обьясните мне зачем нужен оператор extern(тоесть какие модули им подключяются и зачем это нужно например)поподробней и доступным языком..спасибо
Отвечает: Allex
Здравствуйте, Стаховский Валерий Генриковичь!
В языках С/С++ нет такого понятия модуля, как, например, в Pascal. Считается, что исходная программа состоит из набора файлов (*.c или *.cpp), которые подаются на вход компилятору. Каждый файл компилируется отдельно, информация из других *.cpp файлов при этом не используется. Результатом компиляции одного файла является объектный файл *.obj. Линковщик из всех *.obj файлов собирает программу (*.exe).
Теперь об extern. Понятное дело, что возникает необходимость использовать в одном файле сущности (переменные, функции), определенные в других файлах. Поэтому кроме определения у таких общих сущностей бывают ещё и объявления, которые как раз и помечаются ключевым словом extern. Объявление говорит о том, что данная сущность определена в каком-то другом файле. Если сущность объявлена, используется, но нигде не определена, все *.cpp файлы скомпилируются, а об ошибке будет сообщение на этапе сборки-линковки.
Если сущность используется в нескольких *.cpp файлах, её требуется объявить в каждом из них. Чтобы не переписывать объявления несколько раз, их выносят в отдельный файл (*h, от слова header, заголовок), а в *.cpp файл вставляют директиву препроцессора #include "file.h" Эта директива означает, что вместо нее должно быть вставлено содержимое файла с указанным именем.
Приложение:
Ответ отправил: Allex (статус: 8-ой класс)
Ответ отправлен: 15.04.2007, 21:30 Оценка за ответ: 5
Отвечает: Корсак Александр Юрьевич
Допустим у нас есть процедура, написанная на асм'е и код основной программы на С.
Тогда, чтобы С использовала процедуру из асм'а, пишем:
//asm_procedure.asm
.model small,c
.stack 100h
.code
PUBLIC asm_procedure;
asm_procedure proc
push bp
mov bp,sp
// код процедуры
pop bp
ret
asm_procedure endp
END
КОМПИЛИМ в obj и далее совместной линковкой в exe
Ответ отправил: Корсак Александр Юрьевич (статус: 1-ый класс)
Ответ отправлен: 16.04.2007, 11:12 Оценка за ответ: 5
Отвечает: kool
Здравствуйте, Стаховский Валерий Генриковичь!
Оператор extern означает, что переменная
будет объявлена и инициализирована в каком либо файле
(или как называется) в каком либо модуле, содержащим текст проги,
и входящим в проект.
Например, в проекте есть два файла 1.cpp и 2.cpp.
В 1.cpp объявлена переменная int x=0;
Эту переменную нужно использовать в тексте проги, кот. нах-ся
в файле 2.cpp.
Тогда в 2.cpp пишем
extern int x;
И используем эту переменную.
Если написать int x;
сам увидишь, что сакажет компилер.
Удачи!
--------- I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 16.04.2007, 18:35 Оценка за ответ: 5
Отвечает: Ilkras
Здравствуйте, Стаховский Валерий Генриковичь!
Здравствуйте, Стаховский Валерий Генриковичь!
этот оператор сообщает компилятору, что данного, перед которым он стоит, не надо искать в данном файле (вместе с инклюдами). В результате компилятор вынесет это имя в отдельную таблицу и уже линкер будет искать где это данное.
Например мы определям extern int a; тем самым мы говорим компайлеру, что не надо выделять 4 байта для хранения этой величины. Эти 4 байта будут выделены в другом модуле. Позднее, при линковке, все наши обращения к этой величине будут переадресованы к реальному месту хранения. Если бы мы не поставили слова extern, то компайлер выделил бы эти 4 байта в текущем модуле. Все наши обращения были бы направлены в эту локальную переменную. Позднее линкер бы дал ошибку, что есть 2 переменные с одним имене
Ответ отправил: Ilkras (статус: 7-ой класс)
Ответ отправлен: 16.04.2007, 23:48 Оценка за ответ: 5
Вопрос № 82.810
Всем здрасьте!
Срочно требуются ссылки на ресурсы с подробнейшим описание работы с базами данных, а именно с MsAccess, чтение запись итд итп. Пожалуйста помогите
Спасибо.
Отправлен: 16.04.2007, 16:48
Вопрос задал: Tatarin (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Olegzp
Здравствуйте, Tatarin!
книги по Ms Access
http://wmate.ru/ebooks/cat56/
книги по с++
http://wmate.ru/ebooks/cat5/
"C++ Builder: Книга рецептов" http://wmate.ru/ebooks/book143.html
C++ Builder в задачах и примерах http://wmate.ru/ebooks/book221.html
можно посмотреть на http://firststeps.ru/
Ответ отправил: Olegzp (статус: 2-ой класс)
Ответ отправлен: 16.04.2007, 19:46 Оценка за ответ: 5 Комментарий оценки: Иду смотреть.
Вопрос № 82.815
Доброе время суток, эксперты. Вся наденжда на вас. Приведите пожалуйста пример работы с mp3 файлом. Везде где я ищу его описание везде только заголовок а тела нету. Мне нужно к примеру написать прогу которая формирует mp3 файл и содержит допустим звук ноты до или гамму до мажок ну или в общем что-нибудь, какой-нибудь звук. Подскажите .Спасибо.
Отвечает: Sling
Здравствуйте, Александр Михайлович!
В принципе можно. Но дело в том, что сам по себе mp3 не работает с нотами. только со звуками определённой частоты. Для работы с мп3 никаких стандартных библиотек нету (точнее может и есть, но не для редактирования звука, а для изменения, скажем названия трека или других параметров)
С нотами работает формат midi. Причём создать его, если очень нужно, можно даже ручками, изучив документацию или опытным путём :). А потом с помощью каких-нибудь библиотек midi сконвертировать в Guitar Pro.
Возможно, в Сети получится найти написаные кем-нибудь библиотеки для работы с midi (а может даже с mp3, но это маловероятно)
Прошу прощения за отсутствие конкретики в ответе, но самому сталкиваться с подобной проблемой не приходилось.
--------- The fear of blood tends to create fear for the flesh
Ответ отправил: Sling (статус: 3-ий класс)
Ответ отправлен: 16.04.2007, 21:12
Отвечает: Sergijj
Здравствуйте, Александр Михайлович!
MP3 - это 3-я глобальная модификация формата MPEG. Т.е. данные в нём хранятся не в сылом виде, а "упакованы" (с потерями) некоторым образом.
Ссылка на исходники библиотеки mp3 в приложении.
Нужно нажать "Click Here".
Успехов!
Приложение:
--------- Стучитесь! И Вас откопают...
Ответ отправил: Sergijj (статус: 9-ый класс)
Ответ отправлен: 17.04.2007, 09:58
Вопрос № 82.838
Здраствуйте уважаемые эксперты! Помогите пожалуйста. Делаю курсовую по програмированию. Работаю с потоками данных. Компилятор ругается. Подскажите какую библиотеку подключить, что бы работали seekp(...,ios::...); или seekg(...,ios::...); Вроде библиотеки iostream и fstream подключила. А все равно не работает. Помогите!