abonnement Unibet Coolblue Bitvavo
  dinsdag 11 mei 2010 @ 23:23:45 #101
111382 Ofyles2
Bestemming: onbekend
pi_81321832
quote:
Op zondag 7 maart 2010 11:56 schreef LucasHulshof het volgende:
Een erg goede en gratis IDE, voor zowel windows/linux, gericht op het ontwikkelen van software met het QT framework (o.a. google earth maakt hier gebruik van)
QTCreator

Het QT Framework verlost je van het broddelwerk genaamd "windows api" en is compleet object georienteerd. Een aanrader voor iedereen die serieus portable software wil schrijven.
Afgelopen november een editie van Linux Magazine gekocht, meteen verslaafd geraakt door de Qt Framework.
pi_81332846
Dit is trouwens ook wel een goed boek om de basisbeginselen van C++ te leren: http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
  woensdag 12 mei 2010 @ 12:57:03 #103
189216 netolk
maar dan andersom
pi_81336532
quote:
Op woensdag 12 mei 2010 11:26 schreef thabit het volgende:
Dit is trouwens ook wel een goed boek om de basisbeginselen van C++ te leren: http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
en deze natuurlijk ook:
cplusplus
Beware of the Raping Zebra's
pi_81864451
van cplusplus.com heb ik de volgende code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// function template
#include <iostream>
using namespace std;

template <class T>
T GetMax (T a, T b) {
  T result;
  result = (a>b)? a : b;
  return (result);
}

int main () {
  int i=5, j=6, k;
  long l=10, m=5, n;
  k=GetMax<int>(i,j);
  n=GetMax<long>(l,m);
  cout << k << endl;
  cout << n << endl;
  return 0;
}


Maar is het niet zo dat de types int en long hetzelfde zijn en dit voorbeeld dus eigenlijk nutteloos is? Met het compilen heb ik in elk geval geen probleem als ik een int aan een long variabele probeer toe te wijzen en andersom (ook als argumenten bij functies niet).
Finally, someone let me out of my cage
pi_81865259
een int een long zijn verschillende types.

Een long is een "long-int"

of er daadwerkelijk verschil in de lengte zit, is afhankelijk van je processor...

Dus

een short is 2 bytes
een long is 4 bytes
en een int is 2 of 4 bytes afhankelijk van je processor.
"Wie niet gelooft in wonderen, is geen realist."
pi_81865264
Op 16-bitssystemen (mogelijk van voor jouw tijd ) was een int 16 bit en een long 32 bit.
pi_81876850
Het zijn verschillende types die op de huidige hardware "toevallig" dezelfde grootte hebben. Tenzij je de code gaat compileren op obscure platforms zou ik me er geen zorgen over maken.
pi_81878408
quote:
Op dinsdag 25 mei 2010 12:21 schreef progje het volgende:
een int een long zijn verschillende types.

Een long is een "long-int"

of er daadwerkelijk verschil in de lengte zit, is afhankelijk van je processor...

Dus

een short is 2 bytes
een long is 4 bytes
en een int is 2 of 4 bytes afhankelijk van je processor.
ik snap het, hoewel het wat onlogisch overkomt om de grootte van een variabele af te laten hangen van de processor.
Finally, someone let me out of my cage
pi_81878464
quote:
Op dinsdag 25 mei 2010 12:21 schreef thabit het volgende:
Op 16-bitssystemen (mogelijk van voor jouw tijd ) was een int 16 bit en een long 32 bit.
ik heb het programmeren geleerd in qbasic
Finally, someone let me out of my cage
pi_81878670
quote:
Op dinsdag 25 mei 2010 17:38 schreef minibeer het volgende:

[..]

ik snap het, hoewel het wat onlogisch overkomt om de grootte van een variabele af te laten hangen van de processor.
Is ook raar.
  dinsdag 25 mei 2010 @ 21:06:19 #111
189216 netolk
maar dan andersom
pi_81889207
quote:
Op dinsdag 25 mei 2010 17:38 schreef minibeer het volgende:

[..]

ik snap het, hoewel het wat onlogisch overkomt om de grootte van een variabele af te laten hangen van de processor.
raar maar waar...

PS.
Hier de groten van alle data typen

Je kan natuurlijk ook de sizeof(agrument) gebruiken om te zien hoe groot iets is.. uitkomst is overigens wel in bytes
Beware of the Raping Zebra's
pi_82084432
quote:
Also, when using SDL, you must have your main() function declared like it is above. You can't use void main() or anything like that.
Finally, someone let me out of my cage
pi_82087740
quote:
Op zondag 30 mei 2010 00:03 schreef minibeer het volgende:

[..]


  zondag 30 mei 2010 @ 03:27:46 #114
111382 Ofyles2
Bestemming: onbekend
pi_82090058
quote:
Op dinsdag 25 mei 2010 21:06 schreef netolk het volgende:

[..]

raar maar waar...

PS.
Hier de groten van alle data typen

Je kan natuurlijk ook de sizeof(agrument) gebruiken om te zien hoe groot iets is.. uitkomst is overigens wel in bytes
Ik heb thuis een C++-programmeerboek liggen die datatypes van kleinere groottes heeft. Betreft int en long.
  zondag 30 mei 2010 @ 10:24:33 #115
189216 netolk
maar dan andersom
pi_82091842
quote:
Op zondag 30 mei 2010 03:27 schreef Ofyles2 het volgende:

[..]

Ik heb thuis een C++-programmeerboek liggen die datatypes van kleinere groottes heeft. Betreft int en long.
Dan is dat waarschijnlijk een oud boek...

sizeof is de grootte die jouw computer er van maakt
Beware of the Raping Zebra's
  zondag 30 mei 2010 @ 14:36:27 #116
111382 Ofyles2
Bestemming: onbekend
pi_82099776
quote:
Op zondag 30 mei 2010 10:24 schreef netolk het volgende:

[..]

Dan is dat waarschijnlijk een oud boek...

sizeof is de grootte die jouw computer er van maakt
Het gaat om 'Sams Teach Yourself C++ in One Hour a Day'.

Een pijnlijke fout is dat de auteurs van dat boek vermelden dat de long int en de int van dezelfde lengte zijn.
pi_82100862
quote:
Op zondag 30 mei 2010 14:36 schreef Ofyles2 het volgende:

[..]

Het gaat om 'Sams Teach Yourself C++ in One Hour a Day'.

Een pijnlijke fout is dat de auteurs van dat boek vermelden dat de long int en de int van dezelfde lengte zijn.
dat is dus alleen bij nieuwe systemen zo,
maar hier staat ook dat de int en de long int even groot zijn:
http://www.cplusplus.com/doc/tutorial/variables/
Finally, someone let me out of my cage
pi_82101008
quote:
Op zondag 30 mei 2010 01:17 schreef Cruise.Elroy het volgende:

[..]


Van een SDL tutorial.
Ik vroeg eerst waarom mensen eigenlijk men een main functie die een int was begonnen, maar dat is dus ook voor dit soort zaken
Finally, someone let me out of my cage
  zondag 30 mei 2010 @ 15:08:01 #119
189216 netolk
maar dan andersom
pi_82101076
quote:
Op zondag 30 mei 2010 15:03 schreef minibeer het volgende:

[..]

dat is dus alleen bij nieuwe systemen zo,
maar hier staat ook dat de int en de long int even groot zijn:
http://www.cplusplus.com/doc/tutorial/variables/
ja nieuwe systemen hebben dat zo en daarom staat dat er waarschijnlijk aangezien (bijna) niemand die oude systemen nog gebruikt en er zeker geen programma's meer voor gemaakt worden
Beware of the Raping Zebra's
  zondag 30 mei 2010 @ 15:09:08 #120
189216 netolk
maar dan andersom
pi_82101124
quote:
Op zondag 30 mei 2010 15:06 schreef minibeer het volgende:

[..]

Van een SDL tutorial.
Ik vroeg eerst waarom mensen eigenlijk men een main functie die een int was begonnen, maar dat is dus ook voor dit soort zaken
gewoon int nemen dan zit je altijd goed
Beware of the Raping Zebra's
  zondag 30 mei 2010 @ 15:10:27 #121
111382 Ofyles2
Bestemming: onbekend
pi_82101186
quote:
Op zondag 30 mei 2010 15:03 schreef minibeer het volgende:

[..]

dat is dus alleen bij nieuwe systemen zo,
maar hier staat ook dat de int en de long int even groot zijn:
http://www.cplusplus.com/doc/tutorial/variables/
Oh, oké.
pi_82103691
klopt het dat het niet mogelijk is om mode 13 graphics in visual c++ te doen? Dat zou niet werken omdat dat een 32-bits compiler is ofzo (verder snap ik hier de ballen van). Het zou wel kunnen in SDL, maar ik zou liever eerst om te oefenen mijn programmatjes uit qbasic naar c++ 'vertalen'. En dan kijken hoe snel ze zijn natuurlijk...
Maar dit zit er dus niet in?
Finally, someone let me out of my cage
pi_82104011
quote:
Op zondag 30 mei 2010 16:02 schreef minibeer het volgende:
klopt het dat het niet mogelijk is om mode 13 graphics in visual c++ te doen? Dat zou niet werken omdat dat een 32-bits compiler is ofzo (verder snap ik hier de ballen van). Het zou wel kunnen in SDL, maar ik zou liever eerst om te oefenen mijn programmatjes uit qbasic naar c++ 'vertalen'. En dan kijken hoe snel ze zijn natuurlijk...
Maar dit zit er dus niet in?
Mode 13 is iets van 20 jaar geleden. Tegenwoordig heb je geen palette meer van 256 kleuren Het heeft niets met de taal te maken, maar meer met het feit dat al die systemen uit het DOS-tijdperk stammen en niet meer 1-2-3 beschikbaar zijn.

Ik kan je aanraden om toch SDL te gebruiken, maar misschien eerst C++ goed onder de knie krijgen.
pi_82104492
quote:
Op zondag 30 mei 2010 16:10 schreef Cruise.Elroy het volgende:

[..]

Mode 13 is iets van 20 jaar geleden. Tegenwoordig heb je geen palette meer van 256 kleuren Het heeft niets met de taal te maken, maar meer met het feit dat al die systemen uit het DOS-tijdperk stammen en niet meer 1-2-3 beschikbaar zijn.

Ik kan je aanraden om toch SDL te gebruiken, maar misschien eerst C++ goed onder de knie krijgen.
Met qbasic kan je wel gewoon screen 13 graphics en alles doen (tot en met XP werkt dat prima). Beetje jammer, want ik vind graphics wel een van de leukere dingen om te doen, en om nou met SDL te beginnen terwijl ik c++ nog niet echt goed ken... maarja.
Finally, someone let me out of my cage
pi_82105350
quote:
Op zondag 30 mei 2010 16:21 schreef minibeer het volgende:

[..]

Met qbasic kan je wel gewoon screen 13 graphics en alles doen (tot en met XP werkt dat prima). Beetje jammer, want ik vind graphics wel een van de leukere dingen om te doen, en om nou met SDL te beginnen terwijl ik c++ nog niet echt goed ken... maarja.
Ik kom ook uit een QBasic achtergrond, en het is wel even wennen.
Als je echt wilt, kan je heel snel een applicatie uit de grond stampen in win32 met een scherm en een tekencanvas (zonder extra libs te hoeven downloaden)

// maken en registeren van een window:
RegisterWindowEx()
CreateWindowEx ()
ShowWindow()
// functie die je moet maken waarin je events afhandeld
WindowProc()

// maken van een tekencanvas
CreateDIBSection()
GetDC()
SelectObject()

// kopieren van het tekencanvas naar de oppervlakte van je windowBitBlt()
BitBlt()

// Afhandelen van window-events:
GetMessage()
en dan de events:

WM_PAINT (herschrijven van je window)
beetje muis-events afvangen:
WM_MOUSEMOVE
WM_LBUTTONDOWN

Het is even googlen maar dan heb je in een dag wel een werkend framework waar je redelijk snel op kan tekenen. Het is alleen allemaal event driven, dus als je wilt animeren zul je iets met CreateTimer() moeten doen of met GetTickCount() de tijd in ms opvragen en dat in het GetMessage() loopje zelf doen.
pi_82106196
quote:
Op zondag 30 mei 2010 16:42 schreef Cruise.Elroy het volgende:

[..]

Ik kom ook uit een QBasic achtergrond, en het is wel even wennen.
Als je echt wilt, kan je heel snel een applicatie uit de grond stampen in win32 met een scherm en een tekencanvas (zonder extra libs te hoeven downloaden)

// maken en registeren van een window:
RegisterWindowEx()
CreateWindowEx ()
ShowWindow()
// functie die je moet maken waarin je events afhandeld
WindowProc()

// maken van een tekencanvas
CreateDIBSection()
GetDC()
SelectObject()

// kopieren van het tekencanvas naar de oppervlakte van je windowBitBlt()
BitBlt()

// Afhandelen van window-events:
GetMessage()
en dan de events:

WM_PAINT (herschrijven van je window)
beetje muis-events afvangen:
WM_MOUSEMOVE
WM_LBUTTONDOWN

Het is even googlen maar dan heb je in een dag wel een werkend framework waar je redelijk snel op kan tekenen. Het is alleen allemaal event driven, dus als je wilt animeren zul je iets met CreateTimer() moeten doen of met GetTickCount() de tijd in ms opvragen en dat in het GetMessage() loopje zelf doen.
dankje!
ok, ziet er wel ok uit, wordt dit gebruikt voor simpele grafieken binnen windows programma's enzo (zeg maar met de windows.h lib)?
Ik zal er eens naar kijke
maar het lijkt me niet zo makkelijk als screen 13 in qbasic
echt jammer dat er geen optie is voor 16-bit compilen...

[ Bericht 1% gewijzigd door minibeer op 30-05-2010 17:19:00 ]
Finally, someone let me out of my cage
pi_82106749
quote:
Op zondag 30 mei 2010 17:03 schreef minibeer het volgende:

[..]

ok, ziet er wel ok uit, wordt dit gebruikt voor simpele grafieken binnen windows programma's enzo (zeg maar met de windows.h lib)?
Ik zal er eens naar kijke
maar het lijkt me niet zo makkelijk als screen 13 in qbasic
echt jammer dat er geen optie is voor 16-bit compilen (of is dit onzin wat ik nu zeg :P)
Als je een oude C++ compiler pakt kan je wss wel oude DOS-executables maken. Geen idee hoe je dat precies kan regelen maar er zijn compilers voor. Dan blijf je helaas wel hangen in een verouderd systeem en dat is wss gewoon zonde van je tijd.
pi_82107552
quote:
Op zondag 30 mei 2010 17:17 schreef Cruise.Elroy het volgende:

[..]

Als je een oude C++ compiler pakt kan je wss wel oude DOS-executables maken. Geen idee hoe je dat precies kan regelen maar er zijn compilers voor. Dan blijf je helaas wel hangen in een verouderd systeem en dat is wss gewoon zonde van je tijd.
Ja ik wil het sowieso wel bij 1 compiler (per taal) houden, anders vind ik het zo'n gedoe. (Om dan bijvoorbeeld sdl bij beide aan de praat te krijgen)
Finally, someone let me out of my cage
pi_82396342
nog een n00bvraag...
Het lukt me niet om in visual c++ andere source files te compileren
bijvoorbeeld dit bestand:
Codermind Raytracer source



Het zal vast niet zo moeilijk zijn maar ik zou niet weten wat ik verkeerd doe
Finally, someone let me out of my cage
pi_82396439
je hebt nu een losse CPP file. Je moet er even een project (solution) omheen draaien.

New project maken met de wizard, doe je gewoon C++ appliclication (met console evt) en dan "empty solution". Dan de inhoud van dat bestand in je main.cpp zetten, of dat bestand importeren in je project.
pi_82401066
quote:
Op zondag 6 juni 2010 15:11 schreef Cruise.Elroy het volgende:
je hebt nu een losse CPP file. Je moet er even een project (solution) omheen draaien.

New project maken met de wizard, doe je gewoon C++ appliclication (met console evt) en dan "empty solution". Dan de inhoud van dat bestand in je main.cpp zetten, of dat bestand importeren in je project.
ok thanks man ik wist dat het zoiets moest zijn
(ik krijg hem nu alleen nog niet aan de praat:
1
2
3
4
5
6
'raytrace.exe': Loaded 'C:\Users\thuispc\Documents\Visual Studio 2008\Projects\Project1\raytrace\Debug\raytrace.exe', Symbols loaded.
'raytrace.exe': Loaded 'C:\Windows\System32\ntdll.dll'
'raytrace.exe': Loaded 'C:\Windows\System32\kernel32.dll'
'raytrace.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\msvcp90d.dll'
'raytrace.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\msvcr90d.dll'
The program '[8152] raytrace.exe: Native' has exited with code -1 (0xffffffff).
)
Finally, someone let me out of my cage
  zondag 6 juni 2010 @ 16:41:00 #132
189216 netolk
maar dan andersom
pi_82401127
Wat ben je aan het maken minibeer?

die code ziet er interessant uit
Beware of the Raping Zebra's
  zondag 6 juni 2010 @ 16:41:29 #133
254493 Trollface.
gr rob fruithof, groningencity
pi_82401150
quote:
Op zondag 6 juni 2010 16:41 schreef netolk het volgende:
Wat ben je aan het maken minibeer?

die code ziet er interessant uit
Dit, lijkt me.
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
  zondag 6 juni 2010 @ 16:44:30 #134
189216 netolk
maar dan andersom
pi_82401301
quote:
Op zondag 6 juni 2010 16:41 schreef Trollface. het volgende:

[..]

Dit, lijkt me.
joh...

ik vraag me ook af waarvoor de code dient en ben lui
Beware of the Raping Zebra's
pi_82401365
niet van mij hoor zo ver ben ik nog niet
gewoon een voorbeeld van raytracen, van het internet geplukt
in qbasic heb ik nog wel eens een raytracer ding gemaakt
Finally, someone let me out of my cage
  zondag 6 juni 2010 @ 16:51:41 #136
189216 netolk
maar dan andersom
pi_82401704
quote:
Op zondag 6 juni 2010 16:45 schreef minibeer het volgende:
niet van mij hoor zo ver ben ik nog niet
gewoon een voorbeeld van raytracen, van het internet geplukt
in qbasic heb ik nog wel eens een raytracer ding gemaakt
dankje nu hoef ik zelf niet te kijken
Beware of the Raping Zebra's
pi_82404972
quote:
Op zondag 6 juni 2010 16:39 schreef minibeer het volgende:

[..]

ok thanks man ik wist dat het zoiets moest zijn
(ik krijg hem nu alleen nog niet aan de praat:
[ code verwijderd ]

)
Je zal toch meer moeten posten dan een lege log als je verwacht dat we je kunnen helpen.
pi_82405367
Hoe ziet je main() eruit? int main() {return -1;} ?
pi_82407070
quote:
Op zondag 6 juni 2010 18:00 schreef Cruise.Elroy het volgende:

[..]

Je zal toch meer moeten posten dan een lege log als je verwacht dat we je kunnen helpen.
ja sorry ik heb nog niet echt de betekenis van die log door
maar het is iig het bestand dat ik eerder al gepost had
Finally, someone let me out of my cage
pi_82548104
is het al gelukt?
  donderdag 17 juni 2010 @ 15:48:56 #141
189216 netolk
maar dan andersom
pi_82935408
quote:
Op woensdag 9 juni 2010 13:55 schreef Cruise.Elroy het volgende:
is het al gelukt?
Beware of the Raping Zebra's
pi_82999131
oweeeeuh nee, ik heb het maar opgegeven
(en ik ben ondertussen een week op vakantie geweest enzo )
Finally, someone let me out of my cage
  zaterdag 26 juni 2010 @ 17:35:23 #143
189216 netolk
maar dan andersom
pi_83330203
Hey ik heb een probleem met de ifstream eof() gebeuren...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
#include <iostream>
int main(){
   std::ifstream Read("lol.jpg");
   if(Read.is_open()){
      int i = 0;
      while(!Read.eof()){
         char temp = Read.get();
         i++;
      }
      Read.close();
      std::cout << "i = " << i <<'\n';
   }
   return 0;
}

lol.jpg is (volgens windows) 353.821 bytes en 356.352 bytes grootte op schijf
dus ik zou zeggen dat het progje ook die waarde zou moeten weergeven alleen nu geeft het programma 275 aan daarna nokt het progje er dus mee

zou iemand me kunnen vertellen waarom dit gebeurt en hoe ik dit kan oplossen?

mvg. netolk
Beware of the Raping Zebra's
  zaterdag 26 juni 2010 @ 19:18:06 #144
254493 Trollface.
gr rob fruithof, groningencity
pi_83333330
Binaire data lees je toch niet met chars.
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
pi_83334300
Zou het kunnen zijn dat op byte positie 275 het EOF teken staat? Waardoor de boel stopt.

@Trollface: Binaire data kun je in een char lezen, als je er verder toch niks mee doet.
  zaterdag 26 juni 2010 @ 20:00:38 #146
189216 netolk
maar dan andersom
pi_83334601
quote:
Op zaterdag 26 juni 2010 19:18 schreef Trollface. het volgende:
Binaire data lees je toch niet met chars.
get() leest 1 byte en char is 1 byte.
quote:
Op zaterdag 26 juni 2010 19:51 schreef moeftie het volgende:
Zou het kunnen zijn dat op byte positie 275 het EOF teken staat? Waardoor de boel stopt.

@Trollface: Binaire data kun je in een char lezen, als je er verder toch niks mee doet.
Ik had daar ook naar gekeken er staat een EM (end of medium) maar ik had dus een test bestandje gemaakt met halverwege zo'n EM maar daar las hij wel gewoon netjes tot het einde van het bestand..
Beware of the Raping Zebra's
pi_83335796
Het probleem is denk ik dat de constructor van ifstream het bestand standaard als tekstbestand opent. Probeer dus
std::ifstream Read("lol.jpg", std::ios_base::binary);
  zaterdag 26 juni 2010 @ 20:43:42 #148
189216 netolk
maar dan andersom
pi_83336195
quote:
Op zaterdag 26 juni 2010 20:33 schreef thabit het volgende:
Het probleem is denk ik dat de constructor van ifstream het bestand standaard als tekstbestand opent. Probeer dus
std::ifstream Read("lol.jpg", std::ios_base::binary);
Hehe, best wel stom had ik moeten weten XD maar het werkt dus bedankt thabit
Beware of the Raping Zebra's
pi_83476106
Na een tijdje in Python en Perl gespeeld te hebben is mij geadviseerd om verder te gaan in C++. Dit vooral omdat ik bezig ben in de bioinformatica.

Ben ondertussen de cplusplus tutorial aan het doornemen maar vroeg me af of er online boeken/documentatie beschikbaar is met opdrachten.

En of jullie misschien tutorials weten in de richting van bioinformatica?

Dit alles doe ik in Xcode en moet zeggen dat tot nu toe alles nog vlekkeloos werkt
pi_83477241
Ik geloof dat ze op CPP-home(.com) wel tutorials e.d. hebben; sowieso een goede community die je kunnen helpen.
En dingen "in de richting van" bioinformatica lijkt me heel lastig, ik zou niets kunnen noemen wat nou typisch bioinformatica is. Voor wetenschappelijke simulaties hebje vaak goede data-architectuur kennis nodig in combinatie met geoptimaliseerde algo's (die je meestal uit papers haalt) en high-level logica.
  woensdag 30 juni 2010 @ 20:01:39 #151
164101 Thormodo
Nu inclusief tweede aap!
pi_83504311
quote:
Op woensdag 30 juni 2010 05:20 schreef xienixs het volgende:
Ben ondertussen de cplusplus tutorial aan het doornemen maar vroeg me af of er online boeken/documentatie beschikbaar is met opdrachten.

En of jullie misschien tutorials weten in de richting van bioinformatica?

Dit alles doe ik in Xcode en moet zeggen dat tot nu toe alles nog vlekkeloos werkt
Op http://lesmateriaal.saxion.nl/gej/oopr/index.html , http://lesmateriaal.saxion.nl/gej/cpba1/index.html & http://lesmateriaal.saxion.nl/gej/cpro2/index.html staat ook wel wat. Ligt er maar net aan wat je nodig hebt.

En nog wat zooi die ik in mijn bookmarks had staan:
http://msdn.microsoft.com(...)k5%28v=VS.71%29.aspx
http://www.ronkes.nl/oldprogrammeren/

Maar goed je kan beter gericht zoeken naar wat je nodig bent, want over alles staat wel wat op internet.

En dit boek (maar dan de Visual C# versie) vond ik wel fijn: http://www.bol.com/nl/p/e(...)002115621/index.html .

[ Bericht 4% gewijzigd door Thormodo op 30-06-2010 20:11:58 ]
  zondag 4 juli 2010 @ 15:17:46 #152
189216 netolk
maar dan andersom
pi_83644739
Hey, ik heb iets nodig zoals ::SetConsoleCursorPosition(myHandle, myCoord); alleen moet hij dat de cursorpositie geven... Weet iemand of zo'n functie bestaat of hoe die te maken is?

avb
Beware of the Raping Zebra's
pi_83647560
Beetje googlen en je hebt het zo gevonden:

Op MSDN, zoeken naar SetConsoleCursorPosition:
http://msdn.microsoft.com/en-us/library/ms686025(VS.85).aspx

En dan halverwege de tekst:
quote:
The cursor position determines where characters written by the WriteFile or WriteConsole function, or echoed by the ReadFile or ReadConsole function, are displayed. To determine the current position of the cursor, use the GetConsoleScreenBufferInfo function.
Eh die staat hier: http://msdn.microsoft.com/en-us/library/ms683171(v=VS.85).aspx
  zondag 4 juli 2010 @ 17:43:52 #154
189216 netolk
maar dan andersom
pi_83648893
quote:
Op zondag 4 juli 2010 16:56 schreef Cruise.Elroy het volgende:
Beetje googlen en je hebt het zo gevonden:

Op MSDN, zoeken naar SetConsoleCursorPosition:
http://msdn.microsoft.com/en-us/library/ms686025(VS.85).aspx

En dan halverwege de tekst:
[..]

Eh die staat hier: http://msdn.microsoft.com/en-us/library/ms683171(v=VS.85).aspx
ik krijg bij het compileren een fout melding:
1request for member `dwCursorPosition' in `myInfo', which is of non-class type 'CONSOLE_SCREEN_BUFFER_INFO*'


dit is stukje van de code
1
2
3
4
5
CONSOLE_SCREEN_BUFFER_INFO* myInfo;
   GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),myInfo);
   COORD myCoord = myInfo.dwCursorPosition;
   myCoord.X -=3;
   SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),myCoord);
Beware of the Raping Zebra's
pi_83652125
quote:
BOOL WINAPI GetConsoleScreenBufferInfo(
__in HANDLE hConsoleOutput,
__out PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
);
Het is niet zo duidelijk, maar kijk goed naar het type en de naam van de tweede parameter:
De P bij het type en de lp in de naam geeft aan dat het een pointer is.

PCONSOLE_SCREEN_BUFFER_INFO is een pointer naar CONSOLE_SCREEN_BUFFER_INFO (ms typedeft of defined vaak zijn pointers, geen idee waarom)

ipv myCoord moet je dus &myCoord meegeven.
pi_83656417
@netolk
Ik gok ook op iets met pointers, en niet gevulde variabelen.
  maandag 5 juli 2010 @ 08:14:26 #157
189216 netolk
maar dan andersom
pi_83669917
Dat is het dus niet...
Ik heb van alles geprobeerd met die pointers, maar niks helpt Ik heb eerder het idee dat dwCursorPosition niet in de struct staat... maar de error is in line3 van het stukje code in mijn vorige post...
Beware of the Raping Zebra's
pi_83669992
Ik zie het al, jij maakt een pointer aan die je niet initialiseert en die geef je mee aan de functie. Die pointer moet wijzen naar een struct waar Get....() zijn info in kan zetten. De "juiste" code is dus:

1
2
3
4
5
   CONSOLE_SCREEN_BUFFER_INFO myInfo;
   GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&myInfo);
   COORD myCoord = myInfo.dwCursorPosition;
   myCoord.X -=3;
   SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),myCoord);

Ik heb van myInfo een struct gemaakt ipv een pointer en deze reference ik naar een pointer met de -& opearator in de functieaanroep. (in mijn vorige post schreef ik myCoord, maar ik bedoelde natuurlijk myInfo)
De error die je kreeg sloeg op de regel waar je dus met een . operator pointer probeerde te benaderen in regel 3.

Dit is best wel basic stuff, misschien moet je je even inlezen in pointers, stack variabelen etc.
  maandag 5 juli 2010 @ 08:30:33 #159
189216 netolk
maar dan andersom
pi_83670056
quote:
Op maandag 5 juli 2010 08:22 schreef Cruise.Elroy het volgende:
Ik zie het al, jij maakt een pointer aan die je niet initialiseert en die geef je mee aan de functie. Die pointer moet wijzen naar een struct waar Get....() zijn info in kan zetten. De "juiste" code is dus:
[ code verwijderd ]

Ik heb van myInfo een struct gemaakt ipv een pointer en deze reference ik naar een pointer met de -& opearator in de functieaanroep. (in mijn vorige post schreef ik myCoord, maar ik bedoelde natuurlijk myInfo)
De error die je kreeg sloeg op de regel waar je dus met een . operator pointer probeerde te benaderen in regel 3.

Dit is best wel basic stuff, misschien moet je je even inlezen in pointers, stack variabelen etc.
Hèhè,

Toch bedankt ik zal idd die pointer gebeuren weer ff doornemen
Beware of the Raping Zebra's
pi_83828775
Kunt beter bij tweakers zijn voor dit.
pi_83830420
quote:
Op donderdag 8 juli 2010 23:28 schreef ReWout het volgende:
Kunt beter bij tweakers zijn voor dit.
Nee hoor, dit lukt hier prima.
  vrijdag 9 juli 2010 @ 10:44:07 #162
189216 netolk
maar dan andersom
pi_83840380
quote:
Op donderdag 8 juli 2010 23:28 schreef ReWout het volgende:
Kunt beter bij tweakers zijn voor dit.
Omdat??

Gaat prima hoor, ik zag in dit geval gewoon even wat over het hoofd maar andere zien dat dan weer wel
Beware of the Raping Zebra's
pi_84753208
Wat ik me altijd heb afgevraagd: als je een Win32 programma compileert, vertel je tegen de linker/compiler/whatever dat het een .exe in PE formaat is. Je bent in het feite code aan het produceren die tegen de HAL praat. Maar als je een Linux kernel compileert, wat voor een code komt er dan uit? Wat is je target platform?
pi_84753435
quote:
Op zondag 1 augustus 2010 22:30 schreef TeringHenkie het volgende:
Wat ik me altijd heb afgevraagd: als je een Win32 programma compileert, vertel je tegen de linker/compiler/whatever dat het een .exe in PE formaat is. Je bent in het feite code aan het produceren die tegen de HAL praat. Maar als je een Linux kernel compileert, wat voor een code komt er dan uit? Wat is je target platform?
Je compiler is gewoon hard-coded om PE-headers te compileren, inclusief ondersteuning voor platform-specifieke communicatie met de HAL. Volgens mij declareer je in de PE-header ook de communicatiekanalen naar je OS mbh functie-tabellen enzo, die via de exe-loader worden ingevuld.
pi_84754533
quote:
Op zondag 1 augustus 2010 22:35 schreef Cruise.Elroy het volgende:

[..]

Je compiler is gewoon hard-coded om PE-headers te compileren, inclusief ondersteuning voor platform-specifieke communicatie met de HAL. Volgens mij declareer je in de PE-header ook de communicatiekanalen naar je OS mbh functie-tabellen enzo, die via de exe-loader worden ingevuld.
Dus als je een kernel bakt, compileer je puur tegen de CPU aan (met een of andere compilerflagje). Je bent dan alleen maar registertjes aan het vullen en interrupts aan het callen? (mooi gewrapt in C-code :P)
  zondag 1 augustus 2010 @ 23:09:13 #166
254493 Trollface.
gr rob fruithof, groningencity
pi_84754806
quote:
Op zondag 1 augustus 2010 22:30 schreef TeringHenkie het volgende:
Wat ik me altijd heb afgevraagd: als je een Win32 programma compileert, vertel je tegen de linker/compiler/whatever dat het een .exe in PE formaat is. Je bent in het feite code aan het produceren die tegen de HAL praat. Maar als je een Linux kernel compileert, wat voor een code komt er dan uit? Wat is je target platform?
Linux heeft geen PE-type executables, maar ELF's. :)
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
pi_84754870
quote:
Op zondag 1 augustus 2010 23:09 schreef Trollface. het volgende:

[..]

Linux heeft geen PE-type executables, maar ELF's. :)
I know, maar het ging me meer om de compiler vs. kernel dan om het OS zelf. Welke optie geef je mee aan gcc om een kernel te bakken ipv. een (ELF-)binary?
  zondag 1 augustus 2010 @ 23:25:43 #168
254493 Trollface.
gr rob fruithof, groningencity
pi_84755456
quote:
Op zondag 1 augustus 2010 23:10 schreef TeringHenkie het volgende:

[..]

I know, maar het ging me meer om de compiler vs. kernel dan om het OS zelf. Welke optie geef je mee aan gcc om een kernel te bakken ipv. een (ELF-)binary?
Pak de makefile erbij, zou ik zeggen :P de Linux-kernel is in ieder geval niet helemaal standaard C.
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
pi_84755766
Nou ik ken het niet vinden :P

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
pi_84756067
gast :')
  maandag 2 augustus 2010 @ 00:10:56 #171
254493 Trollface.
gr rob fruithof, groningencity
pi_84757421
Mobiel kan spoilers niet inklappen :')

Ook,
# Make variables (CC, etc...)

AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
CPP = $(CC) -E
AR = $(CROSS_COMPILE)ar
NM = $(CROSS_COMPILE)nm
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
AWK = awk
GENKSYMS = scripts/genksyms/genksyms
INSTALLKERNEL := installkernel
DEPMOD = /sbin/depmod
KALLSYMS = scripts/kallsyms
PERL = perl
CHECK = sparse

CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
-Wbitwise -Wno-return-void $(CF)
MODFLAGS = -DMODULE
CFLAGS_MODULE = $(MODFLAGS)
AFLAGS_MODULE = $(MODFLAGS)
LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds
CFLAGS_KERNEL =
AFLAGS_KERNEL =
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage

i.c.m. het vmlinux-gedeelte. :)
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
pi_84758005
quote:
Op maandag 2 augustus 2010 00:10 schreef Trollface. het volgende:
Mobiel kan spoilers niet inklappen :')


Maar goed, ik snap het wel. Thx ^O^
pi_84898443
C++ lijkt een beetje op CSS als je totaal niet oplet :{

[ Bericht 93% gewijzigd door Pakspul op 05-08-2010 16:37:15 ]
  donderdag 5 augustus 2010 @ 16:36:39 #174
118585 Crutch
Filantroop || Taalzwengel
pi_84898864
quote:
Op donderdag 5 augustus 2010 16:23 schreef Pakspul het volgende:
Waarom werkt tekst transparantie in de volgende situatie niet?
[ code verwijderd ]

Zoals te zien is dat bij de eerste div situatie de tekst gewoon mooi wit is, maar bij de twee is de tekst ineens roodachtig ook al zou je anders verwachten :?
[CSS] voor dummies #15
Je moeder is een hamster
  donderdag 5 augustus 2010 @ 16:46:54 #175
118585 Crutch
Filantroop || Taalzwengel
pi_84899197
quote:
Op donderdag 5 augustus 2010 16:23 schreef Pakspul het volgende:
C++ lijkt een beetje op CSS als je totaal niet oplet :{
Als je totaal niet oplet dan lijkt Annemarie Jorritsma ook op Chantal Janzen :P
Je moeder is een hamster
pi_84901865
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int doeietsmetgetal(int);

int _tmain(int argc, _TCHAR* argv[])
{
    int (*fpoint)(int) = doeietsmetgetal;
    cout << fpoint(5);
    return 0;

}

int doeietsmetgetal(int x){

    int * y = new int(x*5);
    return *y;

}
Hoe zit het hier met *y? Blijft deze geheugen innemen totdat mijn programma afsluit? Ik kan namelijk *fpoint niet verwijderen, aangezien ik 'm niet met new gecreëerd heb.
pi_84901945
*y blijft inderdaad geheugen innemen omdat je new aanroept. Ook als je *fpoint wel zou kunnen verwijderen, dan blijven alle *y instanties gewoon geheugen innemen.
pi_84902011
quote:
Op donderdag 5 augustus 2010 18:10 schreef thabit het volgende:
*y blijft inderdaad geheugen innemen omdat je new aanroept. Ook als je *fpoint wel zou kunnen verwijderen, dan blijven alle *y instanties gewoon geheugen innemen.
En hoe zorg ik ervoor dat y geen geheugen meer inneemt? Niet aanroepen met new? En hoe delete ik m'n fpoint? Of moet ik dan van die doeietsmetgetal functie gewoon een class maken? En mag ik aannemen dat zodra een variabele die zonder new is gedeclareerd verwijderd wordt zodra de functie exit?
pi_84902611
Locale (niet-static) variabelen van functies worden op de stack aangemaakt, en die stackruimte wordt vrijgegeven als je de functie verlaat. De pointer y wordt dus ook vrijgegeven, maar niet de int *y waar hij naar verwijst. Ook is fpoint een functiepointer, dus gewoon een locale variabele die wordt verwijderd zodra je de functie verlaat. In het bovenstaande voorbeeld kun je beter
int y = x*5; return y;
doen, of zelfs direct return x*5;
pi_84902855
quote:
Op donderdag 5 augustus 2010 18:35 schreef thabit het volgende:
Locale (niet-static) variabelen van functies worden op de stack aangemaakt, en die stackruimte wordt vrijgegeven als je de functie verlaat. De pointer y wordt dus ook vrijgegeven, maar niet de int *y waar hij naar verwijst. Ook is fpoint een functiepointer, dus gewoon een locale variabele die wordt verwijderd zodra je de functie verlaat. In het bovenstaande voorbeeld kun je beter
int y = x*5; return y;
doen, of zelfs direct return x*5;
Ok en m'n functiepointer? Valt die gewoon te verwijderen? Of moet ik 'm dan in de scope van een functie zien te proppen?
pi_84903151
Je functiepointer is gewoon een lokale variabele en zit in de scope van _tmain. In dit voorbeeld heb je verder geen functiepointers nodig en kun je gewoon
cout << doeietsmetgetal(5);
doen.
pi_84907795
Thanks! ^O^
  vrijdag 6 augustus 2010 @ 13:51:23 #183
189216 netolk
maar dan andersom
pi_84936110
Hey,

Ik heb een probleem met virtual functies...

ik heb een namespace gemaakt in een header genaamd Shape.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace shp{
    class Point{
        unsigned short X,Y;
        public:
            Point(unsigned short x,unsigned short y):X(x),Y(y) {}
            unsigned short get_X(){return X;}
            unsigned short get_Y(){return Y;}
    };
    class Shape{
        public:
            virtual void Rotate(int)=0;
            virtual void Draw()=0;
            virtual bool is_Closed()=0;
    };
    
    class Circle:public Shape{
        Point _CENTER;
        unsigned _RADIUS;
        
        void Rotate(int);
        public:
            Circle(Point p,unsigned r):_CENTER(p),_RADIUS(r){}
            
            void Draw();
            bool is_Closed(){return true;}
    };
}
en ik heb dan in mn main het volgende staan:
1
2
3
4
5
6
7
#include "Shape.h"
int main(){
    shp::Circle myCircle(shp::Point(40,20),5);
    
    //myCircle.Draw();
    return 0;
}
Als ik dit probeer te compileren krijg ik de volgende foutmelding:
1
2
...l\Temp/ccoiasqN.o:main.cpp:(.text$_ZN3shp6CircleC1ENS_5PointEj[shp::Circle::Circle(shp::Point, unsigned int)]+0x16): undefined reference to `vtable for shp::Circle'
collect2: ld returned 1 exit status
ik gebruik G++ als compiler, zou iemand me kunnen vertellen wat ik dan niet goed doe?
Beware of the Raping Zebra's
pi_84936360
even een recompile ofzo? hij zegt dat Circle geen virtual table heeft, en blijkbaar ergens niet als derived class is gedefinieerd?

Geen idee verder.
  vrijdag 6 augustus 2010 @ 14:01:44 #185
189216 netolk
maar dan andersom
pi_84936577
quote:
Op vrijdag 6 augustus 2010 13:56 schreef Cruise.Elroy het volgende:
even een recompile ofzo? hij zegt dat Circle geen virtual table heeft, en blijkbaar ergens niet als derived class is gedefinieerd?

Geen idee verder.
Dat is toch raar want Circle zou toch gewoon een virtual table moeten hebben aangezien zijn base class puur virtueel is?
Beware of the Raping Zebra's
pi_84938228
Waarom heb je Circle::Rotate private gemaakt?
  vrijdag 6 augustus 2010 @ 14:41:10 #187
189216 netolk
maar dan andersom
pi_84938305
nou omdat een cirkel roteren niet echt nuttig is...
maar ik dacht miss is dat het probleem maar toen ik hem public had kreeg ik nog steeds de zelfde melding...
Beware of the Raping Zebra's
pi_84938455
Hij is public in Shape. Dus als je een object van type Shape hebt, en weet niet wat voor Shape het is, moet je wel Rotate erop kunnen aanroepen. Maar goed, dat terzijde.
  vrijdag 6 augustus 2010 @ 14:47:01 #189
189216 netolk
maar dan andersom
pi_84938565
quote:
Op vrijdag 6 augustus 2010 14:44 schreef thabit het volgende:
Hij is public in Shape. Dus als je een object van type Shape hebt, en weet niet wat voor Shape het is, moet je wel Rotate erop kunnen aanroepen. Maar goed, dat terzijde.
Hmm... daar heb je idd een punt
Beware of the Raping Zebra's
pi_84938850
Misschien zit de fout in Shape.cpp, kun je die tonen?
  vrijdag 6 augustus 2010 @ 15:03:55 #191
189216 netolk
maar dan andersom
pi_84939258
Staat ook in mn 1e post maar ik zal hem nog een keertje neerzetten
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef SHAPE_H
#define SHAPE_H
namespace shp{
    class Point{
        unsigned short X,Y;
        public:
            Point(unsigned short x,unsigned short y):X(x),Y(y) {}
            unsigned short get_X(){return X;}
            unsigned short get_Y(){return Y;}
    };
    class Shape{
        public:
            virtual void Rotate(int)=0;
            virtual void Draw()=0;
            virtual bool is_Closed()=0;
    };
    class Polygon:public Shape{
        public:
            bool is_Closed(){return true;}
    };
    
    class Circle:public Shape{
        Point _CENTER;
        unsigned _RADIUS;
        
        public:
            Circle(Point p,unsigned r):_CENTER(p),_RADIUS(r){}
            
            void Rotate(int);
            void Draw();
            bool is_Closed(){return true;}
    };
}
#endif
ik heb die Circle::rotate(int) ook maar even public gemaakt

[ Bericht 4% gewijzigd door netolk op 06-08-2010 15:17:26 ]
Beware of the Raping Zebra's
pi_84939357
Dat is een header file, geen cpp file.
  vrijdag 6 augustus 2010 @ 15:16:45 #193
189216 netolk
maar dan andersom
pi_84939814
quote:
Op vrijdag 6 augustus 2010 15:06 schreef thabit het volgende:
Dat is een header file, geen cpp file.
Ja, iknow ik heb geen .cpp file maar die heb ik voor classes toch ook niet nodig??

Ik heb de functies nog niet verder uitgewerkt, dus nog geen .cpp
Beware of the Raping Zebra's
pi_84939909
Dan zit daar dus het probleem: de functies Circle::Rotate en Circle::Draw zijn alleen gedeclareerd, maar niet gedefinieerd. Dat vindt de linker niet zo grappig (vandaar ook een 'ld' error: het compilen gaat op zich goed, alleen het linken wil niet).
  vrijdag 6 augustus 2010 @ 15:19:35 #195
189216 netolk
maar dan andersom
pi_84939958
quote:
Op vrijdag 6 augustus 2010 15:18 schreef thabit het volgende:
Dan zit daar dus het probleem: de functies Circle::Rotate en Circle::Draw zijn alleen gedeclareerd, maar niet gedefinieerd. Dat vindt de linker niet zo grappig (vandaar ook een 'ld' error: het compilen gaat op zich goed, alleen het linken wil niet).
Hehe, daar kwam ik idd ook net achter...

Best wel dom, nouja bedankt in iedergeval
Beware of the Raping Zebra's
pi_84940150
quote:
Op vrijdag 6 augustus 2010 15:18 schreef thabit het volgende:
Dan zit daar dus het probleem: de functies Circle::Rotate en Circle::Draw zijn alleen gedeclareerd, maar niet gedefinieerd. Dat vindt de linker niet zo grappig (vandaar ook een 'ld' error: het compilen gaat op zich goed, alleen het linken wil niet).
Maar hij roept Rotate en Draw niet aan
pi_84940218
Nog wat algemene opmerkingen: als je een base class aanmaakt, waar je classes van wilt afleiden, is het raadzaam om ook de destructor virtual te maken. En in de constructor van Circle kun je Point beter als reference doorgeven dan als value.
pi_84940235
quote:
Op vrijdag 6 augustus 2010 15:23 schreef TeringHenkie het volgende:

[..]

Maar hij roept Rotate en Draw niet aan
C++ is geen Python.

[ Bericht 0% gewijzigd door thabit op 06-08-2010 15:33:57 ]
pi_84940507
Wel rare error voor een linkerfout. Maar is het nu gefixed?
  vrijdag 6 augustus 2010 @ 15:46:33 #200
189216 netolk
maar dan andersom
pi_84941123
quote:
Op vrijdag 6 augustus 2010 15:31 schreef Cruise.Elroy het volgende:
Wel rare error voor een linkerfout. Maar is het nu gefixed?
jep

quote:
Op vrijdag 6 augustus 2010 15:25 schreef thabit het volgende:
Nog wat algemene opmerkingen: als je een base class aanmaakt, waar je classes van wilt afleiden, is het raadzaam om ook de destructor virtual te maken. En in de constructor van Circle kun je Point beter als reference doorgeven dan als value.
hoe zo als reference dan? kost dan minder resources?

En die destructor moet ik die in de afgeleide classes ook neerzetten of kan ik dat achterwege laten? (tenzij ik een destructor nodig heb natuurlijk)
Beware of the Raping Zebra's
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')