Avatar billede nima Nybegynder
11. februar 2004 - 15:16 Der er 34 kommentarer og
1 løsning

Et gratis program til at skrive C-programmer i!

Hej.

Leder efter et gratis program til at skrive C i!
Er nybegynder og bruger XP

Tak :)
Avatar billede arne_v Ekspert
11. februar 2004 - 15:20 #1
En oplagt mulighed var dev-cpp:
  http://www.bloodshed.net/devcpp.html
Avatar billede jakobdo Ekspert
11. februar 2004 - 15:27 #2
Eller som jeg altid anbefaler: Borland C++ Compiler! (gratis, kræver dog registrering - med mindre du henter den via www.filemirrors.com)

Filen hedder: freecommandLinetools.exe
Avatar billede nima Nybegynder
11. februar 2004 - 16:24 #3
Til arne v : Arbejder du selv med devcpp? Jeg har lige hentet den ned. Kan man ikke få vist outputtet i et vindue, istedet for at åbne en dosprompt hvergang?
Avatar billede arne_v Ekspert
11. februar 2004 - 16:31 #4
Jeg har selv dev-cpp installeret, men bruger normalt en editor og mingw
command line compileren mingw som også dev-cpp bruger. Dte var mit indtryk,
at du ville foretrække en IDE fremfor command line compile.

Hvis du laver console programmer, så vil dev-cpp altid lave en DOS box.

Hvis du laver Win32 GUI programmer, så vil dev-cpp åbne et rigtigt
Windows vindue.
Avatar billede nima Nybegynder
11. februar 2004 - 16:45 #5
hvordan får du så dosprompten til ikke at lukke med det samme? For man når slet ikke at se sit program
Avatar billede arne_v Ekspert
11. februar 2004 - 16:58 #6
#include <stdlib.h>

...

int main()
{

  ...

  system("PAUSE");
  return 0;
}
Avatar billede arne_v Ekspert
11. februar 2004 - 16:58 #7
Men det troede jeg faktisk at dev-cpp selv satte ind når du valgte console app.
Avatar billede withli Nybegynder
11. februar 2004 - 17:03 #8
jeg vil selvfølglelig anbefale

GNU-projektets C++ compiler.
http://gcc.gnu.org/

og så er der Borland, som før nævnt her er linket

http://www.borland.com/products/downloads/download_cbuilder.html#


Den benytter jeg derhjemme, hvorimod at jeg på arbejde har den store version af visual studio med the works på.(som jo så ikke er gratis)
Avatar billede nima Nybegynder
11. februar 2004 - 17:07 #9
Det gør den også kan jeg se.. Havde bare valgt fil istedet for et projekt til at starte med.
Avatar billede nima Nybegynder
11. februar 2004 - 17:11 #10
kan du få linje nummering på?
Avatar billede arne_v Ekspert
11. februar 2004 - 17:13 #11
withli>

dev-cpp er en IDE som bruger mingw command line compiler - mingw er en port af GCC
til Win32 med sigte på kompabilitet med Win32 compilere fremfor Unix compilere
(for kompabilitet med Unix compilere vælger man cygwin)

så han bruger faktisk GCC !
Avatar billede arne_v Ekspert
11. februar 2004 - 17:13 #12
nima>

linie-numre ?

det kan jeg ikke huske - jeg kan checke i aften, når jeg kommer hjem til
min dev-cpp
Avatar billede arne_v Ekspert
11. februar 2004 - 20:04 #13
tools
editor options
display
line numbers
Avatar billede arne_v Ekspert
11. februar 2004 - 20:08 #14
I min gamle version skulle jeg iøvrigt lige ind og ændre:

tools
editor options
gutter
background

(sort tekst på sort baggrund er svært at læse)
Avatar billede nima Nybegynder
12. februar 2004 - 00:09 #15
Arne v >>

Når jeg compilere og køre et lille program som jeg har skrevet, bliver der lavet en .exe fil. Når denne fil køres oprettes der en gmon.out fil. Hvad er det for noget?

En anden ting er, at den exe fil der oprettes, hvilke operativ systemer kan den kører på og hvilke kan den ikke? Jeg går udfra det ikke er ligesom java, platform uafhængig!
Avatar billede arne_v Ekspert
12. februar 2004 - 06:02 #16
Ja - dit program kører kun på Windows og kun på x86 CPU.
Avatar billede arne_v Ekspert
12. februar 2004 - 06:04 #17
Jeg mener at gmon.out er profiling.

tools
compiler options
code profileing
generate ...
Avatar billede nima Nybegynder
12. februar 2004 - 11:43 #18
arne >> Ved du egentlig hvordan man kan få adgang til at køre programmer udefra? Dvs. du har dit lille c program, og når det kører kalder den en funktion som så kan åbne lommeregneren i windows, eller browseren. Bare et eller andet..
Avatar billede arne_v Ekspert
12. februar 2004 - 11:58 #19
Det er der flere forskellige måder at gøre på.

En simpel er:

system("etellerandet.exe");
Avatar billede nima Nybegynder
12. februar 2004 - 14:33 #20
hvor er du sej :)
Avatar billede nima Nybegynder
12. februar 2004 - 14:39 #21
Men der er en ting jeg har prøvet som jeg har læst du har hjulpet andre lidt med.
http://www.eksperten.dk/spm/438673

Men jeg må indrømme, har ikke rigtig fået det til at virke!? Skal man gøre meget andet end copy > paste ind i dev-c++ og kompilere det?
Avatar billede arne_v Ekspert
12. februar 2004 - 16:40 #22
Det burde kunne copy pastes lige ind i dev-cpp !

(men du skal jo nok rette det der skal hentes og den slags)
Avatar billede nima Nybegynder
18. februar 2004 - 21:20 #23
Jeg kan ikke kompliere det! Får ret mange fejl :(
Avatar billede arne_v Ekspert
18. februar 2004 - 21:26 #24
Hvilke fejl ?
Avatar billede nima Nybegynder
21. februar 2004 - 19:06 #25
Nu har jeg lige reinstalleret min computer.. Skal lige køre programmet ind igen.. Hold on!
Avatar billede nima Nybegynder
02. marts 2004 - 23:51 #26
Så.. Nu er jeg tilbage. Du må undskylde det tog lidt tid.. jeg får følgende fejl, men ved ikke om det er bare er mig..
(er ved at lære at programmere en 8051 microcontroller i C, så jeg er ikke helt hardcore til sproget endnu!)

jeg får følgende compiler fejl :


Kompiler: Default compiler
Eksekverer  g++.exe...
g++.exe "C:\Documents and Settings\Nima\Skrivebord\Ny mappe (2)\test.cpp" -o "C:\Documents and Settings\Nima\Skrivebord\Ny mappe (2)\test.exe"    -I"C:\Dev-Cpp\include\c++"  -I"C:\Dev-Cpp\include\c++\mingw32"  -I"C:\Dev-Cpp\include\c++\backward"  -I"C:\Dev-Cpp\include"  -L"C:\Dev-Cpp\lib"
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0xe1):test.cpp: undefined reference to `socket@12'
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0x151):test.cpp: undefined reference to `bind@12'
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0x196):test.cpp: undefined reference to `gethostbyname@4'
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0x239):test.cpp: undefined reference to `connect@12'
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0x29e):test.cpp: undefined reference to `send@16'
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0x2e8):test.cpp: undefined reference to `recv@16'
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0x34a):test.cpp: undefined reference to `recv@16'
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0x387):test.cpp: undefined reference to `closesocket@4'
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0x3f3):test.cpp: undefined reference to `WSAStartup@8'
C:\DOCUME~1\Nima\LOKALE~1\Temp/ccOqaaaa.o(.text+0x414):test.cpp: undefined reference to `WSACleanup@0'

Eksekvering afbrudt
Avatar billede arne_v Ekspert
03. marts 2004 - 08:34 #27
Du manler bare link option -lws2_32 !
Avatar billede nima Nybegynder
03. marts 2004 - 13:05 #28
Måske er det bare mig, men kan du lige forklare lidt mere? hehe.. (pinligt) Link option?
Avatar billede arne_v Ekspert
03. marts 2004 - 13:20 #29
Jeg sidder ikke ved dev-cpp lige nu, men du skal vælge en menu og et menu punkt
og så vistnok en tab for at kunne angive link options.
Avatar billede nima Nybegynder
03. marts 2004 - 17:56 #30
Så nu kan jeg compile.. Men burde man bare kunne ændre domaine navnet samt hvilket directory billedet ligger i, også er man kørende? For jeg har lagt et billede her,

www.skibstegnestuen.dk/billeder/1.jpg

men jeg kan ikke få den hentet ned. I mappen bliver der oprettet en billede fil med samme navn, men den indeholder ikke noget. Sådan står der i mit program :

int main(int argc,char *argv[])
{
  WSADATA WSAData;
  WSAStartup(0x0101,&WSAData);
  get("www.skibstegnestuen.dk",80,"/billeder/1.jpg","1.jpg");
  WSACleanup();
  return 0;
}
Avatar billede nima Nybegynder
03. marts 2004 - 17:57 #31
UPS! Nu har jeg fundet ud af det.. Der skal stå http:// foran www.
Avatar billede nima Nybegynder
03. marts 2004 - 18:16 #32
Men arne.. det eneste der er, at når exe filen kører, bliver der oprettet en jpg fil, men dos-vinduet forbliver åbent, og så snart man lukker dos-vinduet, bliver den oprettede fil lavet om til det "rigtige" billede.
Dvs. først når man lukker vinudet manuelt, henter den billedet! Hvorfor? Kan det ændres til at den gør det hele automatisk?

På forhånd tak.
Avatar billede arne_v Ekspert
03. marts 2004 - 19:14 #33
Det er fordi at det er en console applikation.

Det lyder som om du vil have den lavet om til et ægte Windows program.

Det kan du også.

Men du skal sætte dig ind i en lille smule først så.

Du kan starte her:
  http://www.winprog.org/tutorial/
Avatar billede nima Nybegynder
03. marts 2004 - 19:34 #34
Tusind tak! :) Det var lige det jeg havde brug for! En sidste ting er, når man nu har lavet sit vindue, hvordan får man dos-prompt-vinduet i baggrunden til at forsvinde så det ligner en rigtig windows app?

f.eks. et alm. vindue

#include <windows.h>

const char g_szClassName[] = "myWindowClass";

// Step 4: the Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
        case WM_CLOSE:
            DestroyWindow(hwnd);
        break;
        case WM_DESTROY:
            PostQuitMessage(0);
        break;
        default:
            return DefWindowProc(hwnd, msg, wParam, lParam);
    }
    return 0;
}

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

    //Step 1: Registering the Window Class
    wc.cbSize        = sizeof(WNDCLASSEX);
    wc.style        = 0;
    wc.lpfnWndProc  = WndProc;
    wc.cbClsExtra    = 0;
    wc.cbWndExtra    = 0;
    wc.hInstance    = hInstance;
    wc.hIcon        = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor      = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = g_szClassName;
    wc.hIconSm      = LoadIcon(NULL, IDI_APPLICATION);

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

    // Step 2: Creating the Window
    hwnd = CreateWindowEx(
        WS_EX_CLIENTEDGE,
        g_szClassName,
        "The title of my window",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
        NULL, NULL, hInstance, NULL);

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

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

    // Step 3: The Message Loop
    while(GetMessage(&Msg, NULL, 0, 0) > 0)
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
    return Msg.wParam;
}
Avatar billede nima Nybegynder
17. marts 2004 - 00:48 #35
Nå.. Nu tror jeg at jeg har trukket den længe nok. Tusind tak for hjælpen Arne, du har virkelig hjulpet meget!
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