Del en fil op... problemmer med dev-cpp

Tags:    c++

<< < 12 > >>
hej jeg arbejder med c/c++ i dev-cpp og kan godt lide
programmet fordi man både kan compile og kode i det på
samme tid, men her på det sidste er der begyndt at komme
en besked hvor der står out of memory eller fjel i
programmet (noget med memory og en adresse til en)
pointer.... efter det stopper programmet med at svare og
jeg skal bruge alt+ctrl+del for at lukke det... er der nogen der
kender en anden compiler som IKKE er "command line",
altså noget der ligner dev-cpp meget og kan både kode og
compile i samme program.....
hjælp...

mit andet problem er at jeg arbejder med win 32 Api og jeg syntes let en fil bliver over 700 linier og så er det ikke særlig overskueligt længere...
kan man ikke på en eller anden måde dele finlen op i 2 eller
flere og så bruge #include til at sætte filerne sammen til et program...
eller er der nogen der har et bedere forslag til hvordan man kan gøre en stor program fil mere overskuelig.....


Mvh. Jop...



11 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
hej jeg arbejder med c/c++ i dev-cpp og kan godt lide
programmet fordi man både kan compile og kode i det på
samme tid, men her på det sidste er der begyndt at komme
en besked hvor der står out of memory eller fjel i
programmet (noget med memory og en adresse til en)
pointer.... efter det stopper programmet med at svare og
jeg skal bruge alt+ctrl+del for at lukke det... er der nogen der
kender en anden compiler som IKKE er "command line",
altså noget der ligner dev-cpp meget og kan både kode og
compile i samme program.....
hjælp...

mit andet problem er at jeg arbejder med win 32 Api og jeg syntes let en fil bliver over 700 linier og så er det ikke særlig overskueligt længere...
kan man ikke på en eller anden måde dele finlen op i 2 eller
flere og så bruge #include til at sætte filerne sammen til et program...
eller er der nogen der har et bedere forslag til hvordan man kan gøre en stor program fil mere overskuelig.....


Mvh. Jop...


Syntes klart at Dev-cpp er den bedste gratis compiler så vil ikke anbefale dig andre...

DU kan lave en header fil ved at gemme programmet med .h til sidst fx abe.h, du kan så få alt hvad der står i abe indsat ved at skrive include "abe.h" filen skal bare ligge i samme mappe.




Du skal ALDRIG smide funktionalitet i en .h fil (det er godt nok lang tid siden jeg har kodet c++, men der er vist noget med at compileren ikke compiler det der står i en .h fil, noget helt andet er at det heller ikke er sø 'kønt' rent programmerings teknisk.) så hellere bruge lange filer. Et alternativ kunne være at splitte din funktionalitet ud i forskellige filer i stedet for at holde dem i samme fil. Fx. alt der har med håndtering af filer at gøre, ryger i FileHandler.cpp og alt der har med XML at gøre ryger i XMLHandler.cpp. Altså hold til så vidt muligt til en 3 lags arkitektur, skarpt adskildt mellem dine lag, specielt mellem din GUI og funktionaliteten. Husk på at din GUI skal i princippet kunne erstattes på et hvilket som helst tidspunkt af en anden, derfor jo mere statisk den er jo bedre. Så.... alt funktionalitet splittes ud i deres egne filer....


(¯`·._.·[Brian Hvarregaard]·._.·´¯)



User
Bruger #259 @ 31.03.04 19:16
Jop, du skal lave et projekt og sikre dig at dine .cpp/.c filer er tilføjet til projektet. Du skal smide deklarationer på dine klasser og funktioner i en header fil. Denne header fil inkludere du så i de .cpp filer der kalder en funktion eller klasse, som ligger i en anden .cpp fil.

Det er lidt svært at forklare, hvilke nok fremgår af ovenstående, så jeg vil anbefale dig at kigge i dev-cpp's dokumentation eller finde en artikel. Hvis du stadig ikke kan finde nogen artikel eller noget i dokumentationen, så sig det, så vil jeg prøve at lave en artikel der gennemgår det.

Mvh.
Simon Bang Terkildsen
simon_bt@simit.dk



User
Bruger #259 @ 31.03.04 15:07
hej jeg arbejder med c/c++ i dev-cpp og kan godt lide
programmet fordi man både kan compile og kode i det på
samme tid, men her på det sidste er der begyndt at komme
en besked hvor der står out of memory eller fjel i
programmet (noget med memory og en adresse til en)
pointer.... efter det stopper programmet med at svare og
jeg skal bruge alt+ctrl+del for at lukke det... er der nogen der
kender en anden compiler som IKKE er "command line",
altså noget der ligner dev-cpp meget og kan både kode og
compile i samme program.....
hjælp...

mit andet problem er at jeg arbejder med win 32 Api og jeg syntes let en fil bliver over 700 linier og så er det ikke særlig overskueligt længere...
kan man ikke på en eller anden måde dele finlen op i 2 eller
flere og så bruge #include til at sætte filerne sammen til et program...
eller er der nogen der har et bedere forslag til hvordan man kan gøre en stor program fil mere overskuelig.....


Mvh. Jop...


His du overvejer at arbejde seriøst med c++, synes jeg du skal investere 1000kr i Microsoft Visual C++.
Mvh.
Simon Bang Terkildsen
simon_bt@simit.dk



Du skal ALDRIG smide funktionalitet i en .h fil (det er godt nok lang tid siden jeg har kodet c++, men der er vist noget med at compileren ikke compiler det der står i en .h fil, noget helt andet er at det heller ikke er sø 'kønt' rent programmerings teknisk.) så hellere bruge lange filer. Et alternativ kunne være at splitte din funktionalitet ud i forskellige filer i stedet for at holde dem i samme fil. Fx. alt der har med håndtering af filer at gøre, ryger i FileHandler.cpp og alt der har med XML at gøre ryger i XMLHandler.cpp. Altså hold til så vidt muligt til en 3 lags arkitektur, skarpt adskildt mellem dine lag, specielt mellem din GUI og funktionaliteten. Husk på at din GUI skal i princippet kunne erstattes på et hvilket som helst tidspunkt af en anden, derfor jo mere statisk den er jo bedre. Så.... alt funktionalitet splittes ud i deres egne filer....


(¯`·._.·[Brian Hvarregaard]·._.·´¯)


hvordan sammen sætter jeg så filerne hvis jeg f.eks. har en funktion jeg bruger til at loade en txt fil, så siger du at jeg skal lægge den over i loadfil.cpp og hvordan skal den så sættes sammen med resten af programmet... skal jeg bare bruge
#include "loadfil.cpp" eller er der en anden sustax for det...
og hvordan kalder jeg så funktionen med det normale navn eller hvad...


mvh. jop...





User
Bruger #259 @ 31.03.04 18:58
Du skal ALDRIG smide funktionalitet i en .h fil (det er godt nok lang tid siden jeg har kodet c++, men der er vist noget med at compileren ikke compiler det der står i en .h fil, noget helt andet er at det heller ikke er sø 'kønt' rent programmerings teknisk.) så hellere bruge lange filer. Et alternativ kunne være at splitte din funktionalitet ud i forskellige filer i stedet for at holde dem i samme fil. Fx. alt der har med håndtering af filer at gøre, ryger i FileHandler.cpp og alt der har med XML at gøre ryger i XMLHandler.cpp. Altså hold til så vidt muligt til en 3 lags arkitektur, skarpt adskildt mellem dine lag, specielt mellem din GUI og funktionaliteten. Husk på at din GUI skal i princippet kunne erstattes på et hvilket som helst tidspunkt af en anden, derfor jo mere statisk den er jo bedre. Så.... alt funktionalitet splittes ud i deres egne filer....


(¯`·._.·[Brian Hvarregaard]·._.·´¯)

Du kan godt smide funktionalitet i en header fil. Men du har ret det er ikke kønt!!!


Mvh.
Simon Bang Terkildsen
simon_bt@simit.dk



Du kan putte typer (f.ex. class'er), extern variabel erklæringer, macro'er og funktions prototyper i header filer. Reglen er at alt der skal deles mellem to eller flere c/cpp filer puttes i en headerfil. Der bruges ikke nogen speciel syntax til headerfile, alt det der står i en header-fil kan stå i en c/cpp fil. Et eksempel:

MyHeader.h:

typedef int SomeType;
#define SOME_NUMBER 42
extern SomeType Var;
extern SomeType MyFunc(void);

File1.cpp:

#include <MyHeader.h>

SomeType MyFunc(void)
{
Var = SOME_NUMBER;
return SOME_NUMBER;
}

File2.cpp:
#include <stdio.h>
#include <MyHeader.h>

SomeType Var;

int main(void)
{
SomeType x = MyFunc();
if(x != SOME_NUMBER || Var != SOME_NUMBER)
printf("Something is wrong\\n");
return 0;
}

Hvad angår kompiler: Hvis du vil lære at programmere kan jeg anbefale at downloade Borlands gratis kommandolinie kompiler fra:
http://www.borland.com/products/downloads/download_cbuilder.html

Derpå bruger du 1/2 time på at lære at bruge kompileren og lave en makefile. Og du downloader en af de mange gratis editorer der kan kalde kompileren og bruge makefilen til at bygge dine applikationer.

Selv om jeg har både Borland Builder, Microsoft Visual C++, Dev-Cpp, cygwin, LCC og DJGPP bliver stort set alt lavet på den måde.



Du kan putte typer (f.ex. class'er), extern variabel erklæringer, macro'er og funktions prototyper i header filer. Reglen er at alt der skal deles mellem to eller flere c/cpp filer puttes i en headerfil. Der bruges ikke nogen speciel syntax til headerfile, alt det der står i en header-fil kan stå i en c/cpp fil. Et eksempel:

MyHeader.h:

typedef int SomeType;
#define SOME_NUMBER 42
extern SomeType Var;
extern SomeType MyFunc(void);

File1.cpp:

#include <MyHeader.h>

SomeType MyFunc(void)
{
Var = SOME_NUMBER;
return SOME_NUMBER;
}

File2.cpp:
#include <stdio.h>
#include <MyHeader.h>

SomeType Var;

int main(void)
{
SomeType x = MyFunc();
if(x != SOME_NUMBER || Var != SOME_NUMBER)
printf("Something is wrong\\n");
return 0;
}

Hvad angår kompiler: Hvis du vil lære at programmere kan jeg anbefale at downloade Borlands gratis kommandolinie kompiler fra:
http://www.borland.com/products/downloads/download_cbuilder.html

Derpå bruger du 1/2 time på at lære at bruge kompileren og lave en makefile. Og du downloader en af de mange gratis editorer der kan kalde kompileren og bruge makefilen til at bygge dine applikationer.

Selv om jeg har både Borland Builder, Microsoft Visual C++, Dev-Cpp, cygwin, LCC og DJGPP bliver stort set alt lavet på den måde.


hejza, jeg har bordland c++ builder, men det der med en applikation der kan kalde på den det lyder godt for jeg kan ikke lide at arbejde med promt programmer, fordi det er meget hurtigere at trykke på en knap i dev-cpp hvor kan jeg finde rn applikation der kan benytte bordlan c++ builder...

jeg arbejder med win 32 api og skriver for sjovt videre på en kode fra en toturial jeg har prøvet at lægge en del af filen over iu an anden fil, men når jeg sætter varialbel definationerne i en header fil og includere denne fil i begge filer skriver kompileren at den og den variabel der blevet defineret to gange og det laver error... når jeg fjerner variabel definitionen fra filen og sætter den i en cpp fil skriver den at variabelen først er blevet brugt i den funktion der ligger i den anden fil... og det laver også error
hvordan skal jeg så dele filen?????

ps det er koden fra "The Forgers" toturial om win32 API jeg leger med....

mvh. Jop...



Hvis du har borland builder hvorfor bruger du så ikke builderen? Der var for nyligt en tråd:

http://www.udvikleren.dk/thread.php?techid=1&f=1&t=475

hvor jeg lavede et project til Win32API programmer til Builderen.

Jeg bruger selv min egen hjemmelavede editor, den kan downloades fra min hjemmeside, men der findes også et hav af andre editorer der kan kalde borlands kompiler, prøv at søge lidt på google.

Hvis du har en variabel der skal deles mellem to eller flere cpp filer, skal du lave en extern erklæring i headerfilen, variablen skal så defineres i én af cpp filerne. Se hvordan med "Var" i eksemplet før.



Hvis du har borland builder hvorfor bruger du så ikke builderen? Der var for nyligt en tråd:

http://www.udvikleren.dk/thread.php?techid=1&f=1&t=475

hvor jeg lavede et project til Win32API programmer til Builderen.

Jeg bruger selv min egen hjemmelavede editor, den kan downloades fra min hjemmeside, men der findes også et hav af andre editorer der kan kalde borlands kompiler, prøv at søge lidt på google.

Hvis du har en variabel der skal deles mellem to eller flere cpp filer, skal du lave en extern erklæring i headerfilen, variablen skal så defineres i én af cpp filerne. Se hvordan med "Var" i eksemplet før.


okay det virker bedere nu...
men jeg har stadig et problem min funktion der handler beskeder til child winduet er ikke i samme fil som den funktion der bruger child funktion til at lave en ny child window.... skal de være det for at kunne kalde på hinanden eller kan jeg gøre det anderledes...

mvh. Jop...




<< < 12 > >>
t