Добрый день. Нужна помощь в отладке программы. В краткости расскажу. В первую очередь программист из меня никакой, уж сами понимаете девушкам блондинкам тяжело в написание программ. А программа у меня для дипломного проекта, которую я не могу откомпилировать. Данная программа была написана в 2003 году на на C++ Builder 5. Есть исходник (код программы) и есть полностью рабочая программа (дал дипломный проект мой знакомый, который уже сам забыл как и что делал, т.к. после института ни строчки кода не написал). Мне нужно внести в программу незначительные изменения и заново откомпилировать. Работаю в 5 версии, но при компиляции выдает ошибку
Код
[C++ Warning] CSPIN.h(201): W8027 Functions containing switch are not expanded inline[C++ Error] ViewFirmsGAll.h(75):
E2015 Ambiguity between 'TWordApplication' and 'Word_97::TWordApplication'
Я не знаю как исправить ошибки, помогите плиз, защита уже через 2 дня, а база не работает. могу скинуть рабочую программу и исходники. С Уважением, Настя.
C++ Builder 5 Помощь девушке в отладке программыC++ Builder 5 Ошибки при компиляции
Автор _Anton_, 30.05.2010, 23:43
#3
Отправлено 31.05.2010, 10:04:13
Видимо одноименные объекты в одной области видимости. Получается проблема с простанствами имен. Или вы используете компонент с word, который уже есть в стандартном 'TWordApplication' или разные версии компонента для работы с офисом. В общем компилятор не может определить какой файл использовать в компиляции, т.к. они похожи по названию и т.д.
#4
Отправлено 31.05.2010, 13:47:08
Здесь просто напросто ограничение в использовании оператора switch в inline функциях, уберите inline из объявления функции, а код лучше перенесите в cpp файл.[C++ Warning] CSPIN.h(201): W8027 Functions containing switch are not expanded inline[C++ Error] ViewFirmsGAll.h(75):
Где то раньше объявлен класс TWordApplication либо в глобальной области видимости, либо его пространство имён объявлено открытым с помощью служебного слова using namespace или using <какоето-имя>::TWordApplication.E2015 Ambiguity between 'TWordApplication' and 'Word_97::TWordApplication'
Компилятор не может сделать выбор какой класс использовать.
Там где Вы используете имя TWordApplication необходимо использовать префикс имени пространства имён т.е. Word_97 или <какоето-имя> или указать глобальный префикс :: в зависимости от того какой класс Вы хотитет использовать.
Удачи.
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0