Gå til innhold

Hvordan bruke MSDN på en fornuftig måte?


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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

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

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

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

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 av GeirGrusom
Lenke til kommentar

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
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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...