Ini 文件类型名称预期 C++
Ini file Type name Expected C++
希望您能帮我解决这个编译错误。
我正在尝试测试从 Embarcadero 的官方文档网站获取的代码,该网站旨在测试 TIniFile
class.
但是我得到这个错误:
Unit2.cpp(76): parsing: TCustomIniFile * _fastcall Form2::OpenIniFileInstance().
下面是我的代码:
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include <IniFiles.hpp>
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm2::btStoreClickClick(TObject *Sender)
{
//First Edit of the file
/* Open an instance */
TCustomIniFile* SettingsFile = OpenIniFileInstance();
// Store current form properties to be used in later sessions.
try
{
SettingsFile->WriteInteger (Name, "Top", Top);
SettingsFile->WriteInteger (Name, "Left", Left);
SettingsFile->WriteInteger (Name, "Width", Width);
SettingsFile->WriteInteger (Name, "Height", Height);
SettingsFile->WriteString (Name, "Caption", Caption);
SettingsFile->WriteBool (Name, "InitMax", WindowState == wsMaximized );
}
catch(Exception* e)
{
}
delete SettingsFile;
}
void __fastcall TForm2::btLoadClick(TObject *Sender)
{
TCustomIniFile* SettingsFile = OpenIniFileInstance();
try
{
/*
Read all saved values from the last session. The section name
is the name of the form. Also use form's properties as defaults
*/
Top = SettingsFile->ReadInteger(Name, "Top", Top );
Left = SettingsFile->ReadInteger(Name, "Left", Left );
Width = SettingsFile->ReadInteger(Name, "Width", Width );
Height = SettingsFile->ReadInteger(Name, "Height", Height );
Caption = SettingsFile->ReadString (Name, "Caption", Caption);
// Load last window state
if (SettingsFile->ReadBool(Name, "InitMax", WindowState == wsMaximized))
WindowState = wsMaximized;
else
WindowState = wsNormal;
}
catch(Exception* e)
{
}
delete SettingsFile;
}
TCustomIniFile* __fastcall TForm2::OpenIniFileInstance()
{
TCustomIniFile* temp;
switch (RadioGroup1->ItemIndex)
{
case 0: {
/* Registry mode selected: in HKEY_CURRENT_USER\Software\... */
temp = new TRegistryIniFile(String("Software\") + Application->Title);
}
break;
case 1: {
/* Ini file mode selected */
temp = new TIniFile(ChangeFileExt(Application->ExeName, ".INI"));
}
break;
case 2: {
/* Memory based Ini file mode selected */
temp = new TMemIniFile(ChangeFileExt(Application->ExeName, ".INI"));
}
break;
default:
break;
}
return temp;
}
谢谢大家。
我找到了解决此问题的方法。我错过了头文件 #include<System.Win.Registry.hpp>
此致。
希望您能帮我解决这个编译错误。
我正在尝试测试从 Embarcadero 的官方文档网站获取的代码,该网站旨在测试 TIniFile
class.
但是我得到这个错误:
Unit2.cpp(76): parsing: TCustomIniFile * _fastcall Form2::OpenIniFileInstance().
下面是我的代码:
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include <IniFiles.hpp>
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm2::btStoreClickClick(TObject *Sender)
{
//First Edit of the file
/* Open an instance */
TCustomIniFile* SettingsFile = OpenIniFileInstance();
// Store current form properties to be used in later sessions.
try
{
SettingsFile->WriteInteger (Name, "Top", Top);
SettingsFile->WriteInteger (Name, "Left", Left);
SettingsFile->WriteInteger (Name, "Width", Width);
SettingsFile->WriteInteger (Name, "Height", Height);
SettingsFile->WriteString (Name, "Caption", Caption);
SettingsFile->WriteBool (Name, "InitMax", WindowState == wsMaximized );
}
catch(Exception* e)
{
}
delete SettingsFile;
}
void __fastcall TForm2::btLoadClick(TObject *Sender)
{
TCustomIniFile* SettingsFile = OpenIniFileInstance();
try
{
/*
Read all saved values from the last session. The section name
is the name of the form. Also use form's properties as defaults
*/
Top = SettingsFile->ReadInteger(Name, "Top", Top );
Left = SettingsFile->ReadInteger(Name, "Left", Left );
Width = SettingsFile->ReadInteger(Name, "Width", Width );
Height = SettingsFile->ReadInteger(Name, "Height", Height );
Caption = SettingsFile->ReadString (Name, "Caption", Caption);
// Load last window state
if (SettingsFile->ReadBool(Name, "InitMax", WindowState == wsMaximized))
WindowState = wsMaximized;
else
WindowState = wsNormal;
}
catch(Exception* e)
{
}
delete SettingsFile;
}
TCustomIniFile* __fastcall TForm2::OpenIniFileInstance()
{
TCustomIniFile* temp;
switch (RadioGroup1->ItemIndex)
{
case 0: {
/* Registry mode selected: in HKEY_CURRENT_USER\Software\... */
temp = new TRegistryIniFile(String("Software\") + Application->Title);
}
break;
case 1: {
/* Ini file mode selected */
temp = new TIniFile(ChangeFileExt(Application->ExeName, ".INI"));
}
break;
case 2: {
/* Memory based Ini file mode selected */
temp = new TMemIniFile(ChangeFileExt(Application->ExeName, ".INI"));
}
break;
default:
break;
}
return temp;
}
谢谢大家。
我找到了解决此问题的方法。我错过了头文件 #include<System.Win.Registry.hpp>
此致。