Avatar billede udvikler Nybegynder
31. oktober 2005 - 17:19 Der er 23 kommentarer og
2 løsninger

Hvordan ville man skrive dette i C++

Hejsa, jeg har læst en del tutorials, og har snart tænkt mig at købe en bog som kan lære mig at blive rigtig god til C++. Jeg har dog et stort problem, jeg kender ingen tutorials som KUN forklare hvordan C++ er bygget op og hvad man kan med det. Fx kan du kigge på html.dk's 3 første tutorials angående html. Der skriver de KUN om hvordan og hvorledes html er bygget op:
Direkte link -> http://www.html.dk/tutorials/html/default.asp

Mens jeg i C++ kun finder tutorials om hvordan man laver variabler og if og else sætninger, ja tak. Det kan jeg finde ud af, men hvad med det mest væsentlige ?

Fx ved jeg ikke engang hvordan man laver et link i C++
Det er i html svare til:
<a href="www.google.com">Link til google's hjemmeside</a>
Eller har jeg bare misforstået det helt. Er C++ kun til at lave nogle ting også laver man de andre ting som links og andre ting i fx html ?

Forklar venligst
Avatar billede arne_v Ekspert
31. oktober 2005 - 17:23 #1
HTML er et side beskrivelses sprog - noget som bliver fortolket af en
browser - link giver meget mening i den sammehæng

C++ er et programmerings sprog d.v.s. noget som (efter oversættelse) bliver
fortolket af en CPU - link giver ikke så meget mening i den sammenhæng
Avatar billede arne_v Ekspert
31. oktober 2005 - 17:24 #2
og C++ bruges meget sjældent til web

omend man teknisk set godt kan skrive CGI scripts i C++
Avatar billede Slater Ekspert
31. oktober 2005 - 17:24 #3
Ja, jeg tror du har misforstået noget. C++ kan overhovedet ikke bruges til at lave hjemmesider i, bortset fra som server-side program bag CGI, men det er noget helt andet.

C++ er et programmeringssprog, HTML er et formaterings-/layoutsprog.
C++ bruges til at lave .exe-filer, enten til konsol eller med en brugerflade - men du skal selv skrive det hele. Der er ingen kære mor, der renderer en pæn brugerflade for dig, når du lige skriver et link her og der.
Avatar billede Slater Ekspert
31. oktober 2005 - 17:25 #4
.. og ja, der var jeg for sent på den.. men same point ;)
Avatar billede udvikler Nybegynder
31. oktober 2005 - 17:26 #5
Jamen, hvordan er alle linksene så skrevet i fx internet explorer eller firefox, det er da lavet i C++ ikk' ?
Fx klik på oversigt, der hvor man kan finde en oversigt over alle besøgte sider. Der er lavet links til alle siderne, men i hvad og hvordan ?
Avatar billede udvikler Nybegynder
31. oktober 2005 - 17:28 #6
Til viperine ->

Ja, ved selvfølgelig godt at html og C++ umuligt kan sammenlignes da det slet ikke er det samme, men spørger bare hvordan man kan lave alle de der ting som ikke bliver forklaret i tutorialsene ?
Avatar billede Slater Ekspert
31. oktober 2005 - 17:34 #7
Ah.. ja, det er en Windows brugerflade. Den er der mange måder at lave på i C++. Den nemmeste er nok med MFC, hvis du bruger Microsoft Visual Studio, men jeg bryder mig ikke selv om den, og den er lidt klodset. Mange store firmaer bruger dem dog, så der er intet snyd eller amatøragtigt over det.

En anden metode er at tale direkte til operativsystemets API - Application Programming Interface. I tilfælde af Windows, foregår det med indbyggede funktioner, som CreateWindowEx() til at lave stort set alle vinduer og user controls...

Men det er temmelig svært at begynde på, og vi kan umuligt forklare dig det i dybden her.
Avatar billede Slater Ekspert
31. oktober 2005 - 17:36 #8
Følgende er et MEGET simpelt eksempel på, hvordan man kan lave et almindeligt form-vindue i C++ Windows API:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  LPSTR lpCmdLine, int nCmdShow) {
  WNDCLASSEX WndClass;
  HWND hwnd;
  MSG Msg;

  g_hInst = hInstance;

  WndClass.cbSize        = sizeof(WNDCLASSEX);
  WndClass.style        = 0;
  WndClass.lpfnWndProc  = WndProc;
  WndClass.cbClsExtra    = 0;
  WndClass.cbWndExtra    = 0;
  WndClass.hInstance    = g_hInst;
  WndClass.hIcon        = LoadIcon(NULL, IDI_APPLICATION);
  WndClass.hCursor      = LoadCursor(NULL, IDC_ARROW);
  WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
  WndClass.lpszMenuName  = "MAINMENU";
  WndClass.lpszClassName = g_szClassName;
  WndClass.hIconSm      = LoadIcon(NULL, IDI_APPLICATION);

  if(!RegisterClassEx(&WndClass))
  {
      MessageBox(0, "Window Registration Failed!", "Error!",
        MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
      return 0;
  }

  hwnd = CreateWindowEx(
      WS_EX_CLIENTEDGE,
      g_szClassName,
      "Test",
      WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, CW_USEDEFAULT, 320, 240,
      NULL, NULL, g_hInst, NULL);

  if(hwnd == NULL)
  {
      MessageBox(0, "Window Creation Failed!", "Error!",
        MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
      return 0;
  }

  ShowWindow(hwnd, nCmdShow);
  UpdateWindow(hwnd);

  while(GetMessage(&Msg, NULL, 0, 0))
  {
      TranslateMessage(&Msg);
      DispatchMessage(&Msg);
  }
  return Msg.wParam;
}
Avatar billede udvikler Nybegynder
31. oktober 2005 - 17:37 #9
Okay, troede det var lavet i html. Det er det jeg mener, der er ingen tutorials som forklare sådanne ting. Det er da skidt.
Men nu fandt jeg endelig en tutorial som forklare en af de ting som interessere mig mest. Menuer! http://www.winprog.org/tutorial/menus.html
Ville bare høre om det der er C++ ligner mere noget som ligner meget men som ikke er.

Det jeg bare gerne vil er at lære noget om at lave programmer. Men har sku læst næsten alle de anbefalede tutorials på nettet, men har stadig mange ting jeg kunne tænke mig at vide, ved bare ikke hvor, ved du ?
Avatar billede udvikler Nybegynder
31. oktober 2005 - 17:38 #10
Jamen tak for koden, den vil jeg kigge nærmere på :)
Avatar billede arne_v Ekspert
31. oktober 2005 - 18:06 #11
winprog er C/C++

det der måske forvirrer lidt er brugen af en .rc fil
Avatar billede udvikler Nybegynder
31. oktober 2005 - 18:06 #12
Hvaa, var det C++ som jeg linkede til der, eller er det et helt andet sprog ?

Og læg et svar, tror ikke der vil ske meget mere i denne tråd :(
Avatar billede udvikler Nybegynder
31. oktober 2005 - 18:07 #13
Typisk, så skriver du lige når jeg skriver ;)

Jamen det var da godt at høre, men skal jeg så bare gemme som navn.rc og kompile ?
Avatar billede arne_v Ekspert
31. oktober 2005 - 18:10 #14
.c/.cpp skal kompiles med C/C++ compileren

.rc skal gennem ressource compileren
Avatar billede udvikler Nybegynder
31. oktober 2005 - 18:14 #15
Okay tak, men kan den der menu ikke laves i et almindeligt .cpp dokument ?
Avatar billede arne_v Ekspert
31. oktober 2005 - 18:22 #16
det kan den vel, men det gør man ikke, så godt som alle Windows C/C++ compilere
kommer med en ressource compiler for det samme
Avatar billede udvikler Nybegynder
31. oktober 2005 - 18:28 #17
Jeg takker, kan du ikke være rar og lægge et svar, så giver jeg også lige viperine lidt tid til at lægge et svar, hvis ikke det kommer i løbet af nogle få dage er alle pointene dine :)

Men jeg har dog et enkelt spørgsmål til, før sagde du at den kode jeg linkede til skal igennem resource compileren, hvor finder jeg den henne ?
bruger C++ dev.
Avatar billede arne_v Ekspert
31. oktober 2005 - 18:30 #18
svar
Avatar billede arne_v Ekspert
31. oktober 2005 - 18:33 #19
dev-cpp kommer med en windres utility

men jeg må indrømme at jeg ikke lige ved hvordan man bruger den inde fra IDE'en
Avatar billede udvikler Nybegynder
31. oktober 2005 - 18:35 #20
Jamen helt iorden. Takker for hjælpen!

- Når du igen kigger på denne tråd kan du så ikke lige lægge et svar viperine ? :)
Avatar billede arne_v Ekspert
31. oktober 2005 - 18:39 #21
jeg prøvede lige at starte dev-cpp

file
new
ressource file

det lyder som lidt af det rigtige !
Avatar billede udvikler Nybegynder
31. oktober 2005 - 18:46 #22
Ja, det ved jeg, men den gider ikke compile ?
- det er det jeg har problemer med ? at få det til at blive et program
Avatar billede arne_v Ekspert
31. oktober 2005 - 18:50 #23
når du tilføjer den til dit projekt så tror jeg at den bliver automatisk compilet
med

og husk en .rc fil gør ikke noget - den definerer noget som kan bruges af C++ koden
Avatar billede Slater Ekspert
31. oktober 2005 - 23:30 #24
Joeh, det kan jeg da godt ;)
Avatar billede Slater Ekspert
31. oktober 2005 - 23:31 #25
Erh.. selvom det godt nok ikke gik særlig godt. Man skal også trykke på radioknappen for "svar", Kris :/
Er træthed eller fuldskab den bedste undskyldning?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester