Arne Skrevet 2. september 2008 Del Skrevet 2. september 2008 Hei! Etterhvert forstår jeg at MSDN er en veldig fin kilde for oss som skriver i Visual Studio. Jeg skriver i 2008 Express edition, og lurer på hvordan man kan ta nytte av det som står på MSDN. Hvis vi tar en funksjon, for eksempel GetKeyState. Dette er bare en funksjon, ser det ut som. Blir denne automatisk inkludert i prosjektet mitt, slik at det bare er å starte å bruke den? Hvor på denne siden står det hvordan jeg kan bruke den? Slik at det bare er til å bruke syntax-forklaringen øverst, og gjøre slik, eller må jeg inkludere winuser.h?: if (GetKeyState(49) == 1) { cout << "Null er presset ned" << endl; } Fint hvis noen forklarer dette. Og så var det klasser, la oss ta SendKeys, for eksempel. Hvis jeg vil bruke metodene Send eller SendWait i den klassen, hvordan gjør jeg det da? Fint om noen tar seg tid til å vise til eksempler, eventuelt linke til guider. Ganske innviklet dette, virker det som. Vennlig hilsen Arne Lenke til kommentar
GeirGrusom Skrevet 2. september 2008 Del Skrevet 2. september 2008 Som regel er det bare å trykke F1 på variabelen din eller funksjonsnavnet. Jeg har MSDN installert på maskinen, for da sparer en litt tid. For å inkludere windows funksjoner trenger du bare inkludere Windows.h Bibliotekene er som regel inkludert som standard. Lenke til kommentar
Arne Skrevet 2. september 2008 Forfatter Del Skrevet 2. september 2008 Hva mener du med det? Hvis jeg da skal bruke Send-funksjonen, gjør jeg det slik: SendKeys example; example.Send(49); Lenke til kommentar
OldMan Skrevet 2. september 2008 Del Skrevet 2. september 2008 (endret) SendKeys er en del av .Net, og kan ikke brukes fra unmanaged c++. Du kan derimot bruke SendMessage for å oppnå det samme, den er en del av std Windows api. Endret 2. september 2008 av OldMan Lenke til kommentar
GeirGrusom Skrevet 3. september 2008 Del Skrevet 3. september 2008 Hvis du derimot bruker managed C++ så blir det slik: SendKeys ^example = gcnew SendKeys(); example->Send(49); Men bare bruk unmanaged C++ managed C++ egner seg kun for å skrive wrappers av andre C++ biblioteker. Lenke til kommentar
Arne Skrevet 3. september 2008 Forfatter Del Skrevet 3. september 2008 Nå blir det litt for mye på en gang. Jeg lurer på hvordan jeg kan klare å bruke alle disse funksjonene. Og slik jeg forstår det, så skriver jeg i unmanaged. Men hvis jeg vil skrive ved hjelp av .net, så må jeg skrive i managed? Noen minus ved dette? Lenke til kommentar
GeirGrusom Skrevet 3. september 2008 Del Skrevet 3. september 2008 Ja, hvis du ikke har noe behov for unmanaged, så unngår en det i C++. Managed C++ er også en helt egen dialekt av C++ som har mange ting som skiller seg fra standard C++ Hold deg til Windows funksjoner hvis du kan det, jeg bare la med .NET måten dersom du hadde akademisk interesse for det. Lenke til kommentar
Arne Skrevet 3. september 2008 Forfatter Del Skrevet 3. september 2008 Hø? Du mener vel at man ungår managed i C++? Eller? Nå blir jeg litt forvirret her. I hvilket bibliotek finner jeg alle de filene jeg etterlyser? Jeg vil bare skrive programmer vha. MSDN, og jeg vil gjerne kunne bruke de funksjonene som blir beskrevet der. Det som man skriver fra starten av, det er unmanaged, ikke sant? Managaed er noe MS har funnet på for å kunne skrive i .net? Jeg vil ikke lære meg noen rare dialekter, men jeg vil skrive alle mulige windows-funksjoner i C++, enklest mulig. :=) Lenke til kommentar
OldMan Skrevet 3. september 2008 Del Skrevet 3. september 2008 Og konsekvensen av at du velger å skrive ett normalt c++ program (som er ett unmanaged program), er at du ikke kan bruke alle de rutinene du finner i msdn som har med .Net å gjøre. Siden Visual Studio støtter både managed(.Net) og unmanaged c++, så viser msdn browseren deg begge api'ene i hjelpen. Du kan velge selv hva du vil msdn browseren skal vise ved å velge i "Filtered by" øverst til venstre. Lenke til kommentar
Arne Skrevet 4. september 2008 Forfatter Del Skrevet 4. september 2008 Okey, men hvordan skal jeg kunne vite om en funksjon/klasse i MSDN virker i unmanaged? Virker ikke noen av klassene/metodene i .net? Og jeg som syntest MSDN begynte å virke kult... Og forresten, SendMessage, er vel da en typisk windows-funksjon. Hvordan kan jeg ved hjelp av struct-deklarasjonen (?) øverst finne ut hvordan jeg kan bruke den? Lenke til kommentar
OldMan Skrevet 4. september 2008 Del Skrevet 4. september 2008 Det står på siden hva funksjoner etc hører til, og bruk som sagt filter. SendMessage funksjonen er ikke en strukt, det er en funksjon som returnerer en LRESULT, noe som er ett alias for en unsigned long hvis jeg ikke husker feil. Typisk bruker man SendMessage noe slikt: ::SendMessage(hWnd, WM_KEYDOWN, VK_DELETE,0 ); En HWND er en Handle to a WiNDow, noe du lærer mye om hvis du begynner å programere med vinduer. Lenke til kommentar
Arne Skrevet 6. september 2008 Forfatter Del Skrevet 6. september 2008 Okey, lets go back to scratch! Si at jeg bruker CS da, for å gjøre det litt enklere. Nå konser vi på SendKeys-klassen. Hvordan kan jeg i praksis bruke denne i C# da? Jeg ser at det øverst på syntax står "public class SendKeys". Hvorfor gjør det det? Hvordan kan jeg i praksis bruke disse klassene? Såvidt jeg vet, må jeg skrive "using System.Windows.Forms;" øverst, men hvordan gjør jeg det etter det? Skal jeg skrive "Sendkeys a = new SendKeys();" eller skal jeg lage en ny klasse som arver alt fra SendKeys? Lenke til kommentar
Arne Skrevet 7. september 2008 Forfatter Del Skrevet 7. september 2008 Jeg ser nå at det går an å bare kalle SendKeys.Send("a"). Men når SendKeys er en klasse, må man ikke da opprette et objekt av klassen før man kan bruke metodene/medlemmene i klassen? Lenke til kommentar
GeirGrusom Skrevet 8. september 2008 Del Skrevet 8. september 2008 (endret) Ok, enten bruker du C# eller C++ I C# skrives det public static class Program { public static int Main() { System.Windows.Forms.SendKeys.Send("Hello world!"); return 0; } } Grunnen til at en ikke skal initialisere SendKeys er fordi dette er en statisk klasse med kun statiske funksjoner. Endret 8. september 2008 av GeirGrusom Lenke til kommentar
Arne Skrevet 8. september 2008 Forfatter Del Skrevet 8. september 2008 Ja, nå forstår jeg. Og jeg har jo også lært meg hva statisk betyr. Tror jeg satser på CS hvis jeg skal programmere spesielt for windows. Virker mye lettere. Allerede etter noen timer har jeg fått til et noelunde greit brukergrensesnitt. Lenke til kommentar
GeirGrusom Skrevet 9. september 2008 Del Skrevet 9. september 2008 Grensesnitt er et helvete i C++ uansett hvor bra bibliotek du bruker. Dersom det ikke finnes noen god grunn til å bruke C++ burde en styre unna det og heller satse på et språk som ligger på et litt høyere nivå. Lenke til kommentar
Arne Skrevet 9. september 2008 Forfatter Del Skrevet 9. september 2008 Hehe, tenkte det kom fra deg...! Jaja, men C# funker da vel det og... Lenke til kommentar
NevroMance Skrevet 9. september 2008 Del Skrevet 9. september 2008 Grensesnitt er et helvete i C++ uansett hvor bra bibliotek du bruker.Dersom det ikke finnes noen god grunn til å bruke C++ burde en styre unna det og heller satse på et språk som ligger på et litt høyere nivå. Hehe. Ikke for å flame posten, men det der var nå litt bastant sagt. F. eks. er QT et bibliotek som gjær grensesnitt i C++ ganske enkelt og greit. Riktignok fortsatt noe kronglete, men vil ikke si det er et helvete. Lenke til kommentar
OldMan Skrevet 9. september 2008 Del Skrevet 9. september 2008 Microsofts MFC er også rimlig bra når man blir kjent med det. Ikke like lett å lage enkle applikasjoner i som forms i .Net, men ett kraftig verktøy når man behersker det. Anbefaler allikevel de fleste å lære seg forms og eventuelt WPF med mindre de har veldig avanserte behov. Lenke til kommentar
GeirGrusom Skrevet 10. september 2008 Del Skrevet 10. september 2008 (endret) I forhold til språk på høyere nivå er fortsatt QT og ihvertfall MFC et helvete. Jeg ser bortifra Gtk# til mono, som også er helt grensesprengende idiotisk. C++ er uegnet til GUI uansett, samme hvor bra GUI bibliotek en bruker. Endret 10. september 2008 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå