//---------------------------------------------------------------------------
#include < vcl.h >
#pragma hdrstop
#include "Unit6.h"
//---------------------------------------------------------------------------
#include < DesignIntf.hpp >
#include < DesignEditors.hpp >
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "XImageButton"
#pragma resource "*.dfm"
TForm6 *Form6;
//---------------------------------------------------------------------------
__fastcall TForm6::TForm6(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm6::Button1Click(TObject *Sender)
{
String sText;
sText=Edit1->Text;
ShowMessage(sText);
}
위 코드를 컴파일 하면
다음과 같은 에러가 납니다.
위와같은 에러가 나는 원인은 무엇일까요?
.
.
.
.
.
퀴즈 풀이
songshinyong 님 께서 정답을 말씀해 주셨네요
ToolsAPI.hpp 에는 sText뿐만 아니라
다름과 같은 여러가지 String이 define되어 있습니다.
#define mcGetFindString L"GetFindString"
#define mcReplace L"Replace"
#define mcRepeatSearch L"RepeatSearch"
#define mcIncrementalSearch L"IncrementalSearch"
#define mcGotoLine L"GotoLine"
#define mcClipCut L"ClipCut"
#define mcClipCopy L"ClipCopy"
#define mcClipPaste L"ClipPaste"
#define mcClipClear L"ClipClear"
#define mcHelpKeywordSearch L"HelpKeywordSearch"
#define mcOpenFileAtCursor L"OpenFileAtCursor"
#define mcToggleBreakpoint L"ToggleBreakpoint"
#define mcRunToHere L"RunToHere"
#define mcUndo L"Undo"
#define mcRedo L"Redo"
#define mcModify L"Modify"
#define mcAddWatchAtCursor L"AddWatchAtCursor"
#define mcInspectAtCursor L"InspectAtCursor"
#define mcSetMark0 L"setMark0"
#define mcSetMark1 L"setMark1"
#define mcSetMark2 L"setMark2"
#define mcSetMark3 L"setMark3"
#define mcSetMark4 L"setMark4"
#define mcSetMark5 L"setMark5"
#define mcSetMark6 L"setMark6"
#define mcSetMark7 L"setMark7"
#define mcSetMark8 L"setMark8"
#define mcSetMark9 L"setMark9"
#define mcMoveToMark0 L"moveToMark0"
#define mcMoveToMark1 L"moveToMark1"
#define mcMoveToMark2 L"moveToMark2"
#define mcMoveToMark3 L"moveToMark3"
#define mcMoveToMark4 L"moveToMark4"
#define mcMoveToMark5 L"moveToMark5"
#define mcMoveToMark6 L"moveToMark6"
#define mcMoveToMark7 L"moveToMark7"
#define mcMoveToMark8 L"moveToMark8"
#define mcMoveToMark9 L"moveToMark9"
#define sEditor L"editor"
#define dVCL L"dfm"
#define dCLX L"xfm"
#define dVCLNet L"nfm"
#define dDotNet L".NET"
#define dHTML L"HTML"
#define dAny L"Any"
#define WizardEntryPoint L"INITWIZARD0001"
#define isWizards L"Wizards"
#define sCustomToolBar L"CustomToolBar"
#define sStandardToolBar L"StandardToolBar"
#define sDebugToolBar L"DebugToolBar"
#define sViewToolBar L"ViewToolBar"
#define sDesktopToolBar L"DesktopToolBar"
#define sInternetToolBar L"InternetToolBar"
#define sCORBAToolBar L"CORBAToolBar"
#define sAlignToolbar L"AlignToolbar"
#define sBrowserToolbar L"BrowserToolbar"
#define sHTMLDesignToolbar L"HTMLDesignToolbar"
#define sHTMLFormatToolbar L"HTMLFormatToolbar"
#define sHTMLTableToolbar L"HTMLTableToolbar"
#define sPersonalityToolBar L"PersonalityToolBar"
#define sPositionToolbar L"PositionToolbar"
#define sSpacingToolbar L"SpacingToolbar"
#define sApplication L"Application"
#define sLibrary L"Library"
#define sConsole L"Console"
#define sPackage L"Package"
#define sOptionSet L"OptionSet"
#define sUnit L"Unit"
#define sForm L"Form"
#define sText L"Text"
#define sCSApplication L"Application"
#define sCSLibrary L"Library"
#define sCSConsole L"Console"
#define sCSPackage L"Package"
#define sAssembly L"Assembly"
#define sUserControl L"UserControl"
#define sClass L"Class"
#define sWinForm L"WinForm"
#define sCppConsoleExe L"CppConsoleApplication"
#define sCppGuiApplication L"CppGuiApplication"
#define sCppVCLApplication L"CppVCLApplication"
#define sCppDynamicLibrary L"CppDynamicLibrary"
#define sCppPackage L"CppPackage"
#define sCppStaticLibrary L"CppStaticLibrary"
#define sCppManagedConsoleExe L"CppManagedConsoleApp"
#define sCppManagedDll L"CppManagedDynamicLibrary"
[위 문자열을 조심해야 하는 경우 ]
사실 ToolsAPI.hpp 나 DesignEditors.hpp 를 참조하지 않으면 문제되지 않습니다.
Component를 만드는 사람의 경우 Property-Editor를 구현하기 위해
DesignEditors.hpp 등을 참조해야 하는 경우가 있는데요
Property-Editor를 구현하면서
소스가 길지 않아 컴포넌트와 Editor크래스의 유닛을 분리하지 않은적이 있었는데...
해당 컴포넌트를 사용하면서
위에 define된 변수명을 사용하면서 그런 에러가 난 경험이 있습니다.
....
|