| Olympus OM-D EM10 mk2 | m.Zuiko 14-42mm f/3.5-5.6EZ | m.Zuiko 40-150mm f/4-5.6 R | m.Zuiko 60mm f/2.8 | 2x Godox v860 | Godox X1 |
HomeComputerMuseum - Interactief computermuseum waar wij de geschiedenis van de thuiscomputer preserveren. Centraal gelegen in de Benelux.
En dat zou moeten werken, maar ik doe het wel even opnieuw.
Dan kijken waarom hij stdlib.h niet kan vinden. (Die IS toch platform-onafhankelijk?)
| Olympus OM-D EM10 mk2 | m.Zuiko 14-42mm f/3.5-5.6EZ | m.Zuiko 40-150mm f/4-5.6 R | m.Zuiko 60mm f/2.8 | 2x Godox v860 | Godox X1 |
Ik denk het niet. De interface waarschijnlijk wel, maar de inhoud vast niet.psyBSD schreef op 18 april 2004 @ 15:14:
Dan kijken waarom hij stdlib.h niet kan vinden. (Die IS toch platform-onafhankelijk?)
Anyway, hoe zie je het precies voor je om win32 applicaties te gaan ontwikkelen zonder Windows te draaien? Of worden het alleen console apps....
Het gaat er waarschijnlijk om dat het .exe bestanden worden, gelukkig kun je of standaard system calls gebruiken om zelf schermpjes te maken. Of je kunt GTK/QT voor Windows mee sturen.Wilke schreef op 18 april 2004 @ 15:40:
[...]
Ik denk het niet. De interface waarschijnlijk wel, maar de inhoud vast niet.
Anyway, hoe zie je het precies voor je om win32 applicaties te gaan ontwikkelen zonder Windows te draaien? Of worden het alleen console apps....
Steun Elkaar, Kopieer Nederlands Waar!
Wat betreft die stdlib, xmingw support alle standaard libraries van gcc. En hij maakt gebruik van een w32-api.
mingw doet iets geks met gcc. Als ik 'hellworld\n' naar een file schrijf maakt hij daar DOS -style newlines van, ok niks aan de hand zou je zeggen. Maar als ik de source door de gcc heen haal staat er 'helloworld\nq^A' in de file
Ik zal hier wel posten als ik daar een oplossing voor heb gevonden.
[ Voor 63% gewijzigd door psyBSD op 18-04-2004 17:14 ]
| Olympus OM-D EM10 mk2 | m.Zuiko 14-42mm f/3.5-5.6EZ | m.Zuiko 40-150mm f/4-5.6 R | m.Zuiko 60mm f/2.8 | 2x Godox v860 | Godox X1 |
Overigens maakt xmingw windows binaries aan, en windows binaries maken textfiles met \r\n newlines ipv unix \n. Maar dat is niet erg, want windows textfiles lees je met TYPE en unix textfiles met cat.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Zelfs de interface is niet 100% platform-onafhankelijk. De C standaard beschrijft wel een boel, maar sommige details zijn "implementation-defined".Wilke schreef op 18 april 2004 @ 15:40:
[... kijken waarom hij stdlib.h niet kan vinden. (Die IS toch platform-onafhankelijk?) ]
Ik denk het niet. De interface waarschijnlijk wel, maar de inhoud vast niet.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
MinGW is erg gaaf. Je kan gewoon de win32 api aanspreken (en windows dll's gebruiken), en als je bijvoorbeeld een OpenGL applicatie maakt is het (gebruikmakend van glut) praktisch platform-onafhankelijk programmeren. Je hoeft dan nog alleen de losse eindjes en windows bugs oplossen.Wilke schreef op 18 april 2004 @ 15:40:
[...]
Ik denk het niet. De interface waarschijnlijk wel, maar de inhoud vast niet.
Anyway, hoe zie je het precies voor je om win32 applicaties te gaan ontwikkelen zonder Windows te draaien? Of worden het alleen console apps....
Maar je moet het vooral zien als compiler. Microsoft heeft geen gratis/Free compilers, dus is MinGW heel fijn.
Nu hoorde ik gisteren iets over een gratis command line compiler voor windows-code. Ik weet daar niets vanaf en wil het ook niet weten
hehe, die o is idd een tiepfout in me post.MSalters schreef op 20 april 2004 @ 00:12:
Wat bedoel je nou met dat laatste commentaar over die strings? Ik snap er geen hout van, en ik weet zeker dat er typo's inzitten - waar komt die o achter "hell opeens vandaan?
Overigens maakt xmingw windows binaries aan, en windows binaries maken textfiles met \r\n newlines ipv unix \n. Maar dat is niet erg, want windows textfiles lees je met TYPE en unix textfiles met cat.
Maar het probleem blijft, als ik me code nu door de gcc haal heb ik geen \n meer.
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
| #include <stdio.h> #include <stdlib.h> #include <string.h> #define IOValue "Hello World\n" int main() { int i = 0; char *inputstream = (char *) malloc(13); char *outputstream; strcpy((outputstream = (char *) malloc(strlen(IOValue))), IOValue); FILE *bestand1; bestand1 = fopen("test.txt","w+"); fprintf(bestand1,"%s",outputstream); rewind(bestand1); while(!feof(bestand1)) { i++; inputstream = (char *) realloc(inputstream, i); inputstream[i-1] = fgetc(bestand1); } inputstream[i-1] = '\0'; printf("%s",inputstream); } |
Voor de duidelijkheid, voordat ik mingw had kreeg ik een gewoon textfiletje met een \n. Nu niet meer.
| Olympus OM-D EM10 mk2 | m.Zuiko 14-42mm f/3.5-5.6EZ | m.Zuiko 40-150mm f/4-5.6 R | m.Zuiko 60mm f/2.8 | 2x Godox v860 | Godox X1 |
Die (lelijke) assignment+malloc in regel 11 reserveert 1 char te weinig geheugen. Bij de fprintf() in regel 14 blijven we dus gewoon char's schrijven tot er toevallig een 0 in het geheugen staat.DESCRIPTION
The strlen() function calculates the length of the string s, not including the terminating `\0' character.
"He took a duck in the face at two hundred and fifty knots."
Verder is er nog de bug dat je onnodig veel realloc's doet; een bestand van N karakters heeft N reallocs nodig waarvan er N-1 gemiddeld N/2 karakters kunnen kopieren. Een filetje van 1K heeft dus potentieel al 1/2 MB aan byte copies tot gevolg, en een file van 1M heeft dus potentieel al 500 GB (!) aan byte copies tot gevolg. Beetje slordig.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein