Toon posts:

[C++ Builder] VCL vs CLX

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wanneer ik een VCL component wil gebruiken in mijn code kan ik die gewoon aanmaken/declareren enzo. Met CLX componenten krijg ik een foutmelding dat de compiler die dingen niet kent.

Nu staat er bovenin een nieuw project #include <vcl.h>, ik neem aan dat er voor clx ook zoiets moet komen te staan, maar hoe zit dit precies? Ik kan het in de help niet vinden en Google heeft tot nu toe ook niets opgeleverd.

In mijn include directory zie ik wel een vcl dir staan, maar voor clx kan ik niets vinden. Iemand die mij de goede richting in kan schoppen?

----/edit/----

Even wat verduidelijking. Ik kan dus gewoon kiezen om een CLX applicatie te bouwen (new -> CLX application), maar als ik dan het volgende probeer in mijn create form:

code:
1
2
TIniFile *ini;
ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ) );


Dan krijg ik nog steeds de foutmelding "[C++ Error] Unit1.cpp(15): E2451 Undefined symbol 'TIniFile'".

Terwijl ik deze code rechtstreeks uit de help heb gecopy-paste :?

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Ten eerste, INI files zijn dingen van windows en gebruiken ook de windows API. Als jij een CLX app maakt, suggereert dat dat jij een x-platform app maakt. Dan kun je dus geen windows API functies gebruiken.

Ten tweede, in Delphi moet je de IniFiles unit in je uses-clause toevoegen, dus in C++Builder zul je wel iets van inifiles.h moeten includen.

日本!🎌


Verwijderd

Topicstarter
_Thanatos_ schreef op 10 november 2002 @ 03:52:
Ten eerste, INI files zijn dingen van windows en gebruiken ook de windows API. Als jij een CLX app maakt, suggereert dat dat jij een x-platform app maakt. Dan kun je dus geen windows API functies gebruiken.

Ten tweede, in Delphi moet je de IniFiles unit in je uses-clause toevoegen, dus in C++Builder zul je wel iets van inifiles.h moeten includen.
CLX garandeert voor zover ik weet cross-platform compatibiliteit tussen borland pakketten op Windows en gelijke pakketten onder Linux. Dat betekent dat de source code op beide platformen te compileren is.

Ik zal eens zoeken naar iets van een inifiles.h

INI files gebruiken zelf de Windows API niet hoor, een .ini file is gewoon een normaal tekstbestandje dat door de Windows API gebruikt wordt om configuratiegegevens naar toe te schrijven / uit te lezen. Dit systeem kun je net zo makkelijk op een ander platform gebruiken. Als je dingen naar het register weg gaat schrijven, dan is het een heel ander verhaal.

Nog even een quote uit de help van C++ Builder over het gebruik van ini-files:
The ini file format is still popular, many configuration files (such as the DSK Desktop settings file) are in this format. This format is especially useful in cross-platform applications, where you cannot always count on a system Registry for storing configuration information. BaseCLX provides two classes, TIniFile and TMemIniFile, to make reading and writing ini files very easy.
On Linux, TMemIniFile and TIniFile are identical. On Windows, TIniFile works directly with the ini file on disk while TMemIniFile buffers all changes in memory and does not write them to disk until you call the UpdateFile method.

When you instantiate the TIniFile or TMemIniFile object, you pass the name of the ini file as a parameter to the constructor. If the file does not exist, it is automatically created. You are then free to read values using the various read methods, such as ReadString, ReadDate, ReadInteger, or ReadBool. Alternatively, if you want to read an entire section of the ini file, you can use the ReadSection method. Similarly, you can write values using methods such as WriteBool, WriteInteger, WriteDate, or WriteString.

  • whoami
  • Registratie: December 2000
  • Laatst online: 29-08 15:58
Ga eens met je cursor op die TIniFile staan en druk eens op F1. De help komt tevoorschijn en je zult kunnen zien welke header je moet includen...

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 10 november 2002 @ 11:10:
Ga eens met je cursor op die TIniFile staan en druk eens op F1. De help komt tevoorschijn en je zult kunnen zien welke header je moet includen...
Ik heb het gevonden. Ik moet inifiles.hpp includen. Maar ik kan in de help nog steeds nergens vinden dat dat zo moet, welke header ik dus moet includen. Dit vind ik behoorlijk vaag.

  • whoami
  • Registratie: December 2000
  • Laatst online: 29-08 15:58
Welke versie van C++ Builder gebruik je?

Ik heb hier C++ Builder 5 en als ik in de help ga kijken over die TInifile, dan zie ik dit:
TIniFile stores and retrieves application-specific information and settings from INI files.

Unit

inifiles

Description
blaat...
Het 2de en 3de regeltje: unit: inifiles

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 10 november 2002 @ 15:18:
Welke versie van C++ Builder gebruik je?

Ik heb hier C++ Builder 5 en als ik in de help ga kijken over die TInifile, dan zie ik dit:


[...]

Het 2de en 3de regeltje: unit: inifiles
Ok, het tinifiles.hpp was een typo, inmiddels mijn post ge-edit, moet inderdaad inifiles.hpp zijn.

Er staat inderdaad unit: inifiles.

Best dom van mij 8)7

Ik gebruik trouwens C++ Builder 6
Pagina: 1