Oprettet søn. d. 07. februar 2010 kl. 22:30:21

cytox
cytox (5.375 point. Point ude: 210)

MinGW: Compile C program i Win mode (ikke console)

Hej,

Jeg er gået igang med at porte alle mine C# programmer og libs
til C og er hurtigt rendt ind i et lille problem;
med C# compileren er der en 'target' switch
som fungere således:
csc.exe /t:exe foo.cs      //konsol program
csc.exe /t:winexe foo.cs  //windows program
csc.exe /t:library foo.cs  //dll

og jeg ville gerne have fat i den her 'winexe' mode i gcc
så mine programmer ikke kører konsollen.

fx:
jeg har et lille 'void' program som udføre en opgave med det samme uden bruger input og derefter lukker ned, og i en stuation
som den er det meget mere praktisk at programmet udfører opgaven
uden det her konsol vindue der flasher skærmen kort.

så hvordan gør jeg det med MinGW/gcc.exe ?

Tak :)

Skrevet søn. d. 07. februar 2010 kl. 22:47:06| #1

arne_v
arne_v (1.005.658 point)
console app:
  ingenting

win app:
  -mwindows

DLL:
  -shared

Skrevet søn. d. 07. februar 2010 kl. 22:47:52| #2

cytox
cytox (5.375 point)
Beklager,

Jeg tror jeg er træt :P
havde fuldstændig overset switchen: --target-help

Så til dem der måtte have samme problem så var løsningen:
gcc.exe -mwindows -o foo.exe foo.c


Mvh. Cytox

Skrevet søn. d. 07. februar 2010 kl. 22:49:59| #3

cytox
cytox (5.375 point)
Whoops, der var nogen der var hurtigere :)

Du smider bare et svar og så får du dine point arne.

Og tak for hjælpen alligevel :)

Mvh. Cytox

Skrevet søn. d. 07. februar 2010 kl. 22:55:49| #4


Skrevet søn. d. 07. februar 2010 kl. 22:57:31| #5

arne_v
arne_v (1.005.658 point)
Har du styr på hvordan du laver en WinMain?

Skrevet søn. d. 07. februar 2010 kl. 23:04:45| #6

cytox
cytox (5.375 point)
Øøøh nu bliver jeg i tvivl,
dit spørgsmål lyder så simpelt at jeg bliver i tvivl om jeg ved hvad du tænker på når du siger winmain ?

altså hvis vi tænker det samme så:

#include <string.h>

int main(void)
{
    printf("WinMain du tænkte på ?");
    return 0;
}

men hvis det ikke var det, så lytter jeg gerne hvad en (mig bekendt) erfaren C/C++ programmør som dig har at sige :)

Mvh. Cytox

Skrevet søn. d. 07. februar 2010 kl. 23:33:25| #7

arne_v
arne_v (1.005.658 point)
#include <windows.h>
#include <tchar.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, _T("Sådan en WinMain !"), _T("Note"), MB_OK);
    return 0;
}

Skrevet søn. d. 07. februar 2010 kl. 23:37:34| #8


Skrevet søn. d. 07. februar 2010 kl. 23:43:05| #9

cytox
cytox (5.375 point)
Nu bliver det pinligt, (og jeg undskylder med at min C/C++ erfaring måles i timer)

Jeg kan se den fungere som en alternativ main, men hvad er formålet med den ?

Da dette måske ikke er så relevant for dette spørgsmål,
så er du yderst velkommen til at kontakte mig via min mail:
cytox .AT. live _DoT_ D K

Mvh. Cytox

Skrevet søn. d. 07. februar 2010 kl. 23:50:04| #10

arne_v
arne_v (1.005.658 point)
Jeg mener at det særdeles relevant for spørgsmålet.

Jeg er måske ikke den rette til at besvare det.

Men de to link forklarer det.

For en console app bruger du main. For en windows GUI app bruger du WinMain.

Skrevet søn. d. 07. februar 2010 kl. 23:50:53| #11

arne_v
arne_v (1.005.658 point)
Og jeg ved ikke hvad der sker ved at vælge den forkerte. Men det er normalt altid en god ting at gøre tingene "rigtigt".

Skrevet man. d. 08. februar 2010 kl. 00:10:56| #12

cytox
cytox (5.375 point)
Ah nu ser jeg det,

Hmm det bliver jeg helt klart nødt til at ha fulgt op på,
Det er en af mange nye ting som ikke var gældende i C# :)

Men endnu engang tak :)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Regex sætning i C++

Oprettet den 30. januar 2012 kl. 22.55
kjeldsted giver 150 point for svar | Giv et svar »

Bog om strukturering

Oprettet den 25. januar 2012 kl. 07.26
keepy giver 30 point for svar | Giv et svar »

Opsnap keypress globalt.

Oprettet den 24. januar 2012 kl. 16.14
xited giver 200 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger