Добрый день,
Разбираюсь с инклюдами и алгоритмом подключения файлов в CBuilder.
Есть
Vcl application -
Main (.cpp, .h) , а также Func unit (не vcl)
В файле Main.h подключаю Func.h таким образом (после библиотечных, сгенерируемых инклюдов):
#ifndef MainH
#define MainH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "cxClasses.hpp"
#include "cxControls.hpp"
#include "cxCustomData.hpp"
#include "cxData.hpp"
#include "cxDataStorage.hpp"
#include "cxDBData.hpp"
#include "cxEdit.hpp"
#include "cxFilter.hpp"
#include "cxGraphics.hpp"
#include "cxGrid.hpp"
#include "cxGridCustomTableView.hpp"
#include "cxGridCustomView.hpp"
#include "cxGridDBTableView.hpp"
#include "cxGridLevel.hpp"
#include "cxGridTableView.hpp"
#include "cxLookAndFeelPainters.hpp"
#include "cxLookAndFeels.hpp"
#include "cxStyles.hpp"
#include "dxSkinBlack.hpp"
#include "dxSkinBlue.hpp"
#include "dxSkinCaramel.hpp"
#include "dxSkinCoffee.hpp"
#include "dxSkinDarkRoom.hpp"
#include "dxSkinDarkSide.hpp"
#include "dxSkinFoggy.hpp"
#include "dxSkinGlassOceans.hpp"
#include "dxSkiniMaginary.hpp"
#include "dxSkinLilian.hpp"
#include "dxSkinLiquidSky.hpp"
#include "dxSkinLondonLiquidSky.hpp"
#include "dxSkinMcSkin.hpp"
#include "dxSkinMoneyTwins.hpp"
#include "dxSkinOffice2007Black.hpp"
#include "dxSkinOffice2007Blue.hpp"
#include "dxSkinOffice2007Green.hpp"
#include "dxSkinOffice2007Pink.hpp"
#include "dxSkinOffice2007Silver.hpp"
#include "dxSkinOffice2010Black.hpp"
#include "dxSkinOffice2010Blue.hpp"
#include "dxSkinOffice2010Silver.hpp"
#include "dxSkinPumpkin.hpp"
#include "dxSkinsCore.hpp"
#include "dxSkinscxPCPainter.hpp"
#include "dxSkinsDefaultPainters.hpp"
#include "dxSkinSeven.hpp"
#include "dxSkinSharp.hpp"
#include "dxSkinSilver.hpp"
#include "dxSkinSpringTime.hpp"
#include "dxSkinStardust.hpp"
#include "dxSkinSummer2008.hpp"
#include "dxSkinValentine.hpp"
#include "dxSkinXmas2008Blue.hpp"
#include <ADODB.hpp>
#include <DB.hpp>
#include "cxDBLookupComboBox.hpp"
#include "cxDBVGrid.hpp"
#include "cxInplaceContainer.hpp"
#include "cxVGrid.hpp"
#include <ExtCtrls.hpp>
#include "cxDBEditRepository.hpp"
#include "cxPC.hpp"
#include <DBCtrls.hpp>
#include <Buttons.hpp>
#include <DBGrids.hpp>
#include <Grids.hpp>
#include "cxContainer.hpp"
#include "cxDBEdit.hpp"
#include "cxMaskEdit.hpp"
#include "cxTextEdit.hpp"
#include "cxButtonEdit.hpp"
#include "cxCalc.hpp"
#include "cxDropDownEdit.hpp"
#include "cxEditRepositoryItems.hpp"
#include "cxCurrencyEdit.hpp"
#include "cxDBShellComboBox.hpp"
#include "cxShellComboBox.hpp"
#include "cxShellCommon.hpp"
#include <ComCtrls.hpp>
#include <ShlObj.hpp>
#include "cxCalendar.hpp"
#include "cxExtEditRepositoryItems.hpp"
#include <Mask.hpp>
#include "cxSpinEdit.hpp"
#include "cxTimeEdit.hpp"
#include "cxDrawTextUtils.hpp"
#include "dxBkgnd.hpp"
#include "dxPrnDev.hpp"
#include "dxPrnPg.hpp"
#include "dxPSCompsProvider.hpp"
#include "dxPSCore.hpp"
#include "dxPScxEditorProducers.hpp"
#include "dxPScxExtEditorProducers.hpp"
#include "dxPScxPageControlProducer.hpp"
#include "dxPSEdgePatterns.hpp"
#include "dxPSEngn.hpp"
#include "dxPSFillPatterns.hpp"
#include "dxPSGlbl.hpp"
#include "dxPSPDFExport.hpp"
#include "dxPSPDFExportCore.hpp"
#include "dxPSPrVwAdv.hpp"
#include "dxPSPrVwRibbon.hpp"
#include "dxPSPrVwStd.hpp"
#include "dxPSUtl.hpp"
#include "dxSkinsdxBarPainter.hpp"
#include "dxWrap.hpp"
#include "dxPScxCommon.hpp"
#include "dxPScxGrid6Lnk.hpp"
// модуль функций обработчиков
#include "Func.h"
В файле Func.h подключаю Main.h , чтобы получить доступ к компонентам (компоненты форм и для работы с БД)
#ifndef FuncH
#define FuncH
#include "Main.h"
При компиляции ошибка ругается на объявление функции в файле Func.h:
void refreshGboxes(TObject * Sender);
[BCC32 Error] Func.h(21): E2147 'TObject' cannot start a parameter declaration
Full parser context
Department.cpp(6): #include classes\Department\Department.h
Department.h(9): #include Main.h
Main.h(9): #include Data.h
Data.h(7): #include Func.h
И почему то ругается на UnicodeString в этом же файле:
UnicodeString getRadicalObName(UnicodeString obName, UnicodeString suffix);
[BCC32 Error] Func.h(39): E2141 Declaration syntax error
Full parser context
Department.cpp(6): #include classes\Department\Department.h
Department.h(9): #include Main.h
Main.h(9): #include Data.h
Data.h(7): #include Func.h
Я очень запутался с этими билдеровскими подключениями, помогите пожалуйста, в чем причина может быть и где я ошибаюсь.