Gå til innhold

Forskjell på header og source fil?


Anbefalte innlegg

Hei!

 

Kan noen der ute forklare meg forskjell på header og source fil? :hmm: Hvordan opprette og skrive i header fila? Jeg bruker Dev-c++. Fint hvis det blir brukt dette programmet som eksempel.

Og har hørt snakk om å sette inn win32, hvor?

 

Det har stoppet helt opp for meg nå.. :(

 

Så, noen der ute som kan hjelpe en jente i nød..?

Lenke til kommentar
Videoannonse
Annonse

En header fil brukes for å definere ting før en bruker dem.

 

C++ jobber ved at alle filene "klippes" sammen til et stort dokument før den kompileres. C++ går også kun over koden én gang, som fører til at ting må defineres før de kan brukes.

 

Koden pleier å ligge i .cpp filer (men ikke alltid)

 

en header fil vil for eksempel se slik ut:

#ifndef MIN_HEADER_H // Sjekk om headeren allerede er inkludert
#define MIN_HEADER_H // Hvis ikke, si ifra at vi begynner å definere den

typedef int MittInteger;

void MinFunksjon();

#endif // Sutten på headerfila

Kodefilen (.cpp) inneholder derimot koden for MinFunksjon

 

#include "minheader.h" // Lim inn header fila

void MinFunksjon()
{
 MittInteger i = 100;
 printf("Dette er min funksjon! Taller i er lik %d", i);
}

 

Win32 er Windows API-et (Application Programming Interface)

Denne består hovedsaklig av header filen "Windows.h"

 

#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPWSTR cmd, int cmdshow)
{
 MessageBox(NULL, L"Hello World!", L"Melding", MB_OK);
 return 0;
}

edit: L-ene før teksten betyr at teksten skal være 16-bit unicode (wchar_t*)

Endret av GeirGrusom
Lenke til kommentar
Takk for super forklaring:)

Vil nok ta litt tid før jeg venner meg til å bruke headere..

 

Men det med win32, man må ikke alltid bruke det?

Beklager dumme spørsmål..

 

Nei, det spørs hva du skal gjøre. For brukergrensesnitt kan du bruke det, men det er mer anbefalt å bruke egne biblioteker for det, da det kreves svært mye kode for å gjøre veldig lite hvis du bruker Win32 direkte.

Jeg er ikke helt sikker på hva du mener med Win32 heller, men jeg regner med at det er dette du mener.

 

 

Du har i bunn og grunn to forskjellige typer programmer: console (CUI) og Win32 (GUI)

Lenke til kommentar

Jeg hadde lasta ned et annet IDE enn Bloodshed Dev-C++ da det (desverre) ikke lengre vedlikeholdes og er utdatert. Jeg har hørt gode ting om Code::Blocks, f.eks., men det er mange alternativer.

 

Da jeg starta med C++ synes jeg det var nyttig å lese litt om hvordan kompilatoren og linkeren fungerer: http://www.network-theory.co.uk/docs/gccintro/

 

Anbefaler å ta en titt på den der. Jeg satt også på Windows da jeg begynte med C++, og da lasta jeg ned MSYS og MinGW (mingw.org) for å lettere kunne eksperimentere med kompilering, linking og koding generellt. Det blir lettere å skjønne feilmeldinger - særlig under linking - hvis du vet litt av hvordan koden settes sammen til et program. Det virker som at det er litt unødvendig mye å sette seg inn i når man har et IDE som virker så magisk, men jeg synes vertfall at jeg fikk veldig mye ut av det.

 

Jeg hadde holdt meg langt til helvete unna Win32 hvis jeg var deg -- ihvertfall med det første. Det er et skittent bibliotek, og det finnes nesten alltid bedre og mer portable alternativer. Fysj.

Lenke til kommentar
Jeg hadde holdt meg langt til helvete unna Win32 hvis jeg var deg -- ihvertfall med det første. Det er et skittent bibliotek, og det finnes nesten alltid bedre og mer portable alternativer. Fysj.

Veldig enig. Jeg bruker Win32 stort sett kun når helt enkle ting skal gjøres, for eksempel lage et vindu for å tegne i med OpenGL eller Direct3D.

 

Win32 er rotete og plundrete laget. Heldigvis finnes det mange alternativer.

Lenke til kommentar
Jeg hadde lasta ned et annet IDE enn Bloodshed Dev-C++ da det (desverre) ikke lengre vedlikeholdes og er utdatert. Jeg har hørt gode ting om Code::Blocks, f.eks., men det er mange alternativer.

 

Man kan si mye rart om M$, men Visual Sutdio er muligens det beste IDE'et man kan få tak i, og den kommer i en Express-edition som er gratis. Med mindre man jobber med GUI/grafikk bør man IMHO imidlertid styre unna spesialbibliotekene til M$ og i stedet benytte åpne, plattformuavhengige alternativer.

 

Til trådstarter, forenklet kan man si at en .h-fil beskriver funksjonalitet, mens en .cpp-fil implementerer funksjonalitet som er beskrevet i en(flere) .h-fil(er).

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...