Вопрос № 109576: Добрый день, господа эксперты!
У меня вопрос по вызову функции класса dll-файла в другом exe-файле. Как нужно правильно вызывать функцию MyFunction?
MS VS 2003 +SP1...Вопрос № 109627: Здраствуйте !
Я хотел бы узнать можно ли создать програму на С++ для базы данных
написаной на SQl ? Существует ли какая виртуальная среда программирования на SQL в Windows OS ? Подскажите литературу по
написанию приложений на С++ по SQL ...Вопрос № 109651: Здравствуйте уважаемые эксперты.
Подскажите пожалуйста: есть три срр-файла, и два хедэра в одном из которых собраны заголовки хедэров АПИ необходимые для работы программы, в другом объявлены переменные проекта(глобальные). Подключение этих хедеро...
Вопрос № 109.576
Добрый день, господа эксперты!
У меня вопрос по вызову функции класса dll-файла в другом exe-файле. Как нужно правильно вызывать функцию MyFunction?
MS VS 2003 +SP1
Приложение:
Отправлен: 15.11.2007, 17:12
Вопрос задал: Solowey (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Sov
Здравствуйте, Solowey!
Вот статья на тему работы с dll. Надеюсь она вам поможет
http://www.citforum.ru/book/cook/dll0.shtml
Ответ отправил: Sov (статус: 8-ой класс)
Ответ отправлен: 15.11.2007, 17:35 Оценка за ответ: 5 Комментарий оценки: вроде разобрался...
Вопрос № 109.627
Здраствуйте !
Я хотел бы узнать можно ли создать програму на С++ для базы данных
написаной на SQl ? Существует ли какая виртуальная среда программирования на SQL в Windows OS ? Подскажите литературу по
написанию приложений на С++ по SQL ?
А вобще мне нужно:
- Сформировать структуру таблиц баз данных;
- Обеспечить требования нормализации таблиц;
- Сформировать SQL-запросы для создания таблиц баз данных с указанием, первичных и внешних ключей и требуемых ограничений, SQL-запросы для добавления, изменения и выборки необходимых данных.
- Запросы, указанные в условии задачи оформить в виде представлений.
При решении задачи предполагается использования серверных СУБД, обеспечивающих полную поддержку языка запроса SQL.
+ кроме всего етого создать приложение на С++ для етой базы даных.
Помогите мне please !!!
Отвечает: Лясин Александр Владимирович
Здравствуйте, Nikolas Franchsko Matrilotti!
Начнём по порядку.
1. Написать программу на C++ - которая работает с БД можно.
2. По поводу виртуальной среды - то её как таковой нет, но есть средства (в том числе и для Windows), которые позволяют работать с различными БД.
а) ODBC - очень старое средство, представляющее собой набор драйвров с унифицированным программным интерфейсом. По просту говоря - является одним из стандартов (один из самых старых) доступа к БД. На данный момент считается устаревшим - но отлично работает. Схема работы упрощённо следующая - с помощью драйвера (это dll) приложение подключается к БД, после чего есть возможность работать с БД с помощью SQL-запросов, а также создавать таблицы, удалять таблицы и т.п. Но в конечном итоге всё зависит от реализации
конкретного драйвера.
б) ADO - интерфейс для работы с БД более верхнего уровня - нежели DBC, в итоге, в случаях работы не с MS Access работает через тоже ODBC.
с) Это API для работы с сервером той платформы, с который хотите работать.
Для начала достаточно.
Если вас интересует теория построения БД и/или форма построения запросов - здесь http://www.proklondike.com/index.php?mainpart=5 вы найдёте много интересного.
Я бы для начала рекомендовал http://www.proklondike.com/contentview.php?content=184, Мартин Грубер "Понимание SQL".
Чтобы быстрее освоить работу с БД именно в С++ - можете установить Borland C++ Builder 6.0, т.к. в нём есть возможность "поэкспериментировать" с БД ещё на стадии проектирования программы.
Из серверных платформа для Windows я бы рекомендовал FireBird - это открытая платформа, её можно скачать и использовать абсолютно бесплатно.
Про него можно почитать здесь http://www.ibase.ru
Здравствуйте уважаемые эксперты.
Подскажите пожалуйста: есть три срр-файла, и два хедэра в одном из которых собраны заголовки хедэров АПИ необходимые для работы программы, в другом объявлены переменные проекта(глобальные). Подключение этих хедеров выполняется во всех срр-файлах через директивы условной компиляции (см. приложение). При линковке проекта (MSVS2003 .NET) получаю ошибки линкера : error LNK2005: ** already defined ** ( ** заменены конкретные имена переменных). Понимаю, что директивы не корректны, пересмотрел несколько учебников,
не пойму в чем ошибка. Заранее благодарю за ответы.
Отвечает: Vas177
Здравствуйте, Комаров Сергей Борисович!
Объявите глобальные переменные в файлах *.cpp:
int glob = 77; // можно определить значение по умолчанию
и т. д.
А в файлах *.h используйте ключевое слово extern для этих глобальных переменных:
extern int glob;
и т. д.
Ответ отправил: Vas177 (статус: 2-ой класс)
Ответ отправлен: 16.11.2007, 09:49 Оценка за ответ: 5 Комментарий оценки: Спасибо, про extern я совсем забыл:-)
Отвечает: Sergey A. Wedensky
Здравствуйте, Комаров Сергей Борисович!
Директива include просто вставляет в файл, где она появляется содержимое файла-аргумента. Получается, что у Вас 3 исходных файла cpp, во всех тех объявлены Ваши переменные. Компилятор, обрабатыавая уже второй файл, совершенно справедливо скажет, что такие переменные уже определены в первом.
Как верно заметил Vas177, глобальные переменные объявляются один раз в cpp-файле (можно, конечно и в хэдере, если он подключается только один раз, но все-равно плохой тон), а для доступа к ним из других можно использовать ключевое слово extern, которое говорит, что такая переменная должна быть объявлена где-то в другом модуле (если компоновщик нигде ее не найдет, скажет Unresolved external ...).
Ответ отправил: Sergey A. Wedensky (статус: Студент)
Ответ отправлен: 16.11.2007, 10:05 Оценка за ответ: 5 Комментарий оценки: Спасибо, про extern я совсем забыл:-), насчет плохого тона - возможно, у меня опыта еще мало, может подскажете, где можно почитать как грамотно структурировать проект?