Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ambiguity between 'Windows'

1.2K
20 января 2006 года
richel
142 / / 20.01.2005
Допустим, у меня есть 3 формы. На формах 1 и 2 есть компоненты TWordApplication. Я создаю коды для работы с Вордом на этих формах, работаю с таблицами и все прекрасно работает. На форме 3 мне тоже нужно работать с Вордом. Я подумала, а зачем мне плодить компонент, когда могу сослаться на тот, который уже есть на форме 1. Так и сделала. Все работает.
Потом я подумала, а зачем мне тогда тот же компонент на 2 форме. Я его уберу, а сделаю ссылку для Application на форму 1 (ну как в форме 3). Но не тут то было. Появилось огромное количество сообщений типа
Цитата:
[C++ Error] ComCtrls.hpp(2638): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'
[C++ Error] ComCtrls.hpp(3706): E2015 Ambiguity between 'Menus' and 'Word_2k::Menus'


и куча стандартных библиотек Билдера, где якобы я должна исправить Windows на 'Word_2k::Windows'. Но во первых, править библиотеку нежелательно, а во-вторых, например, такой вариант 'Word_2k::Windows::Dialogs выдает ошибку (это единичный пример, а их множество).
Когда компонент TWordApplication возвратила на форму 2 и убрала ссылку, все заработало.
Кто мне может объяснить, что это за фигня такая?
Т.е., еще раз обозначу проблему: если на форму кинут компонент TWordApplication, а затем его нужно убрать и подключиться к этому компоненту с главной формы, то возникает ошибка. Если создать форму и не прописывать компонент, а только дать ссылку на главную форму, то все работает.

315
20 января 2006 года
Nick_M
399 / / 29.05.2003
А на какие файлы ругаеться? Я например работаю с исправленными заголовочными файлами ComCtrls.hpp и ExtDlgs.hpp. Все прекрасно работает. А так появлялась ошибка типа твоей. Я правда не использую компоненты: работаю через OLE.
246
20 января 2006 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by richel

...
Появилось огромное количество сообщений типа
и куча стандартных библиотек Билдера, где якобы я должна исправить Windows на 'Word_2k::Windows'.
...


The using directive allows the names in a namespace to be used without the namespace-name as an explicit qualifier. Of course, the complete, qualified name can still be used to improve readability.

1.2K
23 января 2006 года
richel
142 / / 20.01.2005
Я попробовала заново создать проект. На первую форму кинула компонент TWordApplication. Вторая форма запускается с 1-й. И выявила, что недоразумения начинаются в тот момент, когда в хедере 2 формы подключаю файл из библиотеки EhLib #include "DBGridEh.hpp". До ее подключения компеляция проходит нормально. Например, 1.h:
Код:
#ifndef MenuFormH
#define MenuFormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <ComCtrls.hpp>
#include <Controls.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <ImgList.hpp>
#include <Menus.hpp>
#include <StdCtrls.hpp>
#include "glBevel.hpp"
#include "glLabel.hpp"
#include <math.h>
#include <ToolWin.hpp>
#include <Buttons.hpp>
#include[list=1]
#include "Word_2K_SRVR.h"

Для 2.h:
Код:
#ifndef CardFormH
#define CardFormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <ComCtrls.hpp>   //TPageControl
#include <Controls.hpp>
#include <DB.hpp>
#include <Dialogs.hpp>
#include <ImgList.hpp>
#include <Menus.hpp>
#include <Buttons.hpp>   //TSpeedButton
#include <ADODB.hpp>
#pragma message "Befor 13"
#include "DBGridEh.hpp"  //TDBGridEh
#pragma message "After 13"

Где сообщение "Befor 13" начинают лезть ошибки. В самом DBGridEh.hpp шапка такая:
Код:
#ifndef DBGridEhHPP
#define DBGridEhHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <PropFilerEh.hpp>  // Pascal unit
#include <StdActns.hpp> // Pascal unit
#include <ImgList.hpp>  // Pascal unit
#include <ToolCtrlsEh.hpp>  // Pascal unit
#include <IniFiles.hpp> // Pascal unit
#include <DBCtrlsEh.hpp>    // Pascal unit
#include <DBSumLst.hpp> // Pascal unit
#include <Registry.hpp> // Pascal unit
#include <DBGrids.hpp>  // Pascal unit
#include <Menus.hpp>    // Pascal unit
#include <DB.hpp>   // Pascal unit
#include <DBCtrls.hpp>  // Pascal unit
#include <Grids.hpp>    // Pascal unit
#include <Graphics.hpp> // Pascal unit
#include <Variants.hpp> // Pascal unit
#include <StdCtrls.hpp> // Pascal unit
#include <Forms.hpp>    // Pascal unit
#include <Controls.hpp> // Pascal unit
#include <Classes.hpp>  // Pascal unit
#include <Messages.hpp> // Pascal unit
#include <SysUtils.hpp> // Pascal unit
#include <Windows.hpp>  // Pascal unit
#include <SysInit.hpp>  // Pascal unit
#include <System.hpp>   // Pascal unit
, т.е. несколько стандартных файлов встречаются на форме 1.
Как бы мне с этим разобраться? Как сделать, чтобы компиляция была правильной?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог