Gå til innhold

aC

Medlemmer
  • Innlegg

    228
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av aC

  1. De fleste av disse verktøyene ble laget av Mark Russinovich fra Winternals (nå Microsoft Sysinternals) i tiden før Winternals ble kjøpt opp av Microsoft. Før de ble kjøpt opp ble verktøyene gitt ut med åpen kode. Hvis man leter litt finner man de gamle verktøyene med kode. Mye av verktøyene var i sin tid helt episke og gjorde ting ingen før hadde sett, mye grunnet at Winternals benyttet deler av win32 api'et som ikke var dokumetert av Microsoft. Noen mener også at dette hjalp til å gjøre Windows-platformen langt mer usikker ettersom verktøyene ble gitt ut med åpen kode.

    • Liker 5
  2. Hei..

     

    Skal lage et program som skal lese av verdien jeg trykker på tastaturet. Hvis man ikke trykker noe etter antall sekunder skal programme skrive ut en at`m kode til gms-modulen.

    Har klart å lese ut veriden på tastaturet, men den går ikke videre etter 2 sekunder. hvorfor?

     

    Takk for svar :)

     

    Mvh Lars

     

    Sånn f.eks

     

    import msvcrt
    import time
    import os
    #import serial
    
    tid_i_sekunder = 2
    #ser = serial.Serial(2)
    input_c = ""
    s_time = time.time()
    
    while True:
     if msvcrt.kbhit():
       input_c = msvcrt.getch()
       print "you pressed",input_c
       break
     if time.time()-s_time > tid_i_sekunder:
       break;
    
    
    if input_c == '1':
     pass
     #input('avslutt:')
     #exit
    
    #ser.write("at+cmss=1,+47xxxxxxxx,145\n\r\n\r")
    #os.startfile("alarm.mp3")
    #print 'Send mld!!! HJEEEELP'
    #input ('press')
    

  3. Jeg vil åpne med å si Topguy: Hvis du ikke kjenner produktet så ikke uttal deg!

     

    Allegro er et veldig fint rammeverk for å starte med spillutvikling i 2d. Særlig hvis prefferert språk er C eller C++. Allegro er primært skrevet skrevet i C men det betyr jo ikke at du ikke kan bruke C++ extensions.

     

    Først en aldri så liten Makefile for spillet ditt. Antar at du har kalt

    filen med mainmetoden din "main.cpp" eller "main.c"

     

    SOURCES = main.cpp
    CFLAGS = $(shell allegro-config --cflags)
    CPPFLAGS = -Iinclude -D_GNU_SOURCE
    LDFLAGS = $(shell allegro-config --libs)
    
    gameout: $(SOURCES)
       $(CXX) $(SOURCES) $(OUTPUT_OPTION) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
    
    clean:
       rm gameout
    

     

    Den Makefilen (legg merke til stor M) gjør at hvis du skriver "make" i katalogen så kompilerer du spillet/programmet ditt. (Kopier innholet i kodesekmentet til en fil kalt "Makefile", den må ligge i samme katalog som .cpp og .h filene dine ligger)

     

    Så til det første spørsmålet: Hvorfor blir ikke resolution satt riktig tilbake når ting går galt. Jo det er pga du ba X om å endre resolution så hvordan ungår man dette?

    Du må gjøre et kall til

    allegro_exit();

    før du returnerer (return 0; (evt kan man bruke return EXIT_SUCCESS ved å inkludere stdlib.h, men det trenger du ikke tenke på enda)

     

    http://www.allegro.cc/manual/4/api/using-allegro/allegro_exit

  4. Som jeg nevnte for godt og vel et år siden, legg det inn i et array. Det krever litt mer arbeid fordi du må gjøre om hele formelen til array, men da kan du i teorien finne så mange siffer du vil.

     

    Du kan da i teorien holde på så mange siffer det er plass til i arrayen, med mindre du implementerer en form for arraylist som tillater økende størrelse på array

    </pedant>

     

    EDIT: fjernet dobbel-quote

  5. For å starte å skrive noen enkle programmer trenger du nok ikke mye matte, for å gjøre noe spennende må du kunne telle til 10 og skjønne begreper som +-*/. Datasikkerhet trenger man ikke spesielt mye matte der heller. Kommer da litt ann hva slags datasikkerhet du tenker på, men uansett ikke spesielt mye matte. Spillprogrammering trenger man matte, masse matte. Særlig innenfor feltet linær algebra (matriser, vektorer).

     

    EDIT: (dette under)

    Det er såklart forskjell på spillprogrammering, 3d tranfomasjoner bruker man ofte vektor matematikk, mens i 2d er ting endel enklere og det holder lenge med litt addisjon, subtraksjon.

  6. Når du kompilerer prosjektet ditt kompilerer du ikke en fil. Du kompilerer hele prosjektet ditt. (Alle cpp og h filene du har lagt til)

     

    Hmmm, jasså.

    Så hva skjer hvis jeg skriver

    cl main.cpp

    i windows command prompt.

    Når man bruker Visual Studio (ide) så lager den et "prosjekt/løsning" av filene dine, men man kompilerer fortsatt filer og ikke prosjekter.

     

     

    Ett prosjekt kan bestå av mange filer. Når du trykker "compile" starter den å gjøre om en og en fil til kode datamaskinen kan lese. Når du starter programmet vil den starte funksjonen som heter int main(). Du kan bare ha en int main() funksjon i ett prosjekt.

     

    int main(int argc, char** argv) (også kalt entry point) kan det ikke finnes fler av, men hva med

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
       LPSTR lpCmdLine, int nCmdShow)

     

    Og hva med andre språk som har støtte for "multiple entry points"?

  7. Hepp!

     

    Jobber med ett program som sender tekst fra en stasjon til en annen (ala e-mail). Sist jeg jobbet med noe lignende skrev jeg programmet i C# hvor man må gjøre om til en byte-array før man sender. I python sender jeg bare tekst frem og tilbake, men er dette en dum måte å gjøre det på? Er det noen fordeler ved å først gjøre om til bytes før jeg sender teksten, eller er det likesågreit å bare sende som en vanlig streng?

     

    "For Python < 3 'strings' are in fact binary strings and 'unicode objects' are the right text objects (as they can contain any Unicode characters).

     

    In Python 3 unicode strings are the 'regular strings' (str) and byte strings are separate objects. "

     

     

    [sNIP]

    Tror ikke du skal trenge å bruke egne byte-arrays til dette. (en streng _er_ jo faktisk en byte array.)

     

    Nja, det kommer veldig ann på. Mener du i python eller generelt. Strenger (slik det er implementert i C) er bytearrayer, strenger slik de er implementert i java er objekter og er ikke implementert som arrays (aka char's etter hverandre i et gitt minneområdet).

     

    Men som det ble avklart tidligere så er strenger måten å sende bytes på i python 2.x, mens i python 3.x vil du måtte sende de som

    socket.send(b"foo")
    

    hvor da bare socket.send("foo")

    ville vært unicode og blitt representert med 2 bytes.

  8. aC: jeg tror ikke skjermkortet ditt har OpenGL 3.2, og jeg har glemt å legge inn exception handler for det i GlorgIDE. Linjen som du stoppet på er nemlig:

    throw new NotSupportedException("OpenGL 3 is not supported.");

     

    Takk for tilbakemelding :)

     

    Nope, det er vist bare opengl 2.0.

     

    Men det virket ikke som GlorgIDE handler exception gracefully, programmet segdfaultet.

     

    Også var det dette med å lese nøye og få med seg det du skrev osv

  9. Win 7 0x64

    .NET 4.0

    ATI Radeon Xpress 1150 Series

     

    callstack
    
    >	Glorg2.dll!Glorg2.Graphics.OpenGL.WglContext.CreateContext(System.IntPtr wnd = 5440372, System.IntPtr draw = 0, Glorg2.Graphics.OpenGL.OpenGLContext share = null) Line 506	C#
    
    sourcefile info
    
    Locating source for 'D:\Dev\Glorg2\Glorg2\Glorg2\Graphics\OpenGL\WglContext.cs'. Checksum: MD5 {a6 13 96 a1 cd 7f 2b 9e 49 a7 d6 c7 5b b3 3d 91}
    The file 'D:\Dev\Glorg2\Glorg2\Glorg2\Graphics\OpenGL\WglContext.cs' does not exist.
    Looking in script documents for 'D:\Dev\Glorg2\Glorg2\Glorg2\Graphics\OpenGL\WglContext.cs'...
    Looking in the projects for 'D:\Dev\Glorg2\Glorg2\Glorg2\Graphics\OpenGL\WglContext.cs'.
    The file was not found in a project.
    Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src\'...
    Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\'...
    Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\atl\'...
    Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\'...
    The debugger will ask the user to find the file: D:\Dev\Glorg2\Glorg2\Glorg2\Graphics\OpenGL\WglContext.cs.
    The user pressed Cancel in the Find Source dialog. The debug source files settings for the active solution have been modified so that the debugger will not ask the user to find the file: D:\Dev\Glorg2\Glorg2\Glorg2\Graphics\OpenGL\WglContext.cs.
    The debugger could not locate the source file 'D:\Dev\Glorg2\Glorg2\Glorg2\Graphics\OpenGL\WglContext.cs'.
    

×
×
  • Opprett ny...