abonnement Unibet Coolblue Bitvavo
pi_86890614
&
Nu mét gratis web-support!

Als je vragen hebt over C of C++, dan zit je hier goed met een (hopelijk later grote) kliek guru's.
Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt. ;)

En onthoud: lieve modjes maken dit topic centraal! O+

Vorige delen:
[C(++)] voor dummies - Deel 1
:? FAQ :?
:? Ik wil beginnen met C/C++, wat voor IDE is het beste voor mij?
Dat ligt eraan. Als je alléén voor MS Windows wilt gaan developen, is Visual Studio een goede optie. Deze kun je bovendien als je student bent via Microsoft DreamSpark of MSDN Academic Alliance gratis downloaden. :)
Wil je echter cross-platform (dat wil zeggen: voor b.v. Windows én Linux, of Linux én Mac) gaan developen, dan zijn Dev-C++ en Code::Blocks een goede optie voor C++. Eclipse (ook voor C) en NetBeans zijn ook goede keuzes, alleen zijn deze meer op Java gericht. Een ander IDE, van Nokia's hand, is Qt Creator. Dit IDE maakt gebruik van het Qt-framework, een set van functies, types, variabelen etc. om programmeren makkelijker te maken. Dit framework is cross-platform. :)

:? Hoe gebruik ik x/wat houdt y in?
Stop! Voor vragen hoe je bepaalde ingebouwde functies, types of classes gebruikt kun je de C referentie of de C++ referentie gebruiken. Hier staat alles in wat je nodig hebt. :)

:? Wat is het verschil tussen C en C++?
C++ is, eenvoudig gezegd, een nieuwere versie van C (vandaar ook de naam, C++ wil zeggen: verhoog de waarde van C met 1). Het biedt onder andere betere klasse-ondersteuning en verschillende nieuwe types, zoals vectors en maps, om er maar een paar te noemen.
Als je wilt beginnen met leren, is C++ beter, want C wordt eigenlijk niet vaak meer gebruikt.

:? Wat is het Windows SDK?
Het Windows SDK is een set van functies, gemaakt door Microsoft, om het programmeren voor Windows te vereenvoudigen.
Als je ervoor kiest het Windows SDK te gebruiken, houd er dan rekening mee dat je applicatie Windows-only wordt!
Je kunt de laatste versie hier vinden ter download. :)

Handige links:

Referenties en tutorials:
Leer C en/of C++ (engels)
Leer programmeren met het Windows SDK (engels)
Info over het Windows SDK (engels)

Deze OP vind je hier.
pi_86891504
tvp. Ik ken het, wil het wel leren.
pi_86892079
tvp::tvp() {cout << "tvp\n";}
pi_86892210
tsss, geen std::endl gebruikt :P
pi_86892486
Eigenlijk had ik ook geen cout moeten gebruiken. :P.
pi_86892883
Niks mis met std::cout :7
pi_86895140
C is voor echte bazen.
Of toch du vader?
  maandag 27 september 2010 @ 17:33:51 #8
254493 Trollface.
gr rob fruithof, groningencity
pi_86907941
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <fok/tvp.h>

#define USER_ID 254493

int main(int argc, char *argv[]) {
    if(argc < 2) {
        printf("Usage: %s <topic number>\n", argv[0]);
        exit(1);
    }

    if(tvp_place(atoi(argv[1]), USER_ID)) {
        printf("TVP gemacht!\n");
        exit(0);
    } else {
        printf("Error placing TVP: %s", fok_last_error());
        exit(1);
    }
}
★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★
  maandag 27 september 2010 @ 18:03:42 #9
189216 netolk
maar dan andersom
pi_86909190
@ Cruise.Elroy het is inderdaad gelukt :P Weet niet waarom het eerst niet werkte maar toen heb ik het opnieuw geschreven en werkte het dus er moest ergens een fout in die code hebben gezeten

Nu alleen nog even een manier vinden om de router een bepaalde poort te gebruiken voor het progje...
Beware of the Raping Zebra's
pi_86930912
1void main() {char _[4](_[(((0[_]=035<<2)+1)[_-0[_]]=0[_]|2)-0[_]]=_[0]-4)-(_[1]-011))[_]=0[_]-1[_]^~1;std::cout<<_;}
  dinsdag 28 september 2010 @ 15:52:17 #11
254493 Trollface.
gr rob fruithof, groningencity
pi_86944303
quote:
Op dinsdag 28 september 2010 08:30 schreef Cruise.Elroy het volgende:

[ code verwijderd ]


1void main()
:')
★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_87009287
Omg het compileert niet meer :o Blijkbaar iets kapot gegaan bij ctrl-c ctrl-v uit vorige topics
  donderdag 30 september 2010 @ 21:02:36 #13
189216 netolk
maar dan andersom
pi_87037564
quote:
Op donderdag 30 september 2010 06:16 schreef Cruise.Elroy het volgende:
Omg het compileert niet meer :o Blijkbaar iets kapot gegaan bij ctrl-c ctrl-v uit vorige topics
Wat dat void main() niet??

dat is ook geen C++
Beware of the Raping Zebra's
pi_87037661
void main() compileert prima, er is ergens een haakje of punt-komma verdwenen en ik heb het origineel niet meer :P
  donderdag 30 september 2010 @ 21:11:32 #15
189216 netolk
maar dan andersom
pi_87037985
umm nee void main compileert bij mijn weten alleen in microsoft meuk en in C maar niet in C++...
1bla.cpp:1: error: `main' must return `int
Beware of the Raping Zebra's
pi_87040380
quote:
Op donderdag 30 september 2010 21:11 schreef netolk het volgende:
umm nee void main compileert bij mijn weten alleen in microsoft meuk en in C maar niet in C++...
[ code verwijderd ]


Ik compileer ook in microsoft meuk
  vrijdag 1 oktober 2010 @ 07:54:28 #17
189216 netolk
maar dan andersom
pi_87049766
vandaar :P
Beware of the Raping Zebra's
  vrijdag 1 oktober 2010 @ 08:16:06 #18
52513 whosvegas
The Trickster
pi_87049959
Een tvp, lang niks meer mee gedaan, nu is er Java :)
Are you nuts??
pi_87050109
1int main(){int a = 7370356; int b = 29477;printf((char*)&b, &a);} 
pi_87067074
Waarom geen indentatie of nieuwe regels ;( Tevens geen stdio.h geinclude dus JOUW CODE IS FOUT MENEERTJE :(

[ Bericht 36% gewijzigd door Luchtkoker op 01-10-2010 16:56:02 ]
Of toch du vader?
  vrijdag 1 oktober 2010 @ 20:39:03 #21
189216 netolk
maar dan andersom
pi_87075050
hey even een vraagje ik ben nu bezig met het leren om winsock te gebruiken in applicaties... maar nu snap ik alleen even niet waarom een pc eigenlijk een firewall nodig heeft omdat met sockets er een listening port moet zijn...
Beware of the Raping Zebra's
pi_87132284
hey. ik had een klein vraagje over assembleertaal (en ik dacht dat dit het topic was waarin ik mijn vraag het beste kan stellen). Is het niet zo dat je voor elke processor een andere assembleertaal hebt?
Hoe doen bedrijven dat dan die assembleertaal voor een stukje code gebruiken (bijvoorbeeld gebruiken met c++)?
Finally, someone let me out of my cage
pi_87132379
quote:
Op zondag 3 oktober 2010 14:38 schreef minibeer het volgende:
hey. ik had een klein vraagje over assembleertaal (en ik dacht dat dit het topic was waarin ik mijn vraag het beste kan stellen). Is het niet zo dat je voor elke processor een andere assembleertaal hebt?
Hoe doen bedrijven dat dan die assembleertaal voor een stukje code gebruiken (bijvoorbeeld gebruiken met c++)?
Die schrijven voor de verschillende processoren een apart stukje assembler. Omdat ze niet aan de gang willen blijven en er nogal veel verschillende processoren zijn, schrijven ze de code vaak ook nog in C.
pi_87132670
quote:
Op zondag 3 oktober 2010 14:41 schreef thabit het volgende:

[..]

Die schrijven voor de verschillende processoren een apart stukje assembler. Omdat ze niet aan de gang willen blijven en er nogal veel verschillende processoren zijn, schrijven ze de code vaak ook nog in C.
Ok. Zelf code in assembleertaal schrijven is dus eigenlijk onbegonnen werk, als je wil dat je programmatje compatibel is naar andere processoren?
Finally, someone let me out of my cage
pi_87132986
quote:
Op zondag 3 oktober 2010 14:51 schreef minibeer het volgende:

[..]

Ok. Zelf code in assembleertaal schrijven is dus eigenlijk onbegonnen werk, als je wil dat je programmatje compatibel is naar andere processoren?
Je moet de stukken die je in assembler wilt schrijven, ook in C schrijven, zodat het in elk geval voor elke processor compileert.

Je moet er een beetje een hiërarchie in zien. Alles in C(++) schrijven is ook onbegonnen werk, moet je alleen doen bij die stukken code die snel en geheugen-efficiënt dienen te zijn. Daarbovenop zet je een hogere programmeertaal (eentje met een fatsoenlijke syntax en garbage collecting). Binnen je C(++) kun je de meest kritieke stukken nog in inline-assembler schrijven, alleen zit je dan wel veel met #ifdef en zo te kloten. Zelfs tussen linux en windows is assembler niet hetzelfde (M$ doet er alles aan om dingen maar niet portable te maken, zelfs de syntax voor x86-assemblercode is anders).
pi_87133711
Leuk weetje.
quote:
What language was RollerCoaster Tycoon programmed in?
It's 99% written in x86 assembler/machine code (yes, really!), with a small amount of C code used to interface to MS Windows and DirectX.
http://www.chrissawyergames.com/faq3.htm
pi_87134377
quote:
Op zondag 3 oktober 2010 15:24 schreef Diabox het volgende:
Leuk weetje.
[..]


:')

Komt ie daar weer mee.
Of toch du vader?
  zondag 3 oktober 2010 @ 15:57:08 #28
189216 netolk
maar dan andersom
pi_87134715
quote:
Op zondag 3 oktober 2010 15:46 schreef Luchtkoker het volgende:

[..]

:')

Komt ie daar weer mee.
Het is toch een leuk weetje ??
Beware of the Raping Zebra's
pi_87134793
quote:
Op zondag 3 oktober 2010 15:57 schreef netolk het volgende:

[..]

Het is toch een leuk weetje ??
Ja, hij wordt na een aantal honderd keer zien alleen een beetje saai. Hé, Diabox? :(
Of toch du vader?
pi_87135352
quote:
Op zondag 3 oktober 2010 15:59 schreef Luchtkoker het volgende:

[..]

Ja, hij wordt na een aantal honderd keer zien alleen een beetje saai. Hé, Diabox? :(
homo :(
pi_87135605
quote:
Op zondag 3 oktober 2010 16:17 schreef Diabox het volgende:

[..]

homo :(
Gereport :(
Of toch du vader?
pi_87136757
quote:
Op zondag 3 oktober 2010 15:24 schreef Diabox het volgende:
Leuk weetje.
[..]
Wat heb ik medelijden met die programmeurs...
Finally, someone let me out of my cage
pi_87137515
quote:
Op zondag 3 oktober 2010 15:01 schreef thabit het volgende:

[..]

Je moet de stukken die je in assembler wilt schrijven, ook in C schrijven, zodat het in elk geval voor elke processor compileert.

Je moet er een beetje een hiërarchie in zien. Alles in C(++) schrijven is ook onbegonnen werk, moet je alleen doen bij die stukken code die snel en geheugen-efficiënt dienen te zijn. Daarbovenop zet je een hogere programmeertaal (eentje met een fatsoenlijke syntax en garbage collecting). Binnen je C(++) kun je de meest kritieke stukken nog in inline-assembler schrijven, alleen zit je dan wel veel met #ifdef en zo te kloten. Zelfs tussen linux en windows is assembler niet hetzelfde (M$ doet er alles aan om dingen maar niet portable te maken, zelfs de syntax voor x86-assemblercode is anders).
ah... ik dacht dat c en c++ ook wel gebruikt werden om programma's op zichzelf mee te schrijven, maar ik bedenk net dat het een enorm gekloot is om in c++ een simpel window te openen. eigenlijk alle programma's die ik schrijf zijn gewoon in 1 programmeertaal... Hoe doet men dat dan, verschillende programmeertalen 'door elkaar' gebruiken? Libraries met methodes/functies erin ofzo? (dat is de manier waarop ik dat weleens heb gedaan met qbasic en assembleertaal :P)
Finally, someone let me out of my cage
pi_87137768
quote:
Op zondag 3 oktober 2010 17:22 schreef minibeer het volgende:

[..]

ah... ik dacht dat c en c++ ook wel gebruikt werden om programma's op zichzelf mee te schrijven, maar ik bedenk net dat het een enorm gekloot is om in c++ een simpel window te openen. eigenlijk alle programma's die ik schrijf zijn gewoon in 1 programmeertaal... Hoe doet men dat dan, verschillende programmeertalen 'door elkaar' gebruiken? Libraries met methodes/functies erin ofzo? (dat is de manier waarop ik dat weleens heb gedaan met qbasic en assembleertaal :P)
Ja, DLLs dus (dynamic linked libraries), Object files, etc.
Of toch du vader?
pi_87137898
quote:
Op zondag 3 oktober 2010 17:22 schreef minibeer het volgende:

[..]

ah... ik dacht dat c en c++ ook wel gebruikt werden om programma's op zichzelf mee te schrijven, maar ik bedenk net dat het een enorm gekloot is om in c++ een simpel window te openen.
Dat wordt inderdaad gedaan, maar je geeft zelf al aan waarom dat niet handig is. Veel mensen blijven toch in oude patronen vastgeroest zitten: 20 jaar geleden deed men het zo, dus doen we het nu nog steeds zo. :P
quote:
eigenlijk alle programma's die ik schrijf zijn gewoon in 1 programmeertaal... Hoe doet men dat dan, verschillende programmeertalen 'door elkaar' gebruiken? Libraries met methodes/functies erin ofzo? (dat is de manier waarop ik dat weleens heb gedaan met qbasic en assembleertaal :P)
Dat kan inderdaad met libraries. Vaak moet je dan wel bovenop je C-code nog een speciale interface schrijven waarmee je dan vanuit de hogere programmeertaal de C-code kan aanroepen.
pi_87158693
quote:
Op zondag 3 oktober 2010 17:22 schreef minibeer het volgende:

[..]

ah... ik dacht dat c en c++ ook wel gebruikt werden om programma's op zichzelf mee te schrijven, maar ik bedenk net dat het een enorm gekloot is om in c++ een simpel window te openen. eigenlijk alle programma's die ik schrijf zijn gewoon in 1 programmeertaal... Hoe doet men dat dan, verschillende programmeertalen 'door elkaar' gebruiken? Libraries met methodes/functies erin ofzo? (dat is de manier waarop ik dat weleens heb gedaan met qbasic en assembleertaal :P)
Gebruik maken van libraries, die dus in elke taal kunnen zijn geschreven. Ikzelf schrijf alles in C++, en ik heb gewoon zelf een simpele wrapper lib geschreven voor het maken van vensters e.d. en die gebruikt op zijn beurt weer de standaard functies uit de windows headers. CreateWindowEx() etc.
pi_87158790
quote:
Op zondag 3 oktober 2010 15:01 schreef thabit het volgende:

[..]

Je moet de stukken die je in assembler wilt schrijven, ook in C schrijven, zodat het in elk geval voor elke processor compileert.

Je moet er een beetje een hiërarchie in zien. Alles in C(++) schrijven is ook onbegonnen werk, moet je alleen doen bij die stukken code die snel en geheugen-efficiënt dienen te zijn. Daarbovenop zet je een hogere programmeertaal (eentje met een fatsoenlijke syntax en garbage collecting). Binnen je C(++) kun je de meest kritieke stukken nog in inline-assembler schrijven, alleen zit je dan wel veel met #ifdef en zo te kloten. Zelfs tussen linux en windows is assembler niet hetzelfde (M$ doet er alles aan om dingen maar niet portable te maken, zelfs de syntax voor x86-assemblercode is anders).
Meestal schrijf je "snelle" code in C(++) waar je gewoon goed nadenkt over je geheugen-access, branches, cache misses etc. Echt ASM programmeren is eigenlijk niet nodig op huidige PC/Console hardware, en als het al nodig is, dan is het voor je gedaan door de vendor en in een leuke lib gezet voor je :D

Wat je tegenwoordig vaak ziet zijn intrinsics, dit zijn een soort super-basic functies die in je compiler zijn ingebakken en direct naar ASM worden omgezet voor verschillende procs:
http://msdn.microsoft.com/en-us/library/5704bbxw.aspx?ppud=4
pi_87158811
quote:
Op zondag 3 oktober 2010 14:51 schreef minibeer het volgende:

[..]

Ok. Zelf code in assembleertaal schrijven is dus eigenlijk onbegonnen werk, als je wil dat je programmatje compatibel is naar andere processoren?
Voor elke proc alles dubbel schrijven en/of een doolhof aan #ifdef :D
pi_87161711
ah bedankt voor de reacties ^O^
maar hoe kan het dan dat rollercoaster tycoon het op verschillende processors doet (tenminste ik neem aan dat ie dat doet), terwijl het voor 99% in asm is geschreven?
Finally, someone let me out of my cage
pi_87168238
quote:
Op maandag 4 oktober 2010 10:47 schreef minibeer het volgende:
ah bedankt voor de reacties ^O^
maar hoe kan het dan dat rollercoaster tycoon het op verschillende processors doet (tenminste ik neem aan dat ie dat doet), terwijl het voor 99% in asm is geschreven?
De originele RCT doet het dan ook alleen op compatible 8086 processoren, denk ik. Maar dat was toentertijd ook de standaard, dat had iedereen thuis staan. Die basisset wordt tegenwoordig door elke CPU ondersteunt.
Vergeet niet dat Intel en AMD misschien wel verschillende CPUs maken, maar ze ondersteunen allemaal (nagenoeg) precies dezelfde instructieset. ;) Pas als je echt naar andere architecturen gaat kijken, zoals embedded systemen, rare mainframes of Macs met PowerPCs krijg je problemen.

Er zijn (nu nog?) kleine verschillen in de instruciesets tussen AMD en Intel, maar die instructies worden standaard niet gebruikt door je C++ compiler en als je ASM zit te klooien laatje die ook gewoon links liggen tenzij je echt hele specifieke redenen hebt.
Ik weet niet of je het hebt meegemaakt, maar toen de MMX processoren op de markt kwamen waren er spellen die alleen draaide op processoren die MMX instructies ondersteunden, zelfde met 3DNow instrucies en nog wat van die uitbreidingen.

Zelfs nu kan je bij het compileren van je programma in Visual Studio aangeven dat hij "modernere" instructies mag gebruiken, en dan werken je programma's dus niet op oudere PCs, bijv. niet op oude AMDs maar wel op oude intel CPUs. Laatst nog mee lopen klooien, en je kan er best wel wat procenten uitpersen. :)
pi_87176991
quote:
Op maandag 4 oktober 2010 14:07 schreef Cruise.Elroy het volgende:

[..]

De originele RCT doet het dan ook alleen op compatible 8086 processoren, denk ik. Maar dat was toentertijd ook de standaard, dat had iedereen thuis staan. Die basisset wordt tegenwoordig door elke CPU ondersteunt.
Vergeet niet dat Intel en AMD misschien wel verschillende CPUs maken, maar ze ondersteunen allemaal (nagenoeg) precies dezelfde instructieset. ;) Pas als je echt naar andere architecturen gaat kijken, zoals embedded systemen, rare mainframes of Macs met PowerPCs krijg je problemen.

Er zijn (nu nog?) kleine verschillen in de instruciesets tussen AMD en Intel, maar die instructies worden standaard niet gebruikt door je C++ compiler en als je ASM zit te klooien laatje die ook gewoon links liggen tenzij je echt hele specifieke redenen hebt.
Ik weet niet of je het hebt meegemaakt, maar toen de MMX processoren op de markt kwamen waren er spellen die alleen draaide op processoren die MMX instructies ondersteunden, zelfde met 3DNow instrucies en nog wat van die uitbreidingen.

Zelfs nu kan je bij het compileren van je programma in Visual Studio aangeven dat hij "modernere" instructies mag gebruiken, en dan werken je programma's dus niet op oudere PCs, bijv. niet op oude AMDs maar wel op oude intel CPUs. Laatst nog mee lopen klooien, en je kan er best wel wat procenten uitpersen. :)
Ok, nu begrijp ik het :Y.
Ik dacht dat asm zo erg verschilde dat je zo ongeveer per computer echt sowieso opnieuw moest compileren, maar dat valt dus wel mee :s) .
Finally, someone let me out of my cage
pi_87177078
Nee, er zit een verschil tussen een andere processor en een andere architectuur. Niet elke processor heeft een andere architectuur; er zijn vele malen meer processoren dan architecturen, bovendien is het (met name hedendaags) veelal gestandaardiseerd zoals Cruise.Elroy zegt, om cross-processor compatibility te maximaliseren. :)
Of toch du vader?
  maandag 4 oktober 2010 @ 21:27:12 #43
189216 netolk
maar dan andersom
pi_87185488
quote:
Op maandag 4 oktober 2010 18:12 schreef Luchtkoker het volgende:
Nee, er zit een verschil tussen een andere processor en een andere architectuur. Niet elke processor heeft een andere architectuur; er zijn vele malen meer processoren dan architecturen, bovendien is het (met name hedendaags) veelal gestandaardiseerd zoals Cruise.Elroy zegt, om cross-processor compatibility te maximaliseren. :)
Gelukkig wel zeg anders zou het wel heel rot programmeren zijn...
Beware of the Raping Zebra's
pi_87197527
quote:
Op maandag 4 oktober 2010 18:09 schreef minibeer het volgende:

[..]

Ok, nu begrijp ik het :Y.
Ik dacht dat asm zo erg verschilde dat je zo ongeveer per computer echt sowieso opnieuw moest compileren, maar dat valt dus wel mee :s) .
Ja, dat zou ook wel raar zijn want gecompileerd c(++) is even portable als gecompileerd ASM.
  woensdag 6 oktober 2010 @ 17:25:20 #45
189216 netolk
maar dan andersom
pi_87252889
quote:
Op dinsdag 5 oktober 2010 08:32 schreef Cruise.Elroy het volgende:

[..]

Ja, dat zou ook wel raar zijn want gecompileerd c(++) is even portable als gecompileerd ASM.
Komt het niet (ongeveer) op het zelfde neer?
Beware of the Raping Zebra's
pi_87267929
ik hoorde dat je via de XNA-library dingen voor de xbox kon maken, dus daar heb ik eens wat over opgezocht. Blijkt dat je bij microsoft een abo moet afsluiten voor minstens 4 maanden bij de XNA Creators Club voor 50 dollar... Terwijl het enige wat je wil doen gewoon een paar bestandjes op je eigen xbox zetten :(
Finally, someone let me out of my cage
pi_87268213
Met XNA kan je nog steeds gewoon leuke apps maken voor op de PC. :) Als je dan echt iets tofs maakt kan je het altijd nog op de Xbox zetten :D
pi_87268455
quote:
Op woensdag 6 oktober 2010 23:20 schreef Cruise.Elroy het volgende:
Met XNA kan je nog steeds gewoon leuke apps maken voor op de PC. :) Als je dan echt iets tofs maakt kan je het altijd nog op de Xbox zetten :D
Ja daswaar. Maar ik blijf het raar vinden, eerst een fakking dure xbox 360 kopen, dan ook nog veel geld moeten betalen om er iets op te zetten wat je zelf hebt geschreven. Ik vind 50 euro ook belachelijk veel te duur voor wat je ervoor terugkrijgt.
pff, ik vraag me af of er geen andere manier is om je xna dingetje aan de gang te krijgen op zo'n ding...

[ Bericht 6% gewijzigd door minibeer op 06-10-2010 23:38:18 ]
Finally, someone let me out of my cage
pi_87269366
Euhm die XBOX koop je als spelsysteem, niet als devkit. :)

Er zijn andere manieren ja, maar 50 euro is een koopje vergeleken met het gedoe om het op andere manieren aan de praat te krijgen.
pi_87269546
quote:
Op woensdag 6 oktober 2010 23:54 schreef Cruise.Elroy het volgende:
Euhm die XBOX koop je als spelsysteem, niet als devkit. :)

Er zijn andere manieren ja, maar 50 euro is een koopje vergeleken met het gedoe om het op andere manieren aan de praat te krijgen.
ja maar maakt niet uit toch, je betaalt ervoor, dan lijkt het me logisch dat je er dingen op mag zetten, net zoals bij een computer bijvoorbeeld. En als het nou iets eenmaligs was, of dat je er iets fysieks voor terugkrijgt, maar nee. Het is gewoon dat microsoft geld wil hebben, je betaalt verder niet omdat het hun geld kost ofzo. Voor kleine gamebedrijven is 50 euro goed te doen, maarja ik ben student en ik weet niet eens of ik er vaker dan 1 keer iets op wil zetten.
Maargoed, genoeg microsoftbashen voor vandaag. weltrusten :s)
Finally, someone let me out of my cage
pi_87269648
Gamebedrijven hebben devkits van 5000+ euro per stuk. :P
En dat hele "je koopt het dus je mag er alles op" geldt niet voor dit soort dingen afaik. Ding is niet gemaakt als devkit dus je kan het gewoon zien als een accesoire, zoals een softwaretitel. En het ondersteunen van de XNA community kost ook veel geld en tijd, waar zij verder niets van terug zien. Het maken van een commerciele game gaat trouwens weer totaal anders.
pi_87278819
quote:
Op donderdag 7 oktober 2010 00:03 schreef Cruise.Elroy het volgende:
Gamebedrijven hebben devkits van 5000+ euro per stuk. :P
En dat hele "je koopt het dus je mag er alles op" geldt niet voor dit soort dingen afaik. Ding is niet gemaakt als devkit dus je kan het gewoon zien als een accesoire, zoals een softwaretitel. En het ondersteunen van de XNA community kost ook veel geld en tijd, waar zij verder niets van terug zien. Het maken van een commerciele game gaat trouwens weer totaal anders.
Je zal wel gelijk hebben, ik vind gewoon dat ze het niet slim doen.Want nu moet je als je wil beginnen al 50 euro betalen. Ze zouden beter iets kunnen bedenken waarin je vrij bent om te beginnen en dan betaald voor iets waar je echt iets aan hebt.
Laat me nou lekker zeiken :').
Finally, someone let me out of my cage
  zondag 10 oktober 2010 @ 00:38:00 #53
296399 Outlined
Renaissance Man
pi_87371854
quote:
Op zondag 3 oktober 2010 15:24 schreef Diabox het volgende:
Leuk weetje.
[..]


Haast niet voor te stellen als je dit zo ziet:

Come on, who can, who can, can hear the bass drum.
  zondag 10 oktober 2010 @ 10:53:59 #54
189216 netolk
maar dan andersom
pi_87378511
quote:
Op zondag 10 oktober 2010 00:38 schreef Outlined het volgende:

[..]

Haast niet voor te stellen als je dit zo ziet:
umm... denk dat je plaatje niet werkt....

en die graphics zijn minder ja, maar dat zegt nog niets over hoe het geprogrammeerd is...
Beware of the Raping Zebra's
pi_87405538
in c++ kon je zon leuk truukje doen waardoor je een reference als type van een functie kan hebben. Waardoor je sit soort dingen kan doen:
Grootste(variable1, variabele2) = 5;

Waardoor de grootste van die 2 variabelen op 5 werd gezet.
Dit kan niet in c#, of wel?
Finally, someone let me out of my cage
  maandag 11 oktober 2010 @ 00:27:01 #56
296399 Outlined
Renaissance Man
pi_87405818
quote:
Op maandag 11 oktober 2010 00:16 schreef minibeer het volgende:
in c++ kon je zon leuk truukje doen waardoor je een reference als type van een functie kan hebben. Waardoor je sit soort dingen kan doen:
Grootste(variable1, variabele2) = 5;

Waardoor de grootste van die 2 variabelen op 5 werd gezet.
Dit kan niet in c#, of wel?
is dit niet veel leesbaarderder :')

1
2
3
4
if (variable1 > variable2)
    variable1 = 5;
else
    variable2 = 5;
Come on, who can, who can, can hear the bass drum.
  maandag 11 oktober 2010 @ 08:51:44 #57
189216 netolk
maar dan andersom
pi_87408777
quote:
Op maandag 11 oktober 2010 00:27 schreef Outlined het volgende:

[..]

is dit niet veel leesbaarderder :')
[ code verwijderd ]


Lijkt me leesbaarder maar is wel meer code waardoor het toch onduidelijk kan worden als je zelf die andere notatie gewend bent...
Beware of the Raping Zebra's
pi_87409920
quote:
Op maandag 11 oktober 2010 00:27 schreef Outlined het volgende:
[..]
is dit niet veel leesbaarderder :')
[ code verwijderd ]
Vind je? Semantisch niet echt geweldig leesbaar. Liever:
1Rijkste(GraafA, KoningB).GeefAanDeArmen();
dan
1if (GraafA.Rijkdom> KoningB.Rijkdom) GraafA.GeefAanDeArmen() else GraafB.GeefAanDeArmen();
Vooral als de evaluatie wat ingewikkelder, of als je meerdere dingen moet nesten :)
pi_87414370
het ging me ook niet echt om de leesbaarheid maar meer om het truukje ;).
(kan die nou in c# of niet?)

[ Bericht 4% gewijzigd door minibeer op 11-10-2010 12:48:56 ]
Finally, someone let me out of my cage
pi_87414965
Ik ken C# niet zo goed, maar is het niet zo dat daar objecten per definitie reference-typed zijn? Dan zou het op zich met objecten moeten kunnen (mogelijk niet met built-in types).
pi_87414986
-edit verkeerd begrepen :*-
Of toch du vader?
pi_87415029
quote:
Op maandag 11 oktober 2010 13:00 schreef Luchtkoker het volgende:
huh reference-typed, wat is dat, ik snap er niks van
Gast :')
pi_87415059
quote:
Op maandag 11 oktober 2010 13:01 schreef Diabox het volgende:

[..]

Gast :')
Leuk he, quotes editen. :*
Of toch du vader?
pi_87415544
quote:
Op maandag 11 oktober 2010 12:59 schreef thabit het volgende:
Ik ken C# niet zo goed, maar is het niet zo dat daar objecten per definitie reference-typed zijn? Dan zou het op zich met objecten moeten kunnen (mogelijk niet met built-in types).
classes wel ja, structs niet
standaardtypes niet nee
dus ik denk dat het idd alleen met class-objecten kan
Finally, someone let me out of my cage
pi_87421402
quote:
Op maandag 11 oktober 2010 13:17 schreef minibeer het volgende:

[..]

classes wel ja, structs niet
standaardtypes niet nee
dus ik denk dat het idd alleen met class-objecten kan
Ben geen C# wiz maar je kan volgens mij expliciet aangeven dat je iets by ref wilt sturen, dus ik neem aan dat je het ook met primitives en structs kan.
pi_87423562
quote:
Op maandag 11 oktober 2010 16:05 schreef Cruise.Elroy het volgende:

[..]

Ben geen C# wiz maar je kan volgens mij expliciet aangeven dat je iets by ref wilt sturen, dus ik neem aan dat je het ook met primitives en structs kan.
:Y

maar helaas kan je geen reference returnen als waarde van een methode op die manier..
Finally, someone let me out of my cage
pi_87447149
quote:
Op maandag 11 oktober 2010 17:00 schreef minibeer het volgende:

[..]

:Y

maar helaas kan je geen reference returnen als waarde van een methode op die manier..
Als je functie een class returnt is het altijd by value dan (snap ik voor scope vars, maar ook als je in de functie bijv. een new doet?) En als je dan een class maakt met daarin een class reference en die returnt?
pi_87455872
quote:
Op dinsdag 12 oktober 2010 08:31 schreef Cruise.Elroy het volgende:

[..]

Als je functie een class returnt is het altijd by value dan (snap ik voor scope vars, maar ook als je in de functie bijv. een new doet?) En als je dan een class maakt met daarin een class reference en die returnt?
Left side of an expression must be a variable or object ofzoiets kreeg ik de vorige keer. Dus nee, het zit er niet in op die manier :N
Finally, someone let me out of my cage
pi_87456410
Als ik zo even snel google dan kan het wel gewoon :P
pi_87463375
quote:
Op dinsdag 12 oktober 2010 14:17 schreef Cruise.Elroy het volgende:
Als ik zo even snel google dan kan het wel gewoon :P
wat zijn je bronnen? :P
Finally, someone let me out of my cage
pi_87463518
Misschien toch maar een apart C#-topic maken? ;)
pi_87463744
quote:
Op dinsdag 12 oktober 2010 17:33 schreef thabit het volgende:
Misschien toch maar een apart C#-topic maken? ;)
:@
ik ben de enige die vragen stelt dan ben ik bang...
Finally, someone let me out of my cage
  dinsdag 12 oktober 2010 @ 17:41:00 #73
58834 Catbert
The evil HR Director.
pi_87463767
quote:
Op maandag 11 oktober 2010 12:59 schreef thabit het volgende:
Ik ken C# niet zo goed, maar is het niet zo dat daar objecten per definitie reference-typed zijn? Dan zou het op zich met objecten moeten kunnen (mogelijk niet met built-in types).
Wat zou kunnen is als je een ValueObject hebt met daarin een value, is dat je iets als dit doet:

1
2
3
4
5
6
7
8
9
public ValueObject Grootste(ValueObject v1, ValueObject v2)
{
   if(v1.value > v2.value)
      return v1;
   else 
      return v2;
}

Grootste(v1, v2).value = 5;
Dit is typisch iets waar je pointers voor nodig hebt, en die heeft C# niet.

quote:
Op dinsdag 12 oktober 2010 17:40 schreef minibeer het volgende:

[..]

:@
ik ben de enige die vragen stelt dan ben ik bang...
Tja, maar C# heeft echt geen hout met C++ te maken.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_87463874
Kan je niet gewoon

MyClass functie (MyClass a, MyClass b)
{
if (a.waarde > b.waarde) return a; else return b;
}
Of maakt hij bij returnen dan altijd een kopie?
En zo ja, hoe return je dan een nieuw gemaakt object vanuit een functie zonder extra kopieren? of kan dat gewoon niet. :)
  dinsdag 12 oktober 2010 @ 17:47:50 #75
58834 Catbert
The evil HR Director.
pi_87463970
quote:
Op dinsdag 12 oktober 2010 17:44 schreef Cruise.Elroy het volgende:
Kan je niet gewoon

MyClass functie (MyClass a, MyClass b)
{
if (a.waarde > b.waarde) return a; else return b;
}
Of maakt hij bij returnen dan altijd een kopie?
En zo ja, hoe return je dan een nieuw gemaakt object vanuit een functie zonder extra kopieren? of kan dat gewoon niet. :)
Wat is je vraag precies? Jouw functie doet exact hetzelfde als mijn "grootste" functie?

En nee, hij maakt niet plotseling een kopie. Je krijgt gewoon de reference a of b terug.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_87464003
Ok dus dan kan je gewoon:
functie(A,B).increase() doen? Zeg maar wat er werd gevraagd. :)
  dinsdag 12 oktober 2010 @ 17:51:15 #77
58834 Catbert
The evil HR Director.
pi_87464083
quote:
Op dinsdag 12 oktober 2010 17:48 schreef Cruise.Elroy het volgende:
Ok dus dan kan je gewoon:
functie(A,B).increase() doen? Zeg maar wat er werd gevraagd. :)
Tuurlijk, maar het ging om primitives, niet om objecten. Dat C++ voorbeeld m.b.t. het ophogen van ints (primitives) werkt niet.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_87464272
Ah ik was de hele tijd in de veronderstelling dat het met classes moest gaan werken. Snapte het probleem al niet. :)

Als je impliciete casts kan doen tussen classes en primitives dan kan het nog steeds, maar ik gok dat C# dat niet heeft.
pi_87468748
ik heb weer een vraaag over c# :')
zal ik dan maar gelijk een topic aanmaken?
Finally, someone let me out of my cage
  dinsdag 12 oktober 2010 @ 21:42:51 #80
58834 Catbert
The evil HR Director.
pi_87473864
quote:
Op dinsdag 12 oktober 2010 19:57 schreef minibeer het volgende:
ik heb weer een vraaag over c# :')
zal ik dan maar gelijk een topic aanmaken?
Goed plan :)
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_87479466
quote:
Op dinsdag 12 oktober 2010 21:42 schreef Catbert het volgende:

[..]

Goed plan :)
moet ik dan een OP maken of is er ergens in een grijs verleden al een gemaakt?
(zoeken op "c#" werkt niet zo goed geloof ik...)
Finally, someone let me out of my cage
pi_87482287
Zo te zien is er een .NET-topic. Daar kun je vast je C#-ei kwijt.
pi_87489416
Nee maak aub een nieuw topic aan. C# is zeker niet gelijk aan .NET. vooral voor beginnersvragen die vooral over de syntax e.d. van de taal zelf zullen gaan :)
pi_87489709
waarom zou je c# niet bij c en c++ doen eigenlijk?
en dan java er ook gelijk bijplempen
Finally, someone let me out of my cage
  woensdag 13 oktober 2010 @ 12:23:35 #85
58834 Catbert
The evil HR Director.
pi_87491215
Hier voor Micorosft.NET - Deel 2

quote:
Op woensdag 13 oktober 2010 11:22 schreef Cruise.Elroy het volgende:
Nee maak aub een nieuw topic aan. C# is zeker niet gelijk aan .NET. vooral voor beginnersvragen die vooral over de syntax e.d. van de taal zelf zullen gaan :)
Je bedoelt neem ik aan dat C++ niet gelijk is aan C#. Je vergelijkt nu een taal met een platform. C# is .Net, maar .Net is niet perse C#.

quote:
Op woensdag 13 oktober 2010 11:32 schreef minibeer het volgende:
waarom zou je c# niet bij c en c++ doen eigenlijk?
en dan java er ook gelijk bijplempen
Omdat C# en C++ geen hol met mekaar te maken hebben. Dat is net zo iets als Java en PHP in een topic pleuren omdat ze toevallig beiden curly braces gebruiken.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_87494234
quote:
Op woensdag 13 oktober 2010 12:23 schreef Catbert het volgende:
Hier voor Micorosft.NET - Deel 2
[..]

Je bedoelt neem ik aan dat C++ niet gelijk is aan C#. Je vergelijkt nu een taal met een platform. C# is .Net, maar .Net is niet perse C#.
[..]

Omdat C# en C++ geen hol met mekaar te maken hebben. Dat is net zo iets als Java en PHP in een topic pleuren omdat ze toevallig beiden curly braces gebruiken.
Nee ik bedoel wat ik schreef. :) .NET is dus een platform, en vragen over C# zullen niet gaan over het .NET platform maar vooral over de taal zelf. Daarom dus een apart topic. Tenzij het .NET topic gewoon een misnomer is en dat het daar stiekem alleen over C# gaat.
  woensdag 13 oktober 2010 @ 14:32:53 #87
58834 Catbert
The evil HR Director.
pi_87495649
quote:
Op woensdag 13 oktober 2010 13:52 schreef Cruise.Elroy het volgende:
Nee ik bedoel wat ik schreef. :) .NET is dus een platform, en vragen over C# zullen niet gaan over het .NET platform maar vooral over de taal zelf. Daarom dus een apart topic. Tenzij het .NET topic gewoon een misnomer is en dat het daar stiekem alleen over C# gaat.
Een belangrijk onderdeel van de "Hoe doe ik" vragen gaat gewoon over het .Net framework. Vb.net bijvoorbeeld hoort net zoals C# in dat topic.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_87497782
quote:
Op woensdag 13 oktober 2010 14:32 schreef Catbert het volgende:

[..]

Een belangrijk onderdeel van de "Hoe doe ik" vragen gaat gewoon over het .Net framework. Vb.net bijvoorbeeld hoort net zoals C# in dat topic.
een groot deel wel ja maar lang niet alle schat ik zo...
Finally, someone let me out of my cage
  woensdag 13 oktober 2010 @ 15:51:51 #89
58834 Catbert
The evil HR Director.
pi_87498567
quote:
Op woensdag 13 oktober 2010 15:30 schreef minibeer het volgende:
een groot deel wel ja maar lang niet alle schat ik zo...
Vragen over bijvoorbeeld "hoe zet ik een socket connectie op in C#" gaan dus over het framework, en niet specifiek alleen over C#. Dat kan prima samen in een topic, het is niet alsof het daar storm loopt ofzo.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_87499084
quote:
Op woensdag 13 oktober 2010 15:51 schreef Catbert het volgende:

[..]

Vragen over bijvoorbeeld "hoe zet ik een socket connectie op in C#" gaan dus over het framework, en niet specifiek alleen over C#. Dat kan prima samen in een topic, het is niet alsof het daar storm loopt ofzo.
Maar vaak willen ze wel C# code voorbeelden zien etc. Mensen die net met C# beginnen zitten denk ik niet te wachten om een abstracte oplossing te krijgen in het .NET domein.

Nouja van mij hoeft het niet, maar ik denk dat onervaren mensen die hulp zoeken met C# echt niet in/naar een .NET topic gaan zoeken.
  woensdag 13 oktober 2010 @ 16:52:18 #91
58834 Catbert
The evil HR Director.
pi_87500680
quote:
Op woensdag 13 oktober 2010 16:08 schreef Cruise.Elroy het volgende:
Maar vaak willen ze wel C# code voorbeelden zien etc. Mensen die net met C# beginnen zitten denk ik niet te wachten om een abstracte oplossing te krijgen in het .NET domein.
Wie zei er iets over abstract? Voorbeelden in C# maken nog steeds gebruik van het .Net framework.

quote:
Nouja van mij hoeft het niet, maar ik denk dat onervaren mensen die hulp zoeken met C# echt niet in/naar een .NET topic gaan zoeken.
Tja, als ze dat al niet snappen...
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_87501074
quote:
Op woensdag 13 oktober 2010 16:52 schreef Catbert het volgende:

[..]

Wie zei er iets over abstract? Voorbeelden in C# maken nog steeds gebruik van het .Net framework.
[..]

Tja, als ze dat al niet snappen...
Jij weet net zo goed als ik dat 90% van de "help!" vragen die we hier krijgen gaan over syntax errors of vragen over classes en instanties e.d. Dat heeft weinig tot niets met .NET te maken.

En veel C# beginners weten wel van het .NET platform af maar zullen nooit naar een .NET thread zoeken om een vraag over een error die de C# compiler opgeeft. En dat is helemaal niet zo'n gekke gedachte.
pi_87501236
quote:
Op woensdag 13 oktober 2010 17:02 schreef Cruise.Elroy het volgende:

[..]

Jij weet net zo goed als ik dat 90% van de "help!" vragen die we hier krijgen gaan over syntax errors of vragen over classes en instanties e.d. Dat heeft weinig tot niets met .NET te maken.

En veel C# beginners weten wel van het .NET platform af maar zullen nooit naar een .NET thread zoeken om een vraag over een error die de C# compiler opgeeft. En dat is helemaal niet zo'n gekke gedachte.
inderdaad... :)
"Wie niet gelooft in wonderen, is geen realist."
  woensdag 13 oktober 2010 @ 17:08:22 #94
58834 Catbert
The evil HR Director.
pi_87501321
quote:
Op woensdag 13 oktober 2010 17:02 schreef Cruise.Elroy het volgende:

Jij weet net zo goed als ik dat 90% van de "help!" vragen die we hier krijgen gaan over syntax errors of vragen over classes en instanties e.d. Dat heeft weinig tot niets met .NET te maken.

En veel C# beginners weten wel van het .NET platform af maar zullen nooit naar een .NET thread zoeken om een vraag over een error die de C# compiler opgeeft. En dat is helemaal niet zo'n gekke gedachte.
Dan zet je .Net/C#/Vb.net in de titel, sjeez :')
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_87501495
quote:
Op woensdag 13 oktober 2010 17:08 schreef Catbert het volgende:

[..]

Dan zet je .Net/C#/Vb.net in de titel, sjeez :')
:*
pi_87502321
quote:
Op woensdag 13 oktober 2010 17:08 schreef Catbert het volgende:

[..]

Dan zet je .Net/C#/Vb.net in de titel, sjeez :')
hihi, zie je, zo is overal een oplossing voor :P
"Wie niet gelooft in wonderen, is geen realist."
pi_87739504
Eigenlijk is de pracht van .NET dat de taal losgekoppeld is van het platform. :9~ Gelukkig hebben ze PHP nog niet geport naar .NET, komen al die noobs weer :')
pi_87743300
quote:
Op woensdag 20 oktober 2010 01:45 schreef TeringHenkie het volgende:
Eigenlijk is de pracht van .NET dat de taal losgekoppeld is van het platform. :9~ Gelukkig hebben ze PHP nog niet geport naar .NET, komen al die noobs weer :')
:')
pi_87743336
quote:
Op woensdag 20 oktober 2010 09:59 schreef Cruise.Elroy het volgende:

[..]

:')
Is toch zo? PHP is voor 13-jarigen die "websites maken" als bijbaantje :s)
  woensdag 20 oktober 2010 @ 10:38:14 #100
254493 Trollface.
gr rob fruithof, groningencity
pi_87744337
quote:
Op woensdag 20 oktober 2010 01:45 schreef TeringHenkie het volgende:
Eigenlijk is de pracht van .NET dat de taal losgekoppeld is van het platform. :9~ Gelukkig hebben ze PHP nog niet geport naar .NET, komen al die noobs weer :')
Neger aub. :') Ga ergens anders trollen.
★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_87746179
quote:
Op woensdag 20 oktober 2010 10:00 schreef TeringHenkie het volgende:

[..]

Is toch zo? PHP is voor 13-jarigen die "websites maken" als bijbaantje :s)
Kijk dat je echt geen fuck van het vakgebied weet is helemaal niet erg, maar dat je dan blind mensen loopt te bitchen vind ik dan wel weer jammer.
pi_87746527
Veegt Python tegenwoordig niet gewoon de vloer aan met al die andere scripttalen? Waarom zou je nog Perl of PHP leren als er ook Python bestaat?
pi_87746653
quote:
Op woensdag 20 oktober 2010 11:30 schreef Cruise.Elroy het volgende:

[..]

Kijk dat je echt geen fuck van het vakgebied weet is helemaal niet erg, maar dat je dan blind mensen loopt te bitchen vind ik dan wel weer jammer.
Heb ik mensen gekwetst ofzo? Ik bedoel alleen maar dat PHP die associatie oproept, het was niet als troll bedoeld. ;(
pi_87747677
quote:
Op woensdag 20 oktober 2010 11:38 schreef thabit het volgende:
Veegt Python tegenwoordig niet gewoon de vloer aan met al die andere scripttalen? Waarom zou je nog Perl of PHP leren als er ook Python bestaat?
Scripttalen vallen of staan met hun libs en daarin is Python nu echt heer en meester als ik dat mag geloven.
Ik heb zelf heel even in Python gewerkt en ik vond het een nachtmerrie. :P
  woensdag 20 oktober 2010 @ 23:16:23 #105
58834 Catbert
The evil HR Director.
pi_87776590
quote:
Op woensdag 20 oktober 2010 11:30 schreef Cruise.Elroy het volgende:
Kijk dat je echt geen fuck van het vakgebied weet is helemaal niet erg, maar dat je dan blind mensen loopt te bitchen vind ik dan wel weer jammer.
Niet om 't een of 't ander, maar de meeste grote serieuze webapps worden toch echt op basis van Java of .Net gebouwd hoor.

Dus z'n verwoordig was wat trollerig, maar mijn "vakgebied" is consultantje spelen voor een backend bij dit soort projecten, en dat is ongeveer 50% java, 45% .net, 5% PHP.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  donderdag 21 oktober 2010 @ 12:25:47 #106
254493 Trollface.
gr rob fruithof, groningencity
pi_87788233
quote:
Op woensdag 20 oktober 2010 23:16 schreef Catbert het volgende:

[..]

Niet om 't een of 't ander, maar de meeste grote serieuze webapps worden toch echt op basis van Java of .Net gebouwd hoor.

Dus z'n verwoordig was wat trollerig, maar mijn "vakgebied" is consultantje spelen voor een backend bij dit soort projecten, en dat is ongeveer 50% java, 45% .net, 5% PHP.
Java kan ik nog begrijpen, maar .NET?! :'(
★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_87790614
quote:
Op woensdag 20 oktober 2010 23:16 schreef Catbert het volgende:

[..]

Niet om 't een of 't ander, maar de meeste grote serieuze webapps worden toch echt op basis van Java of .Net gebouwd hoor.

Dus z'n verwoordig was wat trollerig, maar mijn "vakgebied" is consultantje spelen voor een backend bij dit soort projecten, en dat is ongeveer 50% java, 45% .net, 5% PHP.
Ik snap je punt niet echt, maar er zijn genoeg degelijke PHP projecten en programmeurs. Ging mij om de generalisatie :)
  donderdag 21 oktober 2010 @ 21:03:14 #108
58834 Catbert
The evil HR Director.
pi_87809226
quote:
Op donderdag 21 oktober 2010 12:25 schreef Trollface. het volgende:

Java kan ik nog begrijpen, maar .NET?! :'(
Niks mis met .Net.

quote:
Op donderdag 21 oktober 2010 13:32 schreef Cruise.Elroy het volgende:
Ik snap je punt niet echt, maar er zijn genoeg degelijke PHP projecten en programmeurs.
Zal best, maar voor grote projecten wordt het erg weinig gebruikt.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_88036776
even iets heel anders, kan iemand mij vertellen wat het voordeel is van het gebruik van interfaces boven het gebruik van abstracte classes? want eigenlijk heb ik tot nu toe alleen maar nadelen gehoord, ze zijn langzamer etc. En volgens mij is alles wat je met interfaces kan ook met abstract classes te doen, of niet?
Finally, someone let me out of my cage
  woensdag 27 oktober 2010 @ 23:11:26 #110
189216 netolk
maar dan andersom
pi_88047139
quote:
1s.gif Op woensdag 27 oktober 2010 20:09 schreef minibeer het volgende:
even iets heel anders, kan iemand mij vertellen wat het voordeel is van het gebruik van interfaces boven het gebruik van abstracte classes? want eigenlijk heb ik tot nu toe alleen maar nadelen gehoord, ze zijn langzamer etc. En volgens mij is alles wat je met interfaces kan ook met abstract classes te doen, of niet?
De interface zorgt er voor dat je alleen dingen met een class kan doen die de programmeur wil dat je er mee kan
Beware of the Raping Zebra's
pi_88058198
quote:
Op woensdag 27 oktober 2010 20:09 schreef minibeer het volgende:
even iets heel anders, kan iemand mij vertellen wat het voordeel is van het gebruik van interfaces boven het gebruik van abstracte classes? want eigenlijk heb ik tot nu toe alleen maar nadelen gehoord, ze zijn langzamer etc. En volgens mij is alles wat je met interfaces kan ook met abstract classes te doen, of niet?
Zo ver ik weet heb je geen interfaces in C++ omdat C++ gewoon multiple inheritence ondersteunt.

In Java (en C# ?) is het "voordeel" van interfaces dat je er meerdere kan inheriten in één klasse.
Een interface is in C++ gewoon een abstract class met alleen maar virtual abstract functies. En er is geen winst tov. 'normale' abstract classes in C++.

Over waarom je in java en C# geen multiple inheritence hebt maar wel interfaces zijn boeken volgeschreven, dat moet je maar even googlen. Heeft te maken met diepe OOP-zen en rare cases die je daardoor vermijdt.
pi_88061276
quote:
1s.gif Op donderdag 28 oktober 2010 10:44 schreef Cruise.Elroy het volgende:

[..]

Zo ver ik weet heb je geen interfaces in C++ omdat C++ gewoon multiple inheritence ondersteunt.

In Java (en C# ?) is het "voordeel" van interfaces dat je er meerdere kan inheriten in één klasse.
Een interface is in C++ gewoon een abstract class met alleen maar virtual abstract functies. En er is geen winst tov. 'normale' abstract classes in C++.

Over waarom je in java en C# geen multiple inheritence hebt maar wel interfaces zijn boeken volgeschreven, dat moet je maar even googlen. Heeft te maken met diepe OOP-zen en rare cases die je daardoor vermijdt.
ah tuuuurlijk
ik had gehoord dat interfaces minder verwarrend zijn (omdat je dan alle methoden moet overnemen ofzo?)
Finally, someone let me out of my cage
  donderdag 28 oktober 2010 @ 12:25:01 #113
189216 netolk
maar dan andersom
pi_88061381
quote:
ah tuuuurlijk
ik had gehoord dat interfaces minder verwarrend zijn (omdat je dan alle methoden moet overnemen ofzo?)
Dat klopt idd, maar het is net wat je handig vind
Beware of the Raping Zebra's
pi_88065604
Zou C++ iets voor mij zijn om me in te verdiepen? Ik wil gewoon wat simpele tooltjes maken.. En ik wil in de (verre) toekomst ook wat andere talen gaan leren.. Ik heb al eens een boekje over C# gekocht, maar dat ging vooral over visual studio. En dit betrof vooral wat je precies aan moest klikken om visual studio de code voor je te laten maken, en dat vond ik niks. Dus C# als taal viel voor mij af.. ook omdat het, volgens mij, vooral voor windows is..

Maar ik wil dus kleine commandline tooltjes voor linux en windows maken.

Ik heb nog niet echt een concreet idee.. Misschien een backup programma'tje ofzo.

Maar is het verstandig om hiervoor C++ te leren, zodat ik daar later verder mee kan, of kan iemand een andere taal aanraden?

Ik heb vrij veel, al zeg ik het zelf, ervaring met php..
  donderdag 28 oktober 2010 @ 14:16:05 #115
189216 netolk
maar dan andersom
pi_88065759
met C++ is zoiets prima te doen. Ik vind het een fijne taal net zoals veel anderen maar er zijn er ook die het helemaal niks vinden en liever visual studio de code laten maken
Beware of the Raping Zebra's
pi_88067844
quote:
1s.gif Op donderdag 28 oktober 2010 14:11 schreef Green1 het volgende:
Zou C++ iets voor mij zijn om me in te verdiepen? Ik wil gewoon wat simpele tooltjes maken.. En ik wil in de (verre) toekomst ook wat andere talen gaan leren.. Ik heb al eens een boekje over C# gekocht, maar dat ging vooral over visual studio. En dit betrof vooral wat je precies aan moest klikken om visual studio de code voor je te laten maken, en dat vond ik niks. Dus C# als taal viel voor mij af.. ook omdat het, volgens mij, vooral voor windows is..

Maar ik wil dus kleine commandline tooltjes voor linux en windows maken.

Ik heb nog niet echt een concreet idee.. Misschien een backup programma'tje ofzo.

Maar is het verstandig om hiervoor C++ te leren, zodat ik daar later verder mee kan, of kan iemand een andere taal aanraden?

Ik heb vrij veel, al zeg ik het zelf, ervaring met php..
Voor simpele tools met een user interface is C# echt veel makkelijker. En ja dat is het wel waard om je in te verdiepen. :) C++ kan je daarna nog gaan doen als je echt hele zware apps gaat maken ofzo ;)
pi_88068622
quote:
1s.gif Op donderdag 28 oktober 2010 15:11 schreef Cruise.Elroy het volgende:

[..]



Voor simpele tools met een user interface is C# echt veel makkelijker. En ja dat is het wel waard om je in te verdiepen. :) C++ kan je daarna nog gaan doen als je echt hele zware apps gaat maken ofzo ;)
hoe zit het eigenlijk met comptabiliteit? ik heb hier nooit zo'n beeld van aangezien ik eigenlijk alleen maar op windows draai
Finally, someone let me out of my cage
  donderdag 28 oktober 2010 @ 16:38:03 #118
254493 Trollface.
gr rob fruithof, groningencity
pi_88071142
quote:
1s.gif Op donderdag 28 oktober 2010 15:30 schreef minibeer het volgende:

[..]

hoe zit het eigenlijk met comptabiliteit? ik heb hier nooit zo'n beeld van aangezien ik eigenlijk alleen maar op windows draai
Pure C++ draait gewoon op elk platform. C# daarentegen niet, tenminste niet zonder emulatielagen.
★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★
  donderdag 28 oktober 2010 @ 16:38:07 #119
189216 netolk
maar dan andersom
pi_88071145
Mac en Windows draaien zeker C++, en volgens mij word C++ op de andere bekende besturingssystemen ook ondersteund maar dat weet ik niet helemaal zeker
Beware of the Raping Zebra's
  donderdag 28 oktober 2010 @ 16:38:47 #120
254493 Trollface.
gr rob fruithof, groningencity
pi_88071169
quote:
1s.gif Op donderdag 28 oktober 2010 16:38 schreef netolk het volgende:
Mac en Windows draaien zeker C++, en volgens mij word C++ op de andere bekende besturingssystemen ook ondersteund maar dat weet ik niet helemaal zeker
C/C++ werd gebouwd op Unices, dus voeg zowat alle UNIX-based besturingssystemen ook maar toe. :P
★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_88085205
Als ze nou WinForms porten naar native Win32/C++, dan zou sweeeeet zijn :9~
  vrijdag 29 oktober 2010 @ 14:35:52 #122
52513 whosvegas
The Trickster
pi_88105685
quote:
14s.gif Op donderdag 28 oktober 2010 22:31 schreef TeringHenkie het volgende:
Als ze nou WinForms porten naar native Win32/C++, dan zou sweeeeet zijn :9~
Waarom zou je dat willen?
Are you nuts??
pi_88113124
quote:
1s.gif Op donderdag 28 oktober 2010 15:11 schreef Cruise.Elroy het volgende:

[..]



Voor simpele tools met een user interface is C# echt veel makkelijker. En ja dat is het wel waard om je in te verdiepen. :) C++ kan je daarna nog gaan doen als je echt hele zware apps gaat maken ofzo ;)
Wat me ook zo irriteerde was, wanneer ik zelfs een simpel hello world maakte. Dat er dan op de één of andere manier een installer bij kwam te zitten, die allerlei zooi eromheen zette. Ik weet de extensies van de bestanden niet meer, maar dat wil ik gewoon niet. Ik wil gewoon een .exe en klaar. Als ik een installer zou willen, dan wil ik dat zelf wel leren, en niet zo'n automatisch voorgekauwd ding..

Maar ik weet niet of dat nu iets van C# is, of van visual studio?
pi_88113725
quote:
1s.gif Op vrijdag 29 oktober 2010 17:51 schreef Green1 het volgende:

[..]

Wat me ook zo irriteerde was, wanneer ik zelfs een simpel hello world maakte. Dat er dan op de één of andere manier een installer bij kwam te zitten, die allerlei zooi eromheen zette. Ik weet de extensies van de bestanden niet meer, maar dat wil ik gewoon niet. Ik wil gewoon een .exe en klaar. Als ik een installer zou willen, dan wil ik dat zelf wel leren, en niet zo'n automatisch voorgekauwd ding..

Maar ik weet niet of dat nu iets van C# is, of van visual studio?
dat hoeft niet hoor, je kan ook de .exe uit de projectmap pakken.
Finally, someone let me out of my cage
pi_88121511
quote:
1s.gif Op donderdag 28 oktober 2010 16:38 schreef netolk het volgende:
Mac en Windows draaien zeker C++, en volgens mij word C++ op de andere bekende besturingssystemen ook ondersteund maar dat weet ik niet helemaal zeker
Ik heb hier niet zo veel verstand van, maar is het niet zo dat je de code in de praktijk alsnog moet aanpassen, omdat je een andere compiler nodig hebt?
Finally, someone let me out of my cage
  vrijdag 29 oktober 2010 @ 23:05:21 #126
58834 Catbert
The evil HR Director.
pi_88125548
quote:
Op vrijdag 29 oktober 2010 17:51 schreef Green1 het volgende:
Wat me ook zo irriteerde was, wanneer ik zelfs een simpel hello world maakte. Dat er dan op de één of andere manier een installer bij kwam te zitten, die allerlei zooi eromheen zette. Ik weet de extensies van de bestanden niet meer, maar dat wil ik gewoon niet. Ik wil gewoon een .exe en klaar. Als ik een installer zou willen, dan wil ik dat zelf wel leren, en niet zo'n automatisch voorgekauwd ding..

Maar ik weet niet of dat nu iets van C# is, of van visual studio?
Lag echt aan jezelf. Verkeerde projecttype waarschijnlijk. Ik krijg gewoon 1 exe en (alleen in debugmode) een PDB.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  vrijdag 29 oktober 2010 @ 23:06:26 #127
58834 Catbert
The evil HR Director.
pi_88125589
quote:
Op donderdag 28 oktober 2010 16:38 schreef netolk het volgende:
Mac en Windows draaien zeker C++, en volgens mij word C++ op de andere bekende besturingssystemen ook ondersteund maar dat weet ik niet helemaal zeker
Een OS 'draait' helemaal geen C++. Het 'draait' een executable, en of het oorspronkelijk C++ was daar heeft het OS geen weet van.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_88126876
quote:
1s.gif Op vrijdag 29 oktober 2010 14:35 schreef whosvegas het volgende:

[..]


Waarom zou je dat willen?
Omdat GUIs in native C++/Win32 maken een hel is, je moet lopen klooien met hwnds en device contexts en weet ik veel, is gewoon ontzettend veel code.
  zaterdag 30 oktober 2010 @ 11:20:44 #129
189216 netolk
maar dan andersom
pi_88135442
quote:
1s.gif Op vrijdag 29 oktober 2010 21:34 schreef minibeer het volgende:

[..]

Ik heb hier niet zo veel verstand van, maar is het niet zo dat je de code in de praktijk alsnog moet aanpassen, omdat je een andere compiler nodig hebt?
Als het gewoon een console programmatje is hoef je je code niet aan te passen, maak je echter een window ed. dan moet je het wel aanpassen omdat window's bij Windows anders werken dan bijv. bij mac
Beware of the Raping Zebra's
pi_88135537
quote:
Op zaterdag 30 oktober 2010 11:20 schreef netolk het volgende:

[..]

Als het gewoon een console programmatje is hoef je je code niet aan te passen.
Was het maar zo'n feest. Zo'n beetje alle systeemfunctionaliteit werkt in Windhoos anders dan in Linux. En C++ is niet een taal die op dergelijke porteerbaarheid gefocust is.
  zaterdag 30 oktober 2010 @ 15:34:09 #131
189216 netolk
maar dan andersom
pi_88142351
quote:
15s.gif Op zaterdag 30 oktober 2010 11:25 schreef thabit het volgende:

[..]

Was het maar zo'n feest. Zo'n beetje alle systeemfunctionaliteit werkt in Windhoos anders dan in Linux. En C++ is niet een taal die op dergelijke porteerbaarheid gefocust is.
volgens mij is int i = 4; i+= 8; nog steeds i=12 of dit nou op windows of op linux draait
Beware of the Raping Zebra's
  zaterdag 30 oktober 2010 @ 16:37:05 #132
52513 whosvegas
The Trickster
pi_88144056
quote:
1s.gif Op donderdag 28 oktober 2010 14:11 schreef Green1 het volgende:
Zou C++ iets voor mij zijn om me in te verdiepen? Ik wil gewoon wat simpele tooltjes maken.. En ik wil in de (verre) toekomst ook wat andere talen gaan leren.. Ik heb al eens een boekje over C# gekocht, maar dat ging vooral over visual studio. En dit betrof vooral wat je precies aan moest klikken om visual studio de code voor je te laten maken, en dat vond ik niks. Dus C# als taal viel voor mij af.. ook omdat het, volgens mij, vooral voor windows is..

Maar ik wil dus kleine commandline tooltjes voor linux en windows maken.

Ik heb nog niet echt een concreet idee.. Misschien een backup programma'tje ofzo.

Maar is het verstandig om hiervoor C++ te leren, zodat ik daar later verder mee kan, of kan iemand een andere taal aanraden?

Ik heb vrij veel, al zeg ik het zelf, ervaring met php..
Wat denk je van Java? Voordeel van Java ten opzichte van .NET is dat Java wel op alle platforms draait (als er maar een JVM voor dat platforn is). En je hoeft je niet bezig te houden met dingen als het vrijgeven van geheugen, dat doet Java voor je! In C++ kunnen fouten ontstaan door verkeerd gebruik van pointers, in Java en C# heb je die moeilijkheden niet.

En wat betreft snelheid hoef je C# of Java ook niet te laten, alleen als je zeer kritische applicaties gaat maken, die veel berekeningen moet doen, zal C++ in het voordeel zijn. In het bedrijfsleven, wordt hoofdzakelijk gebruik gemaakt van Java of C#. C++ wordt gebruikt in de wetenschappelijke wereld (samen met Fortran) of om drivers ofzo te maken. Ook in de game wereld wordt nog veel C++ gebruikt. Maar als je voor deze banen in aanmerking wilt komen, ben je zo'n guru, dat je de vraag niet hoeft te stellen. :)

Dus als je begint met programmeren, vergeet C++ maar. Met C# of Java kun je als beginner meer dan genoeg.
Are you nuts??
pi_88149270
even een kleine c# vraag.
1
2
3
4
5
6
7
8
9
10
using System;

class Program
{
    static void Main()
    {
        Func<int, int> func1 = x => x + 1;
        Console.WriteLine(func1.Invoke(1));
    }
}
>
1Error    1    The type or namespace name 'Func' could not be found (are you missing a using directive or an assembly reference?)

Wat doe ik verkeerd?
Finally, someone let me out of my cage
pi_88149520
quote:
1s.gif Op zaterdag 30 oktober 2010 16:37 schreef whosvegas het volgende:[/b]

[..]


Wat denk je van Java? Voordeel van Java ten opzichte van .NET is dat Java wel op alle platforms draait (als er maar een JVM voor dat platforn is). En je hoeft je niet bezig te houden met dingen als het vrijgeven van geheugen, dat doet Java voor je! In C++ kunnen fouten ontstaan door verkeerd gebruik van pointers, in Java en C# heb je die moeilijkheden niet.

En wat betreft snelheid hoef je C# of Java ook niet te laten, alleen als je zeer kritische applicaties gaat maken, die veel berekeningen moet doen, zal C++ in het voordeel zijn. In het bedrijfsleven, wordt hoofdzakelijk gebruik gemaakt van Java of C#. C++ wordt gebruikt in de wetenschappelijke wereld (samen met Fortran) of om drivers ofzo te maken. Ook in de game wereld wordt nog veel C++ gebruikt. Maar als je voor deze banen in aanmerking wilt komen, ben je zo'n guru, dat je de vraag niet hoeft te stellen. :)

Dus als je begint met programmeren, vergeet C++ maar. Met C# of Java kun je als beginner meer dan genoeg.
:Y
Java = compabiliteit
c++ = snelheid
c# = makkelijk windows user-interfaces maken

in java werkt de user-interface ongeveer hetzelfde als in c#(ik dacht dat het ingewikkelder was, maar dat lag geloof ik gewoon aan het boek, dat gebruikte altijd panelen ipv de location)
Finally, someone let me out of my cage
pi_88149588
quote:
[img]http://i.fokzine.net/templates/forum2009/i/p/1s.gif[/img] Op zaterdag 30 oktober 2010 15:34 schreef netolk het volgende:

[..]

volgens mij is int i = 4; i+= 8; nog steeds i=12 of dit nou op windows of op linux draait
Ja. Maar dit zal wel niet voor alle code gelden.
Finally, someone let me out of my cage
  zaterdag 30 oktober 2010 @ 20:19:30 #136
58834 Catbert
The evil HR Director.
pi_88150952
quote:
Op zaterdag 30 oktober 2010 15:34 schreef netolk het volgende:
volgens mij is int i = 4; i+= 8; nog steeds i=12 of dit nou op windows of op linux draait
Ja, maar zo makkelijk is het niet, dat weet je zelf ook wel. Afgezien van de standaard libraries is C++ compleet niet platformonafhankelijk.

quote:
Op zaterdag 30 oktober 2010 19:33 schreef minibeer het volgende:
even een kleine c# vraag.
[ code verwijderd ]

>
[ code verwijderd ]

Wat doe ik verkeerd?
Hij kent "Func" niet, staat er letterlijk. Zorg dat je die .DLL waar deze in zit include in je project en ook de namespace include.

Er is overgeins een .Net topic. C# heeft geen hol met C++ te maken.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_88151324
quote:
1s.gif Op zaterdag 30 oktober 2010 20:19 schreef Catbert het volgende:

[..]

Ja, maar zo makkelijk is het niet, dat weet je zelf ook wel. Afgezien van de standaard libraries is C++ compleet niet platformonafhankelijk.
[..]

Hij kent "Func" niet, staat er letterlijk. Zorg dat je die .DLL waar deze in zit include in je project en ook de namespace include.

Er is overgeins een .Net topic. C# heeft geen hol met C++ te maken.
er zit allebei een c in :')
nee ik heb het .net topic niet gezien, maar dit is ook niet echt .net geloof ik, lamba expressies horen gewoon bij c# 3.0
Finally, someone let me out of my cage
  zondag 31 oktober 2010 @ 00:25:17 #138
58834 Catbert
The evil HR Director.
pi_88159224
quote:
Op zaterdag 30 oktober 2010 20:28 schreef minibeer het volgende:
er zit allebei een c in :')
nee ik heb het .net topic niet gezien, maar dit is ook niet echt .net geloof ik, lamba expressies horen gewoon bij c# 3.0
C# is .Net, vragen daarover horen gewoon in het .Net topic. In ieder geval niet hier.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_88160380
quote:
1s.gif Op zondag 31 oktober 2010 00:25 schreef Catbert het volgende:

[..]

C# is .Net, vragen daarover horen gewoon in het .Net topic. In ieder geval niet hier.
ikkannemnietvinden :@
en ja ik heb al de zoekfunctie gebruikt
Finally, someone let me out of my cage
  zondag 31 oktober 2010 @ 08:58:17 #140
189216 netolk
maar dan andersom
pi_88165141
quote:
1s.gif Op zondag 31 oktober 2010 00:54 schreef minibeer het volgende:

[..]


ikkannemnietvinden :@
en ja ik heb al de zoekfunctie gebruikt
klopt is idd weg... wel raar
Beware of the Raping Zebra's
pi_88167288
Beter zoeken: Micorosft.NET - Deel 2
pi_88169262
quote:
1s.gif Op donderdag 28 oktober 2010 14:11 schreef Green1 het volgende:
Zou C++ iets voor mij zijn om me in te verdiepen? Ik wil gewoon wat simpele tooltjes maken.. En ik wil in de (verre) toekomst ook wat andere talen gaan leren.. Ik heb al eens een boekje over C# gekocht, maar dat ging vooral over visual studio. En dit betrof vooral wat je precies aan moest klikken om visual studio de code voor je te laten maken, en dat vond ik niks. Dus C# als taal viel voor mij af.. ook omdat het, volgens mij, vooral voor windows is..

Maar ik wil dus kleine commandline tooltjes voor linux en windows maken.

Ik heb nog niet echt een concreet idee.. Misschien een backup programma'tje ofzo.

Maar is het verstandig om hiervoor C++ te leren, zodat ik daar later verder mee kan, of kan iemand een andere taal aanraden?

Ik heb vrij veel, al zeg ik het zelf, ervaring met php..
Voor kleine commandline tooltjes kun je beter een scripttaal (python is een aanrader) gebruiken. Dat scheelt weer wat compileer gedoe en je hebt betere string manipulatie methoden.
pi_88172968
quote:
2s.gif Op zondag 31 oktober 2010 12:27 schreef Wolfje het volgende:

[..]


Voor kleine commandline tooltjes kun je beter een scripttaal (python is een aanrader) gebruiken. Dat scheelt weer wat compileer gedoe en je hebt betere string manipulatie methoden.
ligt eraan, als je ook wat cpu intensievere taken doet zou ik toch al snel gaan compileren, dan moet je die string methoden zelf maar schrijven als je ze nodig hebt
Finally, someone let me out of my cage
pi_88173138
quote:
Op zondag 31 oktober 2010 14:29 schreef minibeer het volgende:

[..]

ligt eraan, als je ook wat cpu intensievere taken doet zou ik toch al snel gaan compileren, dan moet je die string methoden zelf maar schrijven als je ze nodig hebt
Je kan ook Cython gebruiken om Pythoncode te versnellen.
pi_88173602
quote:
1s.gif Op zondag 31 oktober 2010 11:18 schreef thabit het volgende:
Beter zoeken: Micorosft.NET - Deel 2
^O^ (ik kan hem nog steeds niet vinden als ik hem zoek trouwens, maar hij staat nu toch in myact)
Finally, someone let me out of my cage
  zondag 31 oktober 2010 @ 17:11:39 #146
189216 netolk
maar dan andersom
pi_88177781
in console mode kon je de pixels niet apart aansturen toch? Dan heb je in Windows toch zo'n winapi ding voor nodig?
Beware of the Raping Zebra's
pi_88179813
quote:
1s.gif Op zondag 31 oktober 2010 17:11 schreef netolk het volgende:
in console mode kon je de pixels niet apart aansturen toch? Dan heb je in Windows toch zo'n winapi ding voor nodig?
op 16-bit systemen kon je dacht ik nog in een graphics mode komen door middel van interrupts, maar ik geloof dat dat soort dingen er nu niet meer inzitten, en de console window dus idd alleen voor tekst is (maar ik ben ook niet van alles op de hoogte hoor ;))
Finally, someone let me out of my cage
  zondag 31 oktober 2010 @ 19:10:50 #148
189216 netolk
maar dan andersom
pi_88181695
quote:
1s.gif Op zondag 31 oktober 2010 18:12 schreef minibeer het volgende:

[..]

op 16-bit systemen kon je dacht ik nog in een graphics mode komen door middel van interrupts, maar ik geloof dat dat soort dingen er nu niet meer inzitten, en de console window dus idd alleen voor tekst is (maar ik ben ook niet van alles op de hoogte hoor ;))
Tja daar was ik al bang voor :(
Beware of the Raping Zebra's
pi_88182015
quote:
1s.gif Op zondag 31 oktober 2010 18:12 schreef minibeer het volgende:

[..]

op 16-bit systemen kon je dacht ik nog in een graphics mode komen door middel van interrupts, maar ik geloof dat dat soort dingen er nu niet meer inzitten, en de console window dus idd alleen voor tekst is (maar ik ben ook niet van alles op de hoogte hoor ;))
Is nogal logisch, aangezien de command line puur command line is. Iedereen ziet het als een soort van DOS, maar dat is dus niet zo.
pi_88187607
C++newbie hier. Hoe kan ik het beste de code realiseren zoals hieronder is geprobeerd. Liever geen vectoren. Hoewel ik nog weinig weet van pointers, lukte het mij wel om dit op te lossen voor een enkel dimensionale array, maar niet voor een multi dimensionale array.
1
2
3
4
5
6
7
8
9
10
11
class Test {
  private:
    int[][] array;
  
  public:
    Test( int, int );
};

Test::Test( int y, int x ) {
  this -> array = int[y][x];
}
pi_88188902
Je moet altijd bedenken dat de compiler moet kunnen afleiden hoeveel geheugen een object van je klasse inneemt. Een array als int[][] declareren gaat hem dus niet worden, want de compiler weet dan niet hoe groot de array is. Als je een array van niet van tevoren gedefinieerde grootte wilt aanmaken, moet je dat dus op de heap doen.

Met vectoren werken lijkt me dan het handigst. Wil je dat niet doen, dan zul je array als een int** moeten declareren, in de constructor array = new int*[y] doen en dan in een lus array[i] = new int[x] voor elke i. Vergeet ook niet een delete op al die zaken uit te voeren in je destructor. ;).
pi_88189693
Ik begrijp waarom mijn poging niet werkte, het was even een manier om duidelijk te maken wat ik wilde.

Persoonlijk wil ik ook liever vectoren gebruiken, maar de opdracht wenst dat er een array gebruikt wordt. Morgen toch maar even discussiëren met mijn docent.

Slimme oplossing, zo met de lus. Dat delete voorkomt dat er een memory leak plaatsvindt?

Om nog even andere oplossingen te overwegen. Een constante maken voor y en x, en die te gebruiken bij het declareren? Of een multidimensionale array meegeven als parameter in de constructor en dan op een of andere manier een nieuwe member aanmaken, die niet is gedeclareerd, als dit mogelijk is?

Iig bedankt voor je reactie(s).
pi_88190592
Ja, delete voorkomt memory leaks.

Een nieuwe member aanmaken kan niet, C++ is geen Python. :P. Je kan natuurlijk wel een pointer als member meegeven daar de meerdimensionale array aan plakken. Maar omdat je het type niet kent (hangt nl van de size af) zou dat een void* moeten worden, dat is denk ik nogal lelijk.
pi_88191261
Oke. Bedankt voor je antwoord.
  zondag 31 oktober 2010 @ 23:43:13 #155
58834 Catbert
The evil HR Director.
pi_88195771
quote:
Op zondag 31 oktober 2010 21:42 schreef FastFox91 het volgende:
Persoonlijk wil ik ook liever vectoren gebruiken, maar de opdracht wenst dat er een array gebruikt wordt. Morgen toch maar even discussiëren met mijn docent.
Die discussie ga je verliezen. Je 'moet' leren datastructuren als vectors e.d. zelf te maken, dat is een onderdeel van je opleiding. Je mag bij dit soort opdrachten nooit collections gebruiken.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_88202815
Je kan het als matrix opslaan, maar ook als een lijst van [x,y,waarde] triplets.
1
2
3
4
struct triplet
{
int x,y,waarde;
}
en dan simpelweg een 1-dimensionale array van deze triplets bijhouden en evt. vergroten wanneer nodig. :)

Anders zou ik je aanraden een matrix-classe te maken van een vaste grootte met een equals-operator om data over te zetten. Daarna een klasse maken die deze matrices weer gebruikt om een variabele grootte te realiseren:
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
35
36
37
38
39
40
class Matrix
{
private:
   int* data;
   unsigned int width;
   unsigned int height;
public:
   unsigned int getWidth() const {return width;} 
   unsigned int getHeight() const {return height;}
   Matrix(unsigned int width, unsigned int height) : width(width), height(height) 
   {data = new int[width * height];}
   ~Matrix() {delete[] data;}

   int& get(unsigned int x, unsigned int y) {/* todo: check bounds */ return data[x + y * width];}
   void copyTo(Matrix& pMatrix) {/* for-next loops to copy data */} 
};

class VariableMatrix
{
   private:
   Matrix* MyMatrix;
   public:
   VariableMatrix() : MyMatrix(0) {}
   ~VariableMatrix() {delete MyMatrix;}
   Get(unsigned int x, unsigned int y) {/*check for zero*/ return MyMatrix.Get(x,y);}
   Set(unsigned int x, unsigned int y)
   {
      if (MyMatrix == 0 || x >= MyMatrix.GetWidth() || y >= MyMatrix.GetHeight())
      {
         Matrix* NewMatrix = new Matrix(x+1, y+1);
        if (MyMatrix) 
        {
          MyMatrix.copyTo(NewMatrix);
          delete MyMatrix;
          MyMatrix = NewMatrix;
        }
      }
   }
};
Let niet op m'n vreselijke stijl en alle fouten. want ik gebruik nu m'n persoonlijke- en werk-stijl doorelkaar.
pi_88213742
@Catbert
Je hebt gelijk gekregen. :P

@Cruise.Elroy
Dit gaat nog even wat te ver voor mijn niveau en is waarschijnlijk ook wel beetje te veel van het goede voor m'n opdracht. Waarschijnlijk zoek ik in de toekomst je post nog wel eens op.
pi_88241422
Ik zou er een linked list van matrices van maken denk ik. Krijg je echt enorm leuke code, en nog efficient in geheugengebruik ook. (alleen niet heel snel :P)
  dinsdag 2 november 2010 @ 11:44:52 #159
58834 Catbert
The evil HR Director.
pi_88241545
quote:
Op dinsdag 2 november 2010 11:41 schreef Cruise.Elroy het volgende:
Ik zou er een linked list van matrices van maken denk ik. Krijg je echt enorm leuke code, en nog efficient in geheugengebruik ook. (alleen niet heel snel :P)
Klinkt als een enorme teringzooi, maargoed. Als je een 2D array nodig hebt, moet je niet opeens met rare zaken gaan klooien.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_88241846
quote:
1s.gif Op dinsdag 2 november 2010 11:44 schreef Catbert het volgende:

[..]

Klinkt als een enorme teringzooi, maargoed. Als je een 2D array nodig hebt, moet je niet opeens met rare zaken gaan klooien.
Rare zaken? :D

Ik zou wss apart verticaal en horizontaal resizen afhandelen, en elk nieuw blok erbij in een linked list zetten. Elk blok kan je dan indexen als elke statische 2D array :)

[ Bericht 18% gewijzigd door Cruise.Elroy op 02-11-2010 17:54:31 ]
  woensdag 3 november 2010 @ 22:48:39 #161
189216 netolk
maar dan andersom
pi_88308544
quote:
1s.gif Op dinsdag 2 november 2010 11:53 schreef Cruise.Elroy het volgende:

[..]


Rare zaken? :D

Ik zou wss apart verticaal en horizontaal resizen afhandelen, en elk nieuw blok erbij in een linked list zetten. Elk blok kan je dan indexen als elke statische 2D array :)
Hoe maak je zo'n linked list dan?
Beware of the Raping Zebra's
  woensdag 3 november 2010 @ 23:28:06 #162
58834 Catbert
The evil HR Director.
pi_88310365
quote:
Op woensdag 3 november 2010 22:48 schreef netolk het volgende:

Hoe maak je zo'n linked list dan?
Dat bedoel ik dus...
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_88314776
Oh kom op, een LL is naast een standaard array wel de meest basic manier van data opslaan.
http://en.wikipedia.org/wiki/Linked_list
  donderdag 4 november 2010 @ 10:03:32 #164
58834 Catbert
The evil HR Director.
pi_88317192
quote:
Op donderdag 4 november 2010 07:54 schreef Cruise.Elroy het volgende:
Oh kom op, een LL is naast een standaard array wel de meest basic manier van data opslaan.
http://en.wikipedia.org/wiki/Linked_list
Je hoeft mij niet te vertellen wat een linked list is. Het punt is dat hij voor z'n opleiding C++ aan het leren is, en net met arrays begint. Dan zou je moeten snappen dat hij A) de opdracht uit moet voeren zoals beschreven en B) we het niet onnodig complex moeten maken.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_88317516
Ik vind het wel raar hoor, dat mensen eerst met programmeertalen beginnen en daarna pas met algoritmen en datastructuren. Andersom zou beter zijn.
  donderdag 4 november 2010 @ 10:25:41 #166
58834 Catbert
The evil HR Director.
pi_88317847
quote:
Op donderdag 4 november 2010 10:14 schreef thabit het volgende:
Ik vind het wel raar hoor, dat mensen eerst met programmeertalen beginnen en daarna pas met algoritmen en datastructuren. Andersom zou beter zijn.
Het is wat lastig practicumopdrachten uit te voeren als je geen taalen kent waarin je dat uitvoeren kunt doen. Je kunt zoveel theorie leren, maar een DSW tree kunnen implementeren zul je toch echt gewoon een keer moeten doen om 't te snappen.

Ik heb zelf HBO-I gedaan en wij hadden destijds het probleem dat de het praktijkdeel van het vak C++ verplaatst hadden naar het vak Algorithmen. En toen was opeens de docent C++ ziek en mochten we implementaties van Algorithmen (Huffman / LZW) in C++ doen terwijl we daar nog geen les in hadden gehad. Dat ging ongeveer zo:

CODERDECODE
*compile*
execute!
"SEGMENTATION FAULT. CORE DUMPED"

Wut?
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_88318408
Praten jullie nog steeds over dat probleempje van mij? :P
Heeft C++ geen interessantere, van hoger niveau, onderwerpen waarover te discussiëren valt?
  donderdag 4 november 2010 @ 10:51:26 #168
58834 Catbert
The evil HR Director.
pi_88318558
quote:
Op donderdag 4 november 2010 10:45 schreef FastFox91 het volgende:
Praten jullie nog steeds over dat probleempje van mij? :P
Heeft C++ geen interessantere, van hoger niveau, onderwerpen waarover te discussiëren valt?
Nee, C++ is gewoon saai.

;)
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  donderdag 4 november 2010 @ 11:22:20 #169
189216 netolk
maar dan andersom
pi_88319527
quote:
1s.gif Op donderdag 4 november 2010 07:54 schreef Cruise.Elroy het volgende:
Oh kom op, een LL is naast een standaard array wel de meest basic manier van data opslaan.
http://en.wikipedia.org/wiki/Linked_list
Ow heet dat zo XD
Beware of the Raping Zebra's
  maandag 8 november 2010 @ 23:12:16 #170
189216 netolk
maar dan andersom
pi_88497254
Even een vraagje wat kost een lege vector aan geheugen? is dit niks of is dit wel wat en afhankelijk van wat de vector stored?
Beware of the Raping Zebra's
pi_88499273
Elk object neemt geheugen in. Hoeveel precies hangt van de implementatie van vector af en is niet door de standaard gedefinieerd. Maar ik neem aan dat een vector toch in elk geval z'n lengte zal opslaan, een pointer naar de beginwaarde en bovendien een stukje geheugen reserveert om dingen in te stoppen (je wil namelijk niet elke keer als je iets in die vector stopt een nieuw stuk geheugen moeten vrijmaken om vervolgens je oude vector daarheen te verplaatsen).
pi_88503575
bron: http://social.msdn.micros(...)5b-a739-5cd311bc21c4

quote:
tried spelunking in STL code that comes with VS2008 SP1 (a.k.a. VC9).

Considering debug builds as per your request, I came to the following conclusions:

In both cases of iterator debugging feature (i.e. _HAS_ITERATOR_DEBUGGING) being enabled or disabled:

1. vector has 3 data members, all pointers. In 32-bit systems, each pointer is 4 bytes, so they occupy 3*4 = 12 bytes.

2. vector is derived from _Vector_val class. This class has an _Alval data member, which is 1 byte big.
However, for alignment reasons, the size cost is rounded to 4 bytes.

So, you have 12 bytes (from 3 vector's pointers) + 4 bytes (from _Vector_val::_Alval) = 16 bytes subtotal.

Now, let's go to sub-cases of iterator debugging feature enabled or disabled.

If iterator debugging feature is enabled:
3a. _Vector_val derives from _Container_base_secure. _Container_base_secure has a data member _Myfirstiter, which is a pointer, so add 4 bytes.
The total becomes: 16 + 4 = 20 bytes (as per your finding).

If iterator debugging feature is disabled:
3b. _Vector_val derives from _Container_base_aux_alloc_real. _Container_base_aux_alloc_real has one data member. Its size is 1 byte, but for alignment reasons rounds up to 4 bytes.
4b. _Container_base_aux_alloc_real derives from _Container_base_aux. _Container_base_aux has one data member _Myownedaux, which is a pointer; so: add 4 bytes.
In this case the total becomes: 16 + 4 + 4 = 24 bytes (as per your finding).

You may want to try this simple C++ program I wrote to try to better understand the total size of STL vector.
Ik heb nog wat lopen spitten, en het lijkt dat er minstens 4 bytes verloren lijken te gaan, iig 3 jaar geleden nog wel ;).
Leesvoer: http://blogs.msdn.com/b/f(...)ector-data-size.aspx

Wat ik er zelf van weet: elke vector heeft sowieso 3 pointers, de MyFirstIter kan je met elke intellisense-GUI ook wel zien staan, dus dat maakt 16 bytes. Waarom de _Aval 1 byte is weet ik niet want het is een stateloos object.

[ Bericht 4% gewijzigd door Cruise.Elroy op 09-11-2010 10:49:53 ]
  dinsdag 9 november 2010 @ 13:34:40 #173
189216 netolk
maar dan andersom
pi_88513263
oke bedankt voor de info... Bedacht later hèhè dat ik het ook via sizeof had kunnen weten |:(

@Cruise.Elroy txs voor de extra info
Beware of the Raping Zebra's
pi_88514318
sizeof laat natuurlijk alleen de ruimte zien die het object zelf inneemt, niet de extra geheugenruimte die het reserveert.
pi_88514475
quote:
4s.gif Op dinsdag 9 november 2010 14:00 schreef thabit het volgende:
sizeof laat natuurlijk alleen de ruimte zien die het object zelf inneemt, niet de extra geheugenruimte die het reserveert.
Je mag van STL verwachten dat een lege container geen heap gaat aanspreken.
Grappig genoeg gebeurt dit wel op de PS3 of X360 (weet niet meer welke)
  dinsdag 9 november 2010 @ 14:52:39 #176
189216 netolk
maar dan andersom
pi_88516560
quote:
1s.gif Op dinsdag 9 november 2010 14:04 schreef Cruise.Elroy het volgende:

[..]

Je mag van STL verwachten dat een lege container geen heap gaat aanspreken.
Grappig genoeg gebeurt dit wel op de PS3 of X360 (weet niet meer welke)
Das best wel slecht... wel grappig idd
Beware of the Raping Zebra's
pi_88518840
quote:
1s.gif Op dinsdag 9 november 2010 14:52 schreef netolk het volgende:

[..]


Das best wel slecht... wel grappig idd
Het levert echt vreselijke bugs op als je multi-platform en met heap management werkt. :D
  woensdag 24 november 2010 @ 15:32:05 #178
189216 netolk
maar dan andersom
pi_89096864
Vraagje als je een library in je compiler ramt compiled die dan compleet mee of alleen de stukken code die je daadwerkelijk gebruikt?
Beware of the Raping Zebra's
  woensdag 24 november 2010 @ 15:34:31 #179
58834 Catbert
The evil HR Director.
pi_89096978
Je compiler? Je linker bedoel je. Als je statisch linked wordt alles meegenomen.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  woensdag 24 november 2010 @ 17:25:53 #180
189216 netolk
maar dan andersom
pi_89101780
quote:
1s.gif Op woensdag 24 november 2010 15:34 schreef Catbert het volgende:
Je compiler? Je linker bedoel je. Als je statisch linked wordt alles meegenomen.
Hèhè ja dat bedoel ik ja... oké dus als je maar 1 functie nodig hebt kun je die beter apart in een cpp file zetten en die compilen +linken?
Beware of the Raping Zebra's
pi_89101939
Of dynamisch linken.
  woensdag 24 november 2010 @ 18:18:56 #182
189216 netolk
maar dan andersom
pi_89103700
quote:
3s.gif Op woensdag 24 november 2010 17:30 schreef thabit het volgende:
Of dynamisch linken.
Ja maar dat klinkt al moeilijk XD

ik gebruik minGW kan die dat überhaupt wel?
Beware of the Raping Zebra's
pi_89104835
quote:
1s.gif Op woensdag 24 november 2010 18:18 schreef netolk het volgende:

[..]

Ja maar dat klinkt al moeilijk XD

ik gebruik minGW kan die dat überhaupt wel?
Je kan de libraries vast wel in een DLL stoppen, maar het beste antwoord op zulke vragen blijft nog altijd: RTFM. :P.
  woensdag 24 november 2010 @ 19:41:09 #184
189216 netolk
maar dan andersom
pi_89107238
Ja, nou beetje dll's maken... dan plak ik de code die ik nodig heb wel gewoon ff in een cpp bestandje die ik dan ff aan mn linker mee geef...

bedankt in ieder geval
Beware of the Raping Zebra's
pi_89127491
Let wel dat DLLs dynamisch linken, als je gewoon statisch linkt dan zal de linker slim knippen/plakken en alleen de dingen meenemen die het nodig heeft. Maareh, is de grootte van je exe zo belangrijk? :D

Compileren van libraries doet hij sowieso niet, want die zijn als het goed is al gecompileerd. Of heb je het over .h files toevoegen?
Die worden als het goed is allemaal in pre-compiled headers gezet als je dat aanzet, en zullen sowieso niet meer dan een syntax-check krijgen als je ze niet gebruikt.
  donderdag 25 november 2010 @ 10:31:01 #186
58834 Catbert
The evil HR Director.
pi_89127755
Bovendien, wat boeit het dat je executable wat groter wordt?
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_89129064
quote:
1s.gif Op donderdag 25 november 2010 10:31 schreef Catbert het volgende:
Bovendien, wat boeit het dat je executable wat groter wordt?
Hij heeft het volgens mij over compile-tijden. Dan maakt het niet uit of je statisch of dynamisch linkt, de libraries zelf zijn natuurlijk al gecompileerd. :P
  donderdag 25 november 2010 @ 11:19:25 #188
58834 Catbert
The evil HR Director.
pi_89129168
quote:
1s.gif Op donderdag 25 november 2010 11:16 schreef Cruise.Elroy het volgende:
Hij heeft het volgens mij over compile-tijden. Dan maakt het niet uit of je statisch of dynamisch linkt, de libraries zelf zijn natuurlijk al gecompileerd. :P
Normaal hercompile je alleen de code die gewijzigd is. Als je voor elke build alles opnieuw compiled doe je sowieso iets niet goed.

Daarnaast gaf 'ie na mijn reactie aan dat het om het linken ging, en linken gaat sowieso heel snel.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_89133765
quote:
1s.gif Op donderdag 25 november 2010 11:19 schreef Catbert het volgende:

[..]

Normaal hercompile je alleen de code die gewijzigd is. Als je voor elke build alles opnieuw compiled doe je sowieso iets niet goed.

Daarnaast gaf 'ie na mijn reactie aan dat het om het linken ging, en linken gaat sowieso heel snel.
Linken is in mijn ervaring vaak een traag onderdeel omdat je het moeilijk distributed kan doen (iaw, er zijn weinig pakketten die dat ondersteunen) tenzij ik moduleinterfaces ga veranderen is linken snel 50% van de buildtijd. :)
pi_89136308
quote:
1s.gif Op donderdag 25 november 2010 13:46 schreef Cruise.Elroy het volgende:

[..]

Linken is in mijn ervaring vaak een traag onderdeel omdat je het moeilijk distributed kan doen (iaw, er zijn weinig pakketten die dat ondersteunen) tenzij ik moduleinterfaces ga veranderen is linken snel 50% van de buildtijd. :)
Dat terwijl dat hele gebeuren van headers includen, compilen en linken bedoeld was om het snel te laten werken. In deze tijd van snelle processoren en parallellisatie vertraagt het de boel alleen maar. Een soort QWERTY-achtige taferelen dus.
pi_89137183
Het vertraagt niets, juist door het losse compilen en linken, headerfiles etc. kan je goed gebruikmaken van parallelisatie. Helaas moet het toch ergens bijelkaar komen.
  donderdag 25 november 2010 @ 16:44:38 #192
189216 netolk
maar dan andersom
pi_89140917
ik bedoelde idd linken, ja...

Op zich maakt het niet zo veel uit als mn .exe iets groter word maar hou er niet van als er onnodig geheugen gebruikt word.. en ik vind de lib echt bagger maar er zitten 1 of 2 handige functies in die ik soms gebruik voordat ik er een win32 programma van een console maak
Beware of the Raping Zebra's
pi_89141074
Enige geheugenverbruik dat je hebt is dat de exe die moet worden ingeladen iets groter is. Een lib zelf bestaat eigenlijk altijd puur uit instructies en gebruikt geen extra resources ofzo, misschien een static var hier en daar, maar dat is echt te verwaarlozen denk ik.
  vrijdag 26 november 2010 @ 18:19:59 #194
189216 netolk
maar dan andersom
pi_89189486
Goedenavond Fokkers,

Ik vraag me af waarom de volgende code flipt..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "Error.h"
#include "Game.h"
#include <iostream>
#include <Windows.h>
int main(){
    srand(unsigned(time(0)));
    rand();    // voorkomt dat het 1e getal altijd hetzelfde is
    
    try{ // het stuk waar Game gebruikt kan worden
        Game myGame("01.lvl","01.opt");
        
        //myGame.run(); // gameloop
        
    }
    catch(Error e){
        std::cerr << e._DATA << '\n';
    }
    std::cout << "?\n";
    return 0;
}

Het progje runt tot het einde/begin van catch(Error e) weet iemand waardoor dit komt? de constructor van class Game Werkt zoals zou horen (dus zonder fouten dat heb ik al gecheckt) maar ik snap maar niet waarom hij aan het einde/begin van catch vast loopt...
Beware of the Raping Zebra's
pi_89191212
Wat is e._DATA voor type?
  vrijdag 26 november 2010 @ 19:11:32 #196
189216 netolk
maar dan andersom
pi_89191628
quote:
1s.gif Op vrijdag 26 november 2010 19:03 schreef thabit het volgende:
Wat is e._DATA voor type?
Sorry vergeten er bij te zetten maar dat is een const char* waar ik dan een string in stop, maar er word dus geen throw Error gedaan...

Kom er net achter dat het niet perse aan try catch deel ligt.. als ik dat er uit haal dan krijg ik wel de vraagteken te zien er onderstaat maar daarna flipt ie nog steeds...
Beware of the Raping Zebra's
pi_89191877
Misschien is het handiger om je couts met endl te eindigen, dan weet je zeker dat de buffer wordt geflusht. Maar goed, grote kans dat er toch een fout in de constructor van Game zit dan.
  vrijdag 26 november 2010 @ 19:20:41 #198
189216 netolk
maar dan andersom
pi_89192080
De Game constructor gebruikt wel ifstream get(), volgens cplusplus.com dat er std::ios_base::failure word ge-trowed. maar die vang ik af(als het goed is)

dus de code is dan dit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Game::Game(const char* lvlfile,const char* optfile){ // load from file
/*    _OPTIONS = Options(optfile); */
    
    std::ifstream Read(lvlfile,std::ios::binary);
    if(Read.is_open()){
        BitField::I16 rI16;
        BitField::I32 rI32;
        try{
            // read data from file
        }
        catch(std::ios_base::failure){
            Read.close();
            throw Error("File Corrupted");
        }
        Read.close();
    }
    else
        throw Error("Can't open Lvl File");
}
Beware of the Raping Zebra's
pi_89192585
Misschien moet je wat couts in je code plaatsen ter debugging (wel met endl eindigen anders komen ze misschien niet op het scherm). Zo kun je zien wat er waar gebeurt.
  vrijdag 26 november 2010 @ 20:24:43 #200
189216 netolk
maar dan andersom
pi_89195883
quote:
1s.gif Op vrijdag 26 november 2010 19:29 schreef thabit het volgende:
Misschien moet je wat couts in je code plaatsen ter debugging (wel met endl eindigen anders komen ze misschien niet op het scherm). Zo kun je zien wat er waar gebeurt.
Heb ik dus gedaan en alles word tot en met onder aan de try uit gevoerd en de catch word niet aangeroepen, wat wel zou moeten aangezien het bestand minder data bevat dan ik probeer te lezen dus zou er een ios_base::failure moeten zijn maar die word dus niet ge-trowed...
Beware of the Raping Zebra's
  vrijdag 26 november 2010 @ 20:49:15 #201
189216 netolk
maar dan andersom
pi_89197521
ik kom er nu achter dat get() helemaal geen error geeft als file minder lang is maar er een waarde van -1 (int) terug geeft, dat kan gewoon in de code dus dan snap ik helemaal niet waarom mn progje flipt..
Beware of the Raping Zebra's
pi_89198559
Kun je de code posten die de file inleest?
  vrijdag 26 november 2010 @ 21:12:14 #203
189216 netolk
maar dan andersom
pi_89199130
quote:
1s.gif Op vrijdag 26 november 2010 21:04 schreef thabit het volgende:
Kun je de code posten die de file inleest?
Tuurlijk maar dat is dus redelijk lang...
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "Game.h"
#include "Error.h"
#include "BitField.h"
#include <fstream>
Game::Game(const char* lvlfile,const char* optfile){ // load from file
/*    _OPTIONS = Options(optfile); */
    
    std::ifstream Read(lvlfile,std::ios::binary);
    if(Read.is_open()){
        BitField::I16 rI16;
        BitField::I32 rI32;
        try{
            /* Lvl Data */        
            /* get demensions of lvl */
            rI16.c0 = Read.get();
            rI16.c1 = Read.get();
            unsigned short _X = *(unsigned short*)(&rI16);
            rI16.c0 = Read.get();
            rI16.c1 = Read.get();
            unsigned short _Y = *(unsigned short*)(&rI16);
            
            /* allocate lvl space */
            Piece data[_X*_Y];
            
            /* get lvl data */
            for(unsigned short y=0; y < _Y; y++){
                for(unsigned short x=0; x < _X; x++){
                    data[y*_X+x].set_Fertile(Read.get());    // evt. de bools van Piece in 1 byte opslaan
                    data[y*_X+x].set_Used(Read.get());
                }
            }
            _LEVEL = Level(_X,_Y,data);
            
            /* Atmosphere Data */
            /* CO2 */
            rI32.c0 = Read.get();
            rI32.c1 = Read.get();
            rI32.c2 = Read.get();
            rI32.c3 = Read.get();
            _ATMOSPHERE.set_CO2(*(unsigned short*)(&rI32));
            /* O2 */
            rI32.c0 = Read.get();
            rI32.c1 = Read.get();
            rI32.c2 = Read.get();
            rI32.c3 = Read.get();
            _ATMOSPHERE.set_O2(*(unsigned short*)(&rI32));
            /* H2O */
            rI32.c0 = Read.get();
            rI32.c1 = Read.get();
            rI32.c2 = Read.get();
            rI32.c3 = Read.get();
            _ATMOSPHERE.set_H2O(*(unsigned short*)(&rI32));
            /* N2 */
            rI32.c0 = Read.get();
            rI32.c1 = Read.get();
            rI32.c2 = Read.get();
            rI32.c3 = Read.get();
            _ATMOSPHERE.set_N2(*(unsigned short*)(&rI32));
            /* NOx */
            rI32.c0 = Read.get();
            rI32.c1 = Read.get();
            rI32.c2 = Read.get();
            rI32.c3 = Read.get();
            _ATMOSPHERE.set_NOX(*(unsigned short*)(&rI32));
            /* O3 */
            rI32.c0 = Read.get();
            rI32.c1 = Read.get();
            rI32.c2 = Read.get();
            rI32.c3 = Read.get();
            _ATMOSPHERE.set_O3(*(unsigned short*)(&rI32));
            
            /* Player */
            rI16.c0 = Read.get();
            rI16.c1 = Read.get();
            unsigned short x = *(unsigned short*)(&rI16);
            rI16.c0 = Read.get();
            rI16.c1 = Read.get();
            unsigned short y = *(unsigned short*)(&rI16);
            _PLAYER = Player(x,y);
        }
        catch(std::ios_base::failure){
            Read.close();
            throw Error("File Corrupted");
        }
        Read.close();
    }
    else
        throw Error("Can't open Lvl File");
}
Beware of the Raping Zebra's
pi_89200770
Tjezus wat een hoop code voor zo'n simpele handeling. Zoiets moet je echt compacter proberen te schrijven, zonder alles tig keer te herhalen. Verder kan ik niet direct zien wat er fout is. Zou natuurlijk ook in dingen als Level, Player en BitField of zo kunnen zitten. Kun je dat ook misschien posten?
  vrijdag 26 november 2010 @ 22:40:54 #205
189216 netolk
maar dan andersom
pi_89205521
quote:
11s.gif Op vrijdag 26 november 2010 21:33 schreef thabit het volgende:
Tjezus wat een hoop code voor zo'n simpele handeling. Zoiets moet je echt compacter proberen te schrijven, zonder alles tig keer te herhalen. Verder kan ik niet direct zien wat er fout is. Zou natuurlijk ook in dingen als Level, Player en BitField of zo kunnen zitten. Kun je dat ook misschien posten?
Ja ik weet het maar omdat het binair is, gebruik ik bitfields om naar unsigned short te kunnen casten... hoe kan je zoiets dan compacter opschrijven??

Bitfield:
1
2
3
4
5
6
7
8
9
10
11
12
namespace BitField{
        struct I16{
            unsigned char c0:8;
            unsigned char c1:8;
        };
        struct I32{
            unsigned char c0:8;
            unsigned char c1:8;
            unsigned char c2:8;
            unsigned char c3:8;
        };
    };

Player: (weet zeker dat dit werkt apart getest)
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
class Player{
        unsigned short _X,_Y; // location left upper corner of screen
        bool _GAMEOVER;
        
        /* Buildings */
        StockHouse _myStockHouse;
        std::vector<SawMill> _mySawMill;
        std::vector<Quarry> _myQuarry;
        
        public:
            Player();
            Player(unsigned short x,unsigned short y);
            
            ~Player(){}
            
            bool Is_GameOver(){return _GAMEOVER;}
            
            unsigned short get_X(){return _X;}
            unsigned short get_Y(){return _Y;}
            
            void Build(unsigned short x,unsigned short y);
            void Draw(); //Graphics.cpp
    };

Player::Player(unsigned short x,unsigned short y):_X(x),_Y(y){
    _myStockHouse.set_Building(_X+16,_Y+9,0,1); // staat in midden van beeld 16:9 verhouding
    _mySawMill.clear();
    _myQuarry.clear();
}

Level:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Level{
        unsigned short _X,_Y; // map demensions
        Piece *_DATA;
        
        public:
            Level():_X(0),_Y(0),_DATA(0){}
            Level(unsigned short x,unsigned short y,Piece *data):_X(x),_Y(y),_DATA(data){}
            ~Level(){delete[] _DATA; _DATA = 0;}
            
            unsigned short get_X(){return _X;}
            unsigned short get_Y(){return _Y;}
            
            Piece& operator()(unsigned short x,unsigned short y);
            Piece operator()(unsigned short x,unsigned short y) const;
            
    };


[ Bericht 19% gewijzigd door netolk op 26-11-2010 22:42:17 (Class player vergeten) ]
Beware of the Raping Zebra's
pi_89206572
Level is niet goed, je initialiseert een pointer die naar een array verwijst die je na het verlaten van de constructor van Game weggooit. Kortom, die informatie ben je dan gewoon kwijt. Daarbij wordt er in de destructor van Level ook nog een array gedeletet die niet met new is aangemaakt, naar een weggegooide datastructuur verwijst en dus volkomen ongedefineerd is. Ik denk dat het programma wel eens vast zou kunnen lopen bij het uitvoeren van deze destructor.
  vrijdag 26 november 2010 @ 23:07:55 #207
189216 netolk
maar dan andersom
pi_89207060
quote:
1s.gif Op vrijdag 26 november 2010 22:58 schreef thabit het volgende:
Level is niet goed, je initialiseert een pointer die naar een array verwijst die je na het verlaten van de constructor van Game weggooit. Kortom, die informatie ben je dan gewoon kwijt. Daarbij wordt er in de destructor van Level ook nog een array gedeletet die niet met new is aangemaakt, naar een weggegooide datastructuur verwijst en dus volkomen ongedefineerd is. Ik denk dat het programma wel eens vast zou kunnen lopen bij het uitvoeren van deze destructor.
Ow hèhè dat klinkt idd wel logisch, helemaal vergeten dat ik dat aangepast had zonder te kijken of het wel kon...

kan ik het dan zo oplossen?
1
2
3
4
Piece *data;
data = new Piece[_X*_Y];

_LEVEL = Level(_X,_Y,&data);

Want ik kan data niet deleten omdat _DATA (uit level) het zelfde gebruikt toch?
Beware of the Raping Zebra's
pi_89207524
quote:
1s.gif Op vrijdag 26 november 2010 22:40 schreef netolk het volgende:

[..]

Ja ik weet het maar omdat het binair is, gebruik ik bitfields om naar unsigned short te kunnen casten... hoe kan je zoiets dan compacter opschrijven??
Je kan bijvoorbeeld een aparte functie schrijven die als input een fstream& heeft en als output een unsigned short, en ook eentje voor een unsigned long.
  vrijdag 26 november 2010 @ 23:19:14 #209
189216 netolk
maar dan andersom
pi_89207759
quote:
1s.gif Op vrijdag 26 november 2010 23:15 schreef thabit het volgende:

[..]

Je kan bijvoorbeeld een aparte functie schrijven die als input een fstream& heeft en als output een unsigned short, en ook eentje voor een unsigned long.
Maar krijg je dan niet dat je progje het bestand opent,sluit,opent,sluit ect?
Beware of the Raping Zebra's
pi_89208152
quote:
1s.gif Op vrijdag 26 november 2010 23:07 schreef netolk het volgende:

[..]

Ow hèhè dat klinkt idd wel logisch, helemaal vergeten dat ik dat aangepast had zonder te kijken of het wel kon...

kan ik het dan zo oplossen?

[ code verwijderd ]

Want ik kan data niet deleten omdat _DATA (uit level) het zelfde gebruikt toch?
Lijkt me een foutgevoelige oplossing. Ik zou _DATA gewoon als vector<Piece> definieren en geen array Piece data[nogwat] in Game::Game aanmaken (sowieso moet je geen arrays op de stack aanmaken, kun je stack overflows van krijgen), maar ook gewoon als vector definieren (of direct _LEVEL._DATA aanspreken, gaat sneller).
pi_89208205
quote:
1s.gif Op vrijdag 26 november 2010 23:19 schreef netolk het volgende:

[..]

Maar krijg je dan niet dat je progje het bestand opent,sluit,opent,sluit ect?
Nee, je kan dat ding toch geopend houden tot hem niet meer nodig hebt. Die functie die die informatie inleest moet natuurlijk zelf geen bestanden openen en sluiten.
  vrijdag 26 november 2010 @ 23:47:49 #212
189216 netolk
maar dan andersom
pi_89209437
Ja, de oplossing werkt ook niet XD en wil ik het laten werken dan is het idd best wat gekut om voor elkaar te krijgen..

ik had me dat inderdaad ook al bedacht gewoon die Read door geven en dan moet het lukken (hoop ik) in ieder geval hartstikke bedankt voor de hulp
Beware of the Raping Zebra's
pi_89234658
Hoi, ik ben nu een programma (ContextFree heet het, ik ben de commandline aan het debuggen) geschreven in C++ aan het debuggen, omdat hij een 'gdi+ error' gaf (een invalid parameter om precies te zijn). Ik weet dat het programma wel werkt op mijn andere computer, met win vista (hij werkt niet op windows 7). Ik weet nu vrij zeker dat de error in een bepaalde functie voorkomt. Deze functie is gedefinieerd in een header file, maar als ik de header file vervang heeft dit volgens mij weinig zin, omdat de functie zelf zich in een andere file bevindt (toch?). Ik vroeg me af hoe je kan weten in welke file deze functie dan wel zit.
Finally, someone let me out of my cage
  maandag 29 november 2010 @ 11:26:51 #214
189216 netolk
maar dan andersom
pi_89290770
quote:
1s.gif Op zaterdag 27 november 2010 20:11 schreef minibeer het volgende:
Hoi, ik ben nu een programma (ContextFree heet het, ik ben de commandline aan het debuggen) geschreven in C++ aan het debuggen, omdat hij een 'gdi+ error' gaf (een invalid parameter om precies te zijn). Ik weet dat het programma wel werkt op mijn andere computer, met win vista (hij werkt niet op windows 7). Ik weet nu vrij zeker dat de error in een bepaalde functie voorkomt. Deze functie is gedefinieerd in een header file, maar als ik de header file vervang heeft dit volgens mij weinig zin, omdat de functie zelf zich in een andere file bevindt (toch?). Ik vroeg me af hoe je kan weten in welke file deze functie dan wel zit.
Als er in de header file alleen iets staat als
1void function(int par,char* string);
dan word de functie in een ander bestand gedefiniëerd. dan moet je op zoek naar iets als dit:
1
2
3
void function(int par,char* string){
      // code die iets met de parameters doet
}

Ow enne die int par, char* string zijn voorbeeld parameters ze kunnen van alles zijn
Beware of the Raping Zebra's
  maandag 29 november 2010 @ 11:30:34 #215
189216 netolk
maar dan andersom
pi_89290842
quote:
1s.gif Op vrijdag 26 november 2010 23:26 schreef thabit het volgende:

[..]

Nee, je kan dat ding toch geopend houden tot hem niet meer nodig hebt. Die functie die die informatie inleest moet natuurlijk zelf geen bestanden openen en sluiten.
Bedankt man nu is mn code even een stukje overzichtelijker :)
Beware of the Raping Zebra's
pi_89294974
quote:
1s.gif Op maandag 29 november 2010 11:26 schreef netolk het volgende:

[..]

Als er in de header file alleen iets staat als
[ code verwijderd ]

dan word de functie in een ander bestand gedefiniëerd. dan moet je op zoek naar iets als dit:

[ code verwijderd ]

Ow enne die int par, char* string zijn voorbeeld parameters ze kunnen van alles zijn
Beh ik snap er niks van. De maker heeft gereageerd met dit:
quote:
1s.gif Op zondag 28 november 2010 10:40 schreef MtnViewJohn het volgende:
...
The GDI+ png file encoder does not take any encoder parameters. So I was building an encoder parameter structure with zero parameters. This worked fine until Windows 7. With Windows 7 the png encoder fails if you provide an encoder list, even if it has zero elements. Instead you must pass a NULL pointer.
Heh, ik snap het. Ergens werd een functie aangeroepen op deze manier:
1
2
3
    EncoderParameters encoderParameters;
    encoderParameters.Count = 0;
    Status s = saveBM->Save(wpath, &encClsid, &encoderParameters);

Maar dat werkte niet volgens die gast, het moet zo:
1    Status s = saveBM->Save(wpath, &encClsid, NULL);

En nu werkt het :). Al is de commandline application wel bijna 4 keer zo groot als ik hem build op de een of andere manier :(. Maar dat is bijzaak.
Bedankt voor de hulp :).
Finally, someone let me out of my cage
pi_90225633
Ik weet niet hoe moeilijk het is, maar is er iemand die voor mij de source can compilen zodat ik de software zonder al te veel moeite kan gebruiken? Ben bezig met een project waar we van een houten picnictafel een interactieve willen maken, en tracking is dan best relaxt :P

http://sites.google.com/site/tarandeep/fingermouse
  woensdag 22 december 2010 @ 11:30:50 #218
189216 netolk
maar dan andersom
pi_90280557
quote:
1s.gif Op dinsdag 21 december 2010 11:35 schreef Flaccid het volgende:
Ik weet niet hoe moeilijk het is, maar is er iemand die voor mij de source can compilen zodat ik de software zonder al te veel moeite kan gebruiken? Ben bezig met een project waar we van een houten picnictafel een interactieve willen maken, en tracking is dan best relaxt :P

http://sites.google.com/site/tarandeep/fingermouse
De code mist libs ofzo, maar bij compileert het niet zo 1, 2, 3
Beware of the Raping Zebra's
  zondag 2 januari 2011 @ 17:55:45 #219
189216 netolk
maar dan andersom
pi_90753569
Hey ik heb een vraagje, of eigenlijk wil ik bevestiging
bij de volgende code is het toch zo dat myData ook niet meer bestaat na het aanroepen van de destructor via de pointer?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
struct Data{
    unsigned short i;
        Data():i(8){}
        ~Data(){i=0;}
};
int main(){
    Data myData;
    Data *ptr;
    ptr = &myData;
    
    std::cout << "myData: " << myData.i << '\n';
    std::cout << "ptr: " << ptr->i << '\n';
    
    ptr->~Data();
    
    std::cout << "myData: " << myData.i << '\n';
    std::cout << "ptr: " << ptr->i << '\n';
    
    return 0;
}
Beware of the Raping Zebra's
pi_90754943
Het enige wat die destructor doet is myData.i op 0 zetten, verder bestaat myData nog wel gewoon.
  zondag 2 januari 2011 @ 19:01:13 #221
189216 netolk
maar dan andersom
pi_90756396
quote:
1s.gif Op zondag 2 januari 2011 18:26 schreef thabit het volgende:
Het enige wat die destructor doet is myData.i op 0 zetten, verder bestaat myData nog wel gewoon.
ok, is er een manier om hem te verwijderen zonder met scopes te hoeven werken?
Beware of the Raping Zebra's
pi_90757043
quote:
1s.gif Op zondag 2 januari 2011 19:01 schreef netolk het volgende:

[..]

ok, is er een manier om hem te verwijderen zonder met scopes te hoeven werken?
myData op de heap aanmaken ipv. op de stack?
  zondag 2 januari 2011 @ 20:16:15 #223
189216 netolk
maar dan andersom
pi_90759893
quote:
1s.gif Op zondag 2 januari 2011 19:16 schreef TeringHenkie het volgende:

[..]

myData op de heap aanmaken ipv. op de stack?
Ja, dat zou idd kunnen want dan kan ik hem gewoon opruimen met delete toch?
Beware of the Raping Zebra's
pi_90760544
quote:
1s.gif Op zondag 2 januari 2011 20:16 schreef netolk het volgende:

[..]

Ja, dat zou idd kunnen want dan kan ik hem gewoon opruimen met delete toch?
Mits je hem aanmaakt met new. De destructor die je daar hebt is trouwens vrij zinloos: je zet iets op 0 wat je daarna toch weggooit.
  zondag 2 januari 2011 @ 21:28:52 #225
189216 netolk
maar dan andersom
pi_90765418
quote:
1s.gif Op zondag 2 januari 2011 20:27 schreef thabit het volgende:

[..]

Mits je hem aanmaakt met new. De destructor die je daar hebt is trouwens vrij zinloos: je zet iets op 0 wat je daarna toch weggooit.
Ik weet dat de destructor hier zinloos is, dacht in eerste instantie dat ie dan weggegooid werd bij het aanroepen van de destructor maar dat is dus niet zo...

Hoe kan je anders iets op de heap zetten dan?
Beware of the Raping Zebra's
pi_90765548
Met windows.h heb ik een HWND van een andere applicatie. De applicatie heeft een tabel die ik wil uitlezen en gebruiken. Is dat mogelijk (met HWND) of ergens anders mee? Ben nog niet zo lang bezig met c++ en ik heb een aanwijzing nodig naar de goede richting.
  zondag 2 januari 2011 @ 21:31:50 #227
189216 netolk
maar dan andersom
pi_90765661
quote:
1s.gif Op zondag 2 januari 2011 21:30 schreef FastFox91 het volgende:
Met windows.h heb ik een HWND van een andere applicatie. De applicatie heeft een tabel die ik wil uitlezen en gebruiken. Is dat mogelijk (met HWND) of ergens anders mee? Ben nog niet zo lang bezig met c++ en ik heb een aanwijzing nodig naar de goede richting.
Ik weet dat het kan, je hebt programma's die het gehele geheugen dat gebruikt word door een programma kunnen lezen/wijzigen weet alleen niet of het met een HWND kan
Beware of the Raping Zebra's
pi_90766288
quote:
1s.gif Op zondag 2 januari 2011 21:31 schreef netolk het volgende:

[..]

Ik weet dat het kan, je hebt programma's die het gehele geheugen dat gebruikt word door een programma kunnen lezen/wijzigen weet alleen niet of het met een HWND kan
Ik denk dat hij die HWND verkrijgt uit een .dll-etje ofzo, FastFox91 moet even wat specifieker zijn ;)
pi_90766674
quote:
1s.gif Op zondag 2 januari 2011 21:28 schreef netolk het volgende:

[..]

Ik weet dat de destructor hier zinloos is, dacht in eerste instantie dat ie dan weggegooid werd bij het aanroepen van de destructor maar dat is dus niet zo...

Hoe kan je anders iets op de heap zetten dan?
Je kan het bij aanvang van het programma op de heap declareren.
pi_90766728
@TeringHenkie Simpel, of bedoel je dit niet?
1HWND venster = FindWindow( "venster", NULL);
netolk, dat is goed nieuws. :P Heb nou "Window Detective" gevonden. Gelukkig opensource, dus misschien kan ik daar wat van leren, maar denk dat dat nog te moeilijk voor mij is.

[ Bericht 7% gewijzigd door FastFox91 op 02-01-2011 22:02:28 ]
  zondag 2 januari 2011 @ 22:43:23 #231
189216 netolk
maar dan andersom
pi_90770117
quote:
1s.gif Op zondag 2 januari 2011 21:45 schreef thabit het volgende:

[..]

Je kan het bij aanvang van het programma op de heap declareren.
Oe dat klinkt interessant vertel!

Kan ik het dan ook via een pointer verwijderen van de heap?
Beware of the Raping Zebra's
pi_90776346
quote:
1s.gif Op zondag 2 januari 2011 21:46 schreef FastFox91 het volgende:
@TeringHenkie Simpel, of bedoel je dit niet?

[ code verwijderd ]

netolk, dat is goed nieuws. :P Heb nou "Window Detective" gevonden. Gelukkig opensource, dus misschien kan ik daar wat van leren, maar denk dat dat nog te moeilijk voor mij is.
Shared objects/shared memory is denk ik de term die het meeste raakte met wat jij wil.
pi_90776512
quote:
1s.gif Op zondag 2 januari 2011 22:43 schreef netolk het volgende:

[..]

Oe dat klinkt interessant vertel!

Kan ik het dan ook via een pointer verwijderen van de heap?
Gewoon
1
2
3
4
5
6
Bla *schaap = new Bla();

delete schaap;

// EN ALTIJD:
schaap = 0;
  maandag 3 januari 2011 @ 13:37:16 #234
189216 netolk
maar dan andersom
pi_90789845
quote:
1s.gif Op maandag 3 januari 2011 00:41 schreef TeringHenkie het volgende:

[..]

Gewoon

[ code verwijderd ]

joh, alleen werd er gesuggereerd dat het ook zonder new kan...
ten 2e kan je dit niet verwijderen via een pointer...
Beware of the Raping Zebra's
pi_90792986
quote:
1s.gif Op maandag 3 januari 2011 13:37 schreef netolk het volgende:

[..]

joh, alleen werd er gesuggereerd dat het ook zonder new kan...
ten 2e kan je dit niet verwijderen via een pointer...
:?
pi_90793628
Zoiets:
1
2
3
4
5
6
7
class PietjePuk {
...
}; 

PietjePuk a, b(123, 456), c(a);

int main() { ... }
Ik zou dit overigens niet met de hand destructen, de destructors worden automatisch aangeroepen bij het afsluiten van het programmen.
  maandag 3 januari 2011 @ 18:03:20 #237
189216 netolk
maar dan andersom
pi_90802439
quote:
1s.gif Op maandag 3 januari 2011 14:57 schreef thabit het volgende:
Zoiets:

[ code verwijderd ]

Ik zou dit overigens niet met de hand destructen, de destructors worden automatisch aangeroepen bij het afsluiten van het programmen.
Hmm.. tja dat is ook niet echt een oplossing... het gaat om aardig wat objecten die in runtime gemaakt moeten kunnen worden... maar misschien kan ik het met een scope wel maken...
1
2
3
4
5
6
7
8
9
10
class Data{
//blabla
};
int main(){
    {
       Data myData();
      // doe dingen met data
   }
   // dan bestaat myData hier niet meer toch?
}
Het klopt dat myData alleen maar in de binnenste scope (waar het gemaakt word) bestaat toch?

maarja dit is niet zo netjes kan dit ook beter?
Beware of the Raping Zebra's
pi_90802504
quote:
1s.gif Op maandag 3 januari 2011 18:03 schreef netolk het volgende:

[..]

Hmm.. tja dat is ook niet echt een oplossing... het gaat om aardig wat objecten die in runtime gemaakt moeten kunnen worden... maar misschien kan ik het met een scope wel maken...

[ code verwijderd ]

Het klopt dat myData alleen maar in de binnenste scope (waar het gemaakt word) bestaat toch?

maarja dit is niet zo netjes kan dit ook beter?
Yep, alles daarbinnen wordt van de stack geflikkerd na de sluitende haken.
  maandag 3 januari 2011 @ 18:06:13 #239
189216 netolk
maar dan andersom
pi_90802530
quote:
1s.gif Op maandag 3 januari 2011 18:05 schreef TeringHenkie het volgende:

[..]

Yep, alles daarbinnen wordt van de stack geflikkerd na de sluitende haken.
Maar kan dit ook netter?
Het liefst op elk moment van je stack te gooien via een pointer oid.
Beware of the Raping Zebra's
  dinsdag 4 januari 2011 @ 17:11:01 #240
189216 netolk
maar dan andersom
pi_90842131
quote:
1s.gif Op maandag 3 januari 2011 18:06 schreef netolk het volgende:

[..]

Maar kan dit ook netter?
Het liefst op elk moment van je stack te gooien via een pointer oid.
Ik heb iets bedacht als ik die data dingen nu eens gewoon in een vector oid zet en zo nu en dan kijk of ze weg kunnen, is dat iets wat redelijk efficiënt is of word het dan gewoon zo'n chaos?
Beware of the Raping Zebra's
pi_90844803
Gebruik anders de Boost libraries, die hebben shared_ptr's. Daarmee wordt automagisch het object verwijderd zodra de enigste referentie ernaartoe verdwijnt.
pi_90845225
Een andere optie is om geen C++ te gebruiken, maar een taal met ingebouwde garbage collection en op die manier jezelf in de 21ste eeuw te verwelkomen.
pi_90852796
quote:
12s.gif Op dinsdag 4 januari 2011 18:25 schreef thabit het volgende:
Een andere optie is om geen C++ te gebruiken, maar een taal met ingebouwde garbage collection en op die manier jezelf in de 21ste eeuw te verwelkomen.
weg uit dit topic!
de jeugd van tegenwoordig... geen respect meer voor mensen van de oude stempel (8>
Finally, someone let me out of my cage
  dinsdag 4 januari 2011 @ 21:32:26 #244
189216 netolk
maar dan andersom
pi_90855765
quote:
11s.gif Op dinsdag 4 januari 2011 20:43 schreef minibeer het volgende:

[..]

weg uit dit topic!
de jeugd van tegenwoordig... geen respect meer voor mensen van de oude stempel (8>
Hehe zo oud ben ik nou ook weer niet hoor...

minibeer daar in tegen XD

Bedankt voor de reacties ik ga het eerst gewoon even met een vector proberen en als dat chaos word kan ik altijd die boost libs proberen
Beware of the Raping Zebra's
pi_90856039
quote:
12s.gif Op dinsdag 4 januari 2011 18:25 schreef thabit het volgende:
Een andere optie is om geen C++ te gebruiken, maar een taal met ingebouwde garbage collection en op die manier jezelf in de 21ste eeuw te verwelkomen.
Ik onderschrijf dit.

Of je gooit 50 cent naar zon programmeur in ruil voor een programma, hoef je het niet meer zelf te maken
pi_90856456
De grootste designfout van C++ is natuurlijk dat het niet backwards compatible is met C.
pi_90858582
Des te meer C++ 1337 zal blijven
pi_90874350
quote:
1s.gif Op dinsdag 4 januari 2011 22:16 schreef TeringHenkie het volgende:
Des te meer C++ 1337 zal blijven
Ja? Dus dit is 1337? :') Het is eerder troep

1std::map<std::string, std::vector<std::pair<double, std::string> > > list;
  woensdag 5 januari 2011 @ 11:44:17 #249
31101 _Led_
Visje aaien niemand zeggen
pi_90874670
quote:
1s.gif Op woensdag 5 januari 2011 11:36 schreef Thomass het volgende:

[..]

Ja? Dus dit is 1337? :') Het is eerder troep
[ code verwijderd ]

Want in C# kun je niet
1System.Collections.Generic.Dictionary<System.String, System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<double, System.String>>> list
schrijven bedoel je ? ;)
zzz
pi_90877266
Dit is natuurlijk een stuk beter:
1spam = {}
pi_90878770
quote:
1s.gif Op woensdag 5 januari 2011 11:44 schreef _Led_ het volgende:

[..]

Want in C# kun je niet

[ code verwijderd ]

schrijven bedoel je ? ;)
Dat bedoelde ik niet nee. Ik ken C# niet, het ziet er in ieder geval afschuwelijk uit :D

quote:
7s.gif Op woensdag 5 januari 2011 12:56 schreef thabit het volgende:
Dit is natuurlijk een stuk beter:

[ code verwijderd ]

Precies ^O^
  woensdag 5 januari 2011 @ 13:40:19 #252
31101 _Led_
Visje aaien niemand zeggen
pi_90878856
quote:
1s.gif Op woensdag 5 januari 2011 13:38 schreef Thomass het volgende:
Dat bedoelde ik niet nee. Ik ken C# niet, het ziet er in ieder geval afschuwelijk uit :D
Och, die regel kun je ook een heel stuk compacter schrijven hoor, net zoals dat stuk C++ trouwens.

Als je wilt kun je in elke taal lelijke code schrijven :)
zzz
  woensdag 5 januari 2011 @ 23:36:09 #253
189216 netolk
maar dan andersom
pi_90912804
quote:
1s.gif Op woensdag 5 januari 2011 13:40 schreef _Led_ het volgende:

[..]

Och, die regel kun je ook een heel stuk compacter schrijven hoor, net zoals dat stuk C++ trouwens.

Als je wilt kun je in elke taal lelijke code schrijven :)
Ja lelijke code willen we natuurlijk niet hebben hè
Beware of the Raping Zebra's
pi_90915496
On-topic, er ging voor mij een hele wereld open toen ik er achter kwam dat je objecten gewoon op de stack aan kan maken ipv. alleen maar op de heap. Hoe ver kun je daar mee gaan?
pi_90921062
quote:
1s.gif Op donderdag 6 januari 2011 00:25 schreef TeringHenkie het volgende:
On-topic, er ging voor mij een hele wereld open toen ik er achter kwam dat je objecten gewoon op de stack aan kan maken ipv. alleen maar op de heap. Hoe ver kun je daar mee gaan?
Totdat de stack vol zit, daarna krijg je een segfault. :P. Hangt dus van je stackruimte af en van de grootte van de objecten. Het lijkt me sowieso raadzaam om zuinig om te gaan met stackruimte in het algemeen.
pi_90926529
quote:
12s.gif Op donderdag 6 januari 2011 10:00 schreef thabit het volgende:

[..]

Totdat de stack vol zit, daarna krijg je een segfault. :P. Hangt dus van je stackruimte af en van de grootte van de objecten. Het lijkt me sowieso raadzaam om zuinig om te gaan met stackruimte in het algemeen.
Dus kleine objecten op de stack, grote op de heap zodat die niet gefragmenteerd raakt?
  vrijdag 7 januari 2011 @ 14:52:05 #257
189216 netolk
maar dan andersom
pi_90977698
Hey, zou deze code anders kunnen?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
enum Name{
    sub1,sub2
};

class Master{
    protected:
        Name _NAME;
};

class Sub1:public Master{
    _NAME = sub1;
};
class Sub2:public Master{
    _NAME = sub2;
};

Ik wil deze classes in een vector<Master> stoppen, maar dan wil ik wel weten wat voor class (sub1,sub2) het is.
Is daar een andere oplossing voor dan een enum?
Beware of the Raping Zebra's
pi_91022444
quote:
1s.gif Op vrijdag 7 januari 2011 14:52 schreef netolk het volgende:
Hey, zou deze code anders kunnen?

[ code verwijderd ]

Ik wil deze classes in een vector<Master> stoppen, maar dan wil ik wel weten wat voor class (sub1,sub2) het is.
Is daar een andere oplossing voor dan een enum?
Je zou bijvoorbeeld een memberconstante aan kunnen maken die je bij de een initialiseerd op een andere waarde dan bij de ander. Maar ik geloof dat er betere oplossingen zijn, al weet ik niet precies welke (in c# had je typeof(), maar ik geloof niet dat er zoiets is in c++)
Finally, someone let me out of my cage
  zaterdag 8 januari 2011 @ 21:43:01 #259
189216 netolk
maar dan andersom
pi_91042576
quote:
1s.gif Op zaterdag 8 januari 2011 14:17 schreef minibeer het volgende:

[..]

Je zou bijvoorbeeld een memberconstante aan kunnen maken die je bij de een initialiseerd op een andere waarde dan bij de ander. Maar ik geloof dat er betere oplossingen zijn, al weet ik niet precies welke (in c# had je typeof(), maar ik geloof niet dat er zoiets is in c++)
Die member constante komt dan toch ongeveer overeen met de oplossing die ik had bedacht?
Beware of the Raping Zebra's
pi_91048272
quote:
1s.gif Op zaterdag 8 januari 2011 21:43 schreef netolk het volgende:

[..]

Die member constante komt dan toch ongeveer overeen met de oplossing die ik had bedacht?
o, had ik niet gezien :P excuus
Finally, someone let me out of my cage
  zondag 9 januari 2011 @ 14:24:58 #261
189216 netolk
maar dan andersom
pi_91065059
quote:
1s.gif Op zaterdag 8 januari 2011 23:35 schreef minibeer het volgende:

[..]

o, had ik niet gezien :P excuus
ahh, vandaar maar er zou dus een betere oplossing moeten zijn...
Beware of the Raping Zebra's
pi_91078208
quote:
1s.gif Op vrijdag 7 januari 2011 14:52 schreef netolk het volgende:
Hey, zou deze code anders kunnen?

[ code verwijderd ]

Ik wil deze classes in een vector<Master> stoppen, maar dan wil ik wel weten wat voor class (sub1,sub2) het is.
Is daar een andere oplossing voor dan een enum?
Je kunt met een dynamic_cast checken of een een pointer naar een base class naar een gegeven afgeleide klasse verwijst. Zie http://en.wikibooks.org/wiki/C++_Programming/RTTI
  zondag 9 januari 2011 @ 21:39:33 #263
189216 netolk
maar dan andersom
pi_91088543
quote:
1s.gif Op zondag 9 januari 2011 19:19 schreef thabit het volgende:

[..]

Je kunt met een dynamic_cast checken of een een pointer naar een base class naar een gegeven afgeleide klasse verwijst. Zie http://en.wikibooks.org/wiki/C++_Programming/RTTI
Zo'n dynamic cast kost zeker wel weer veel resources of niet?
Beware of the Raping Zebra's
pi_91088969
quote:
1s.gif Op zondag 9 januari 2011 21:39 schreef netolk het volgende:

[..]

Zo'n dynamic cast kost zeker wel weer veel resources of niet?
Valt wel mee denk ik, volgens mij bepaalt hij de validiteit van de cast aan de hand van de vtable.
  zondag 9 januari 2011 @ 21:57:11 #265
189216 netolk
maar dan andersom
pi_91089864
quote:
1s.gif Op zondag 9 januari 2011 21:45 schreef thabit het volgende:

[..]

Valt wel mee denk ik, volgens mij bepaalt hij de validiteit van de cast aan de hand van de vtable.
Ow ok, het ziet er wel handiger uit dan zo'n member te maken waar je aan kunt zien wat het is

ga het gelijk proberen

bedankt
Beware of the Raping Zebra's
pi_91090656
Je kunt bijvoorbeeld ook een virtual method is_Sub1 aanmaken, die false returnt in de base class en true in Sub1. Lijkt me wat schoner dan met rtti kloten.
  zondag 9 januari 2011 @ 22:25:26 #267
189216 netolk
maar dan andersom
pi_91092028
Hmm, heb het verkeerd begrepen...

[ Bericht 92% gewijzigd door netolk op 10-01-2011 14:48:02 ]
Beware of the Raping Zebra's
  maandag 10 januari 2011 @ 14:47:53 #268
189216 netolk
maar dan andersom
pi_91115014
quote:
1s.gif Op zondag 9 januari 2011 22:07 schreef thabit het volgende:
Je kunt bijvoorbeeld ook een virtual method is_Sub1 aanmaken, die false returnt in de base class en true in Sub1. Lijkt me wat schoner dan met rtti kloten.
Maar hoe doe je zo iets dan?
Beware of the Raping Zebra's
pi_91115341
Zoiets:

1
2
3
4
5
6
7
8
class Base {
public:    
    virtual bool is_Sub1() const {return false;}
};

class Sub1: public Base {
    bool is_Sub1() const {return true;}
};
  maandag 10 januari 2011 @ 15:05:14 #270
189216 netolk
maar dan andersom
pi_91115774
ow ja Xd zo moest dat, maar dan moet ik dus zo'n 7 dingen maken...
maar is denk idd wel netter dan die rtti...

maar waarom is die const dan eigenlijk??

want je code zegt nu toch gewoon return false
Beware of the Raping Zebra's
pi_91116194
Die const kun je ook weglaten. Is alleen om de compiler te vertellen dat de methode niet aan de members van de klasse loopt te frunniken.

Ik denk persoonlijk echter, dat als je een klasse hebt met 7 subklassen waarvoor je type-identificatie nodig hebt, dat dan zeer waarschijnlijk je design voor verbetering vatbaar is.
  maandag 10 januari 2011 @ 15:18:11 #272
189216 netolk
maar dan andersom
pi_91116300
quote:
1s.gif Op maandag 10 januari 2011 15:16 schreef thabit het volgende:
Die const kun je ook weglaten. Is alleen om de compiler te vertellen dat de methode niet aan de members van de klasse loopt te frunniken.

Ik denk persoonlijk echter, dat als je een klasse hebt met 7 subklassen waarvoor je type-identificatie nodig hebt, dat dan zeer waarschijnlijk je design voor verbetering vatbaar is.
Ja, waarschijnlijk is het het best om met templates te werken enzo maar dat moet ik dan weer opzoeken hoe dat werkt en dit snap ik teminste redelijk...

ben bezig met een spel en dan heb ik een class grondstoffen waar de basis dingen voor elke grondstof instaan en dan een omhulsel voor een specifieke grondstof
Beware of the Raping Zebra's
pi_91127182
Je kan toch ook een pure virtual method maken in je base class die een waarde uit een enum typeofsubclass oid. returnet? Of denk ik nu te simpel?
  maandag 10 januari 2011 @ 21:18:39 #274
189216 netolk
maar dan andersom
pi_91134304
quote:
1s.gif Op maandag 10 januari 2011 19:11 schreef TeringHenkie het volgende:
Je kan toch ook een pure virtual method maken in je base class die een waarde uit een enum typeofsubclass oid. returnet? Of denk ik nu te simpel?
Ja dat had ik dus eerst maar toen vroeg ik of het beter kon en kwam er dus die rtti dingen voor

maar ik kwam er idd ook al achter dat het makkelijker in gebruik is als ik zo iets doe
Beware of the Raping Zebra's
  woensdag 12 januari 2011 @ 17:24:33 #275
189216 netolk
maar dan andersom
pi_91219753
Hey heb een probleempje met m'n headers:
Header A:
1
2
3
4
5
6
7
8
9
#ifndef _HEADERA_H
#define _HEADERA_H
    #include "HeaderB.h"
    namespace A{
        class A_Class{
            B::B_Class _DINGES;
        };
    };
#endif

header B:
1
2
3
4
5
6
7
8
9
#ifndef _HEADERB_H
#define _HEADERB_H
    #include "HeaderA.h"
    namespace B{
        class B_Class{
            A::A_Class *_BLA;
        };
    };
#endif

nu is het zo dat de compiler error's geeft wat logisch is, normaal loste ik dit op door eerst even een declaratie in zo'n header te zetten maar omdat het nu in een namespace is die nog niet is gedeclareerd werkt dit niet... hoe kan ik dit oplossen? want volgens mij kan je een namespace niet alleen declareren...
Beware of the Raping Zebra's
pi_91221672
Je declareert in A_Class een member van type B_Class, terwijl het mogelijk is dat B_Class op dat moment nog niet gedefinieerd is. De compiler moet weten hoeveel geheugenruimte een object van een class en daarmee dus ook elke member van die class inneemt.

Als je dus dergelijke cross-references wilt toepassen dan moet je dat dus doen middels een pointer of een reference, daarvan ligt namelijk de hoeveelheid geheugenruimte gewoon vast. Je moet dan nog wel forward declaraties class A_class; en class B_class; invoegen.
  woensdag 12 januari 2011 @ 18:18:12 #277
189216 netolk
maar dan andersom
pi_91222422
quote:
1s.gif Op woensdag 12 januari 2011 18:02 schreef thabit het volgende:
Je declareert in A_Class een member van type B_Class, terwijl het mogelijk is dat B_Class op dat moment nog niet gedefinieerd is. De compiler moet weten hoeveel geheugenruimte een object van een class en daarmee dus ook elke member van die class inneemt.

Als je dus dergelijke cross-references wilt toepassen dan moet je dat dus doen middels een pointer of een reference, daarvan ligt namelijk de hoeveelheid geheugenruimte gewoon vast. Je moet dan nog wel forward declaraties class A_class; en class B_class; invoegen.
Ja die pointer heb ik... maar hoe kan ik een forward declaratie doen als het in een namespace staat?
Beware of the Raping Zebra's
pi_91223755
Kan dit niet gewoon?
1
2
3
namespace A {
    class A_Class;
}
En dan later gewoon nog een keer namespace A met definities erin.
  woensdag 12 januari 2011 @ 19:02:13 #279
189216 netolk
maar dan andersom
pi_91224618
nee, dan krijg ik een error in header A, dat _DINGES een incomplete type is
Beware of the Raping Zebra's
pi_91256129
quote:
1s.gif Op woensdag 12 januari 2011 19:02 schreef netolk het volgende:
nee, dan krijg ik een error in header A, dat _DINGES een incomplete type is
_Dinges moet natuurlijk wel een pointer of een reference zijn, zoals ik een paar posts terug heb uitgelegd.
  donderdag 13 januari 2011 @ 20:05:29 #281
189216 netolk
maar dan andersom
pi_91279667
quote:
1s.gif Op donderdag 13 januari 2011 11:22 schreef thabit het volgende:

[..]

_Dinges moet natuurlijk wel een pointer of een reference zijn, zoals ik een paar posts terug heb uitgelegd.
Ow hehe, vet stom vergeten het bestand op te slaan ofzo want nu doet ie het dus wel :)

hartstikke bedankt
Beware of the Raping Zebra's
pi_91822743
Ik had er al een topic voor geopend (voordat ik deze zag), maar hier dus nog een keer:

Ik krijg het niet voor elkaar om met std::ofstream.seekp() te werken. Ik krijg altijd een corrupt bestand. Het gaat mis bij de volgende code

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
inline void file::write_part(segment *the_segment, ::nntp::decoded_article_ptr decoded)
{
    boost::mutex::scoped_lock   lock(write_mutex);  // make sure we are the only ones messing with segments
    std::string                 filename;           // cache file name
    std::string                 data;               // cache decoded data

    // get the filename and data from the decoded article
    decoded->filename(filename, false);
    decoded->data(data);

    // open file
    out_file.open(filename.c_str(), std::ios_base::binary | std::ios_base::out);

    // if it is a multipart binary, seek to the right position
    if (decoded->multipart())
        out_file.seekp(decoded->begin() - 1);

    // did we arrive at the right position?
    if (decoded->multipart() && out_file.tellp() != decoded->begin() - 1)
        std::cout << "File '" << filename << "', segment " << the_segment->segment_number() <<  " at position " << out_file.tellp() << ", expected to be at " << decoded->begin() - 1 << std::endl;

    // write the data
    out_file.write(data.c_str(), data.length());

    // close the file
    out_file.close();
}

Hou ik daarentegen het bestand open, en zoek ik niet in het bestand, dan gaat het wel goed. Ik moet dan alleen wel de netjes alles in de goede volgorde aan de functie aangeven. De volgende code werkt in dit geval dus wel:

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
inline void file::write_part(segment *the_segment, ::nntp::decoded_article_ptr decoded)
{
    boost::mutex::scoped_lock   lock(write_mutex);  // make sure we are the only ones messing with segments
    std::string                 filename;           // cache file name
    std::string                 data;               // cache decoded data

    // get the filename and data from the decoded article
    decoded->filename(filename, false);
    decoded->data(data);

    // open file if necessary
    if (!out_file.is_open())
        out_file.open(filename.c_str(), std::ios_base::binary | std::ios_base::out);

    // are we at the right spot?
    if (decoded->multipart() && out_file.tellp() != decoded->begin() - 1)
        std::cout << "File '" << filename << "', segment " << the_segment->segment_number() <<  " at position " << out_file.tellp() << ", expected to be at " << decoded->begin() - 1 << std::endl;

    // write the data
    out_file.write(data.c_str(), data.length());

    // close the file
    if (the_segment->segment_number() == segment_list.size())
        out_file.close();
}

Ik controleer hier dus of de write position correct is, door de uitkomst van tellp() te vergelijken met wat ik verwacht. Dit doe ik in het eerste geval ook, en na de seekp() werkt dit ook. Alleen, het eerste geval creëert een corrupt bestand en ik heb geen idee waar dat door kan komen. De reden dat ik dit werkend wil krijgen is dat dan de gegevens in willekeurige volgorde kunnen worden geschreven.

out_file is een member variabele van de class file, article is een smart pointer naar een gedecodeerd usenet artikel. Hoe krijg ik seekp() werkend?
One cannot make an omelette without
breaking eggs -- but it is amazing how
many eggs one can break without making
a decent omelette.
  maandag 24 januari 2011 @ 23:59:06 #283
189216 netolk
maar dan andersom
pi_91830006
misschien heb je hier iets aan?
http://www.cplusplus.com/reference/iostream/ostream/seekp/

krijg je ook een foutmelding (throw) zo ja welke?
Beware of the Raping Zebra's
pi_91832153
Lekker aan het crossposten op GoT? :P
pi_91835689
quote:
1s.gif Op maandag 24 januari 2011 23:59 schreef netolk het volgende:
misschien heb je hier iets aan?
http://www.cplusplus.com/reference/iostream/ostream/seekp/

krijg je ook een foutmelding (throw) zo ja welke?
Daar heb ik al gekeken. Kan daar niets vinden wat aangeeft waarom dit niet zou moeten werken.

Ik krijg geen foutmelding. Zoals ik al aangaf, tellp geeft in beide gevallen gewoon de juiste positie aan. Krijg ik die juiste positie echter door een seekp dan werkt het ineens niet.
quote:
1s.gif Op dinsdag 25 januari 2011 00:49 schreef TeringHenkie het volgende:
Lekker aan het crossposten op GoT? :P
Het beste van beide ;) ...
One cannot make an omelette without
breaking eggs -- but it is amazing how
many eggs one can break without making
a decent omelette.
  dinsdag 25 januari 2011 @ 09:06:13 #286
192481 Core2
Happiness is the road
pi_91836688
Het is een beetje lastig om daar uitspraken over te doen, aangezien er nogal wat afhankelijkheden aan die functie hangen. Daarnaast maak je gebruik van concurrency, als je ergens een lock vergeet te respecteren in een andere functie kan dat al invloed hebben natuurlijk.
pi_91858870
wat doet "->" precies? ik zie het vaak bij "this" gebruikt worden, maar ik weet niet precies wat het betekent :@.
Finally, someone let me out of my cage
pi_91859703
quote:
1s.gif Op dinsdag 25 januari 2011 18:44 schreef minibeer het volgende:
wat doet "->" precies? ik zie het vaak bij "this" gebruikt worden, maar ik weet niet precies wat het betekent :@.
a->b is hetzelfde als (*a).b (tenzij een van de operators overloaded is).
pi_91859895
quote:
1s.gif Op dinsdag 25 januari 2011 19:01 schreef thabit het volgende:

[..]

a->b is hetzelfde als (*a).b (tenzij een van de operators overloaded is).
ah, pointers he, ik dacht dat ik ze wel doorhad maar het blijft wennen...
bedankt :)
Finally, someone let me out of my cage
pi_91882099
Bedankt voor alle hulp iedereen, het probleem zat hem in het feit dat een bestaand bestand openen en daarin zoeken alles weggooit tenzij je het bestand ook met std::ios_base::in opent :) .
One cannot make an omelette without
breaking eggs -- but it is amazing how
many eggs one can break without making
a decent omelette.
  woensdag 26 januari 2011 @ 09:57:29 #291
192481 Core2
Happiness is the road
pi_91884269
quote:
14s.gif Op woensdag 26 januari 2011 07:42 schreef nightsleeper het volgende:
Bedankt voor alle hulp iedereen, het probleem zat hem in het feit dat een bestaand bestand openen en daarin zoeken alles weggooit tenzij je het bestand ook met std::ios_base::in opent :) .
WTF, heb je ergens een bron waar dit wordt uitgelegd? Dat is wel erg maf gedrag.
pi_91884807
quote:
1s.gif Op woensdag 26 januari 2011 09:57 schreef Core2 het volgende:

[..]

WTF, heb je ergens een bron waar dit wordt uitgelegd? Dat is wel erg maf gedrag.
http://stdcxx.apache.org/doc/stdlibug/30-3.html

Gewoon dat streamgedoe niet gebruiken, het voegt alleen maar een hoop ellende toe.
  woensdag 26 januari 2011 @ 20:37:09 #293
189216 netolk
maar dan andersom
pi_91910947
quote:
14s.gif Op woensdag 26 januari 2011 07:42 schreef nightsleeper het volgende:
Bedankt voor alle hulp iedereen, het probleem zat hem in het feit dat een bestaand bestand openen en daarin zoeken alles weggooit tenzij je het bestand ook met std::ios_base::in opent :) .
gebruik dan ook gewoon std::ifstream dan gaat het altijd goed
Beware of the Raping Zebra's
  donderdag 27 januari 2011 @ 13:28:37 #294
189216 netolk
maar dan andersom
pi_91938240
Hey Fokkers,
het wil weer eens niet lukken :(

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class BUILDING{
    //code
};
class StoreHouse:public BUILDING{
  // code
  public:
   unsigned get_Wood();
   unsigned get_Stone();
};

Building::StoreHouse *SHptr;
    Building::BUILDING *Bptr;;
    for(unsigned i = 0; i < _BUILDINGS.size();i++){
        if(_BUILDINGS[i].get_Name() == Names::nStoreHouse){ // checkt of het wel echt een StoreHouse is en geen ander gebouw
            *Bptr = _BUILDINGS[i];
            *SHptr = reinterpret_cast<Building::StoreHouse*>(Bptr);
            _WOOD += SHptr->get_Wood();
            _STONE += SHptr->get_Stone();
        }
    }

nu krijg ik dus de volgende fout melding:
1error: no match for 'operator=' in '*SHptr = (Building::StoreHouse*)Bptr'

ik snap dit niet want volgens deze link zou dit gewoon legaal moeten zijn... iemand een idee hoe ik dit kan oplossen?

[ Bericht 1% gewijzigd door netolk op 27-01-2011 13:33:33 (verkeerde fout code) ]
Beware of the Raping Zebra's
pi_91958378
1*SHptr = reinterpret_cast<Building::StoreHouse*>(Bptr);
Dat sterretje aan het begin hoort er niet.
  donderdag 27 januari 2011 @ 21:13:09 #296
189216 netolk
maar dan andersom
pi_91959570
quote:
1s.gif Op donderdag 27 januari 2011 20:52 schreef thabit het volgende:

[ code verwijderd ]

Dat sterretje aan het begin hoort er niet.
wtf, dat is gewoon dom van mij...

maar dat sterretje is nu dus weg en compileert het wel alleen loopt het programma vast op de eerder geposte code, direct na de reinterpret_cast
Beware of the Raping Zebra's
pi_91961746
Het probleem zit hem in
1*Bptr = _BUILDINGS[i];

Je roept hier een assignment operator aan, terwijl Bptr niet geinitialiseerd is. Kortom, je zit iets naar een min of meer random geheugenadres te kopieren. In plaats daarvan moet je
1Bptr = &(_BUILDINGS[i]);
doen. (Geen idee of die haakjes daar nodig zijn, te lui om op te zoeken. :P). Nog netter is het om zoveel mogelijk met references ipv pointers te werken, maar soit.
  vrijdag 28 januari 2011 @ 13:51:16 #298
189216 netolk
maar dan andersom
pi_91987377
quote:
1s.gif Op donderdag 27 januari 2011 21:45 schreef thabit het volgende:
Het probleem zit hem in

[ code verwijderd ]


Je roept hier een assignment operator aan, terwijl Bptr niet geinitialiseerd is. Kortom, je zit iets naar een min of meer random geheugenadres te kopieren. In plaats daarvan moet je

[ code verwijderd ]

doen. (Geen idee of die haakjes daar nodig zijn, te lui om op te zoeken. :P). Nog netter is het om zoveel mogelijk met references ipv pointers te werken, maar soit.
txs die haakjes hoeven niet :) maar waarom is het netter om met references te werken ipv met pointers?
Beware of the Raping Zebra's
  vrijdag 28 januari 2011 @ 13:56:45 #299
58834 Catbert
The evil HR Director.
pi_91987586
quote:
1s.gif Op vrijdag 28 januari 2011 13:51 schreef netolk het volgende:
txs die haakjes hoeven niet :) maar waarom is het netter om met references te werken ipv met pointers?
Tijdje terug maar AFAIK: Met references kun je niet goochelen, een pointer kun je echt overal naartoe laten wijzen. Je kunt met references dus minder snel fouten maken.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  vrijdag 28 januari 2011 @ 14:06:24 #300
189216 netolk
maar dan andersom
pi_91988030
quote:
1s.gif Op vrijdag 28 januari 2011 13:56 schreef Catbert het volgende:

[..]

Tijdje terug maar AFAIK: Met references kun je niet goochelen, een pointer kun je echt overal naartoe laten wijzen. Je kunt met references dus minder snel fouten maken.
ow zo, ik weet niet zo veel van reference maar die kan je dan ook gewoon als class.function() gebruiken? als class een reference is naar die class?
Beware of the Raping Zebra's
  vrijdag 28 januari 2011 @ 14:10:18 #301
58834 Catbert
The evil HR Director.
pi_91988212
quote:
1s.gif Op vrijdag 28 januari 2011 14:06 schreef netolk het volgende:
ow zo, ik weet niet zo veel van reference maar die kan je dan ook gewoon als class.function() gebruiken? als class een reference is naar die class?
Het is erg lang geleden (10 jaar ofzo) dat ik serieus met C++ bezig ben geweest maar ja, in princiepe is het vrijwel hetzelfde als een pointer met het grote verschil dat je in een functie niet aan kunt passen waar een reference naar wijst.

In Java en .Net heb je ook alleen references en geen pointers.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')