Avatar billede bjarke Nybegynder
09. september 1999 - 09:20 Der er 28 kommentarer og
1 løsning

Mus i C/C++

Findes der mulighed for at bruge mus i C/C++, hvis ikke det er Builder eller Turbo Vision? Evt. class librarys/headerfiler?
Avatar billede snowball Novice
09. september 1999 - 11:58 #1
Ja, man kan godt bruge mus i C/C++, men lige helt præcist hvordan man gør ved jeg desværre ikke. Men jeg ved det kan la' sig gøre fordi en af dem jeg arbejder sammen med har lavet et program hvor han benyttede musen (han er desværre på skole i nu, men hvis du er heldig så ser han det her på Eksperten)

Snowball
Avatar billede bjarke Nybegynder
09. september 1999 - 15:29 #2
Kunne du evt. skaffe et eksemplar af det program med tilhørende kode?

Bjarke
Avatar billede snowball Novice
09. september 1999 - 16:53 #3
Jeg vil ikke love det, men jeg skal gøre et forsøg.

Snowball
Avatar billede skovlunde Nybegynder
09. september 1999 - 16:59 #4
I DOS eller Win32?
Avatar billede bjarke Nybegynder
09. september 1999 - 19:29 #5
snowball >> det lyder godt - jeg venter spændt

skovlunde >> i DOS (både i tekst- og grafikmode, hvis der er nogen forskel?)
Avatar billede tknudsen Nybegynder
10. september 1999 - 12:00 #6
software interrupt 33h er musen. Med dette interrupt kan du lave en styring af din mus. Husk lige at loade en driver til din mus inden du kører dit prg.

I C bruger du software interrupts (bla)via REGS unionen - feks:

union REGS regs;

regs.x.ah = 0x00;
int86(0x33,&regs,&regs);

hermed kalder du interrupt 33h med funktion 0 (initialize - tror jeg nok)

...
Avatar billede bjarke Nybegynder
11. september 1999 - 12:20 #7
Okay, kan jeg ikke få det uddybet lidt - jeg har aldrig arbejdet med interrupts;-) Måske et lille demoprogram???
Avatar billede bjarke Nybegynder
12. september 1999 - 09:06 #8
Hvor får jeg sådan en muse-driver fra? Når jeg skal loade den først - er det så via programmet eller fra dos-prompten inden jeg kører programmet?
Avatar billede snowball Novice
12. september 1999 - 12:48 #9
Der var han jo :-))

Snowball
Avatar billede bjarke Nybegynder
12. september 1999 - 19:35 #10
snowball >> ???
Avatar billede skovlunde Nybegynder
12. september 1999 - 20:33 #11
Du skal loade driveren fra din DOS prompt...Men du kan også loade den fra dit eget program...Lidt svært, men muligt...
Avatar billede snowball Novice
12. september 1999 - 21:52 #12
bjarke: tknudsen er ham jeg arbejder sammen med som har lavet et program i C der bruger mus !!!

Snowball
Avatar billede bjarke Nybegynder
13. september 1999 - 09:28 #13
tknudsen >> Var det så ikke noget at forklare en lille smule om REGS og lave et lille demoprogram (med lidt kommentarer)?

skovlunde >> Er det ikke bare
  system("<KOMMANDO>"); ?
Avatar billede tknudsen Nybegynder
13. september 1999 - 09:45 #14
jeg sender lige et eksemple prg når jeg kommer hjem idag - hvor finder jeg din mail adr ?

mouse driveren er 'bare' en-eller-anden standard dos driver som passer til din mus (de fleste drivere er kompatible med de fleste mus). Denne driver loades fra dos promten.
Avatar billede bjarke Nybegynder
13. september 1999 - 09:51 #15
Det lyder godt. Men lige en ting - jeg aner intet om drivere. Loader man en driver ligesom man starter et program i DOS og hvordan finder jeg ud af hvad den hedder?

Ved at indsætte et passende navn, så kan du se oplysninger om alle "eksperterne":
    http://www.eksperten.dk/bruger.asp?navn=bjarke

Men her er den også:
    d971230@student.dtu.dk

/Bjarke
Avatar billede tknudsen Nybegynder
13. september 1999 - 11:20 #16
drivere (DOS) :

i dos (også i win 9x dos prompt) findes der en række device drivere. Nogle bliver loaded idet du indlæser systemet (feks NUL,CON,COM1,COM2,LPT1... osv.). Prøv feks at skrive:
copy c:\autoexec.bat lpt1
i en dos prompt. Dette medfører at du kopierer autoexec.bat ud på device'et lpt1 - printeren(er det ikke fantastisk). Grunden til at dette sker skal findes i software interrupt verdenen. LPT1 device'et optager en specielt interrupt i din pc'er - software interrupt 0Fh. LPT1 device driveren bruger altså int 0Fh til at overføre data fra - feks - dos prompten til printeren på lpt1. Man kunne så forstille sig at man i et c prg lavede et-eller-andet som kommunikerede med int 15 (dette prg skal overholde visse regler). Dette program kunne så feks bruges istedet for copy.

På samme måde kan du lave et prg som benytter en mouse device driver. Denne driver bruger software interrupt 33h. Så istedet for int 0Fh skal du bruge int 33h.

Jeg ved ikke om du har noget dokumentation på div. software interrupts, me jeg håber at int 33h fremgår rimelig tydelig i det eksempel jeg sender til dig senere.

device drivere kan loades på forskellige måder. Under config.sys, autoexec.bat og ved en dos prompt - feks:

config.sys (sjældent set)
device=c:\mouse.sys
autoexec.bat
mouse.com
dos prompt:
c:>mouse.com

forstår du noget af dette ?
Avatar billede bjarke Nybegynder
13. september 1999 - 11:36 #17
Mmtjo.... - delvist! Måske kunne en kort lille populær-beskrivelse af interrupt-kommunikationen (det med device-driveren der bruger 0Fh til at overføre data) hjælpe:-)
Avatar billede tknudsen Nybegynder
13. september 1999 - 12:11 #18
for at lave et prg hvori du kan bruge mus er det ikke relevant hvorvidt du kender til device driver termonologien. Du skal bare sørge for at loade en mouse drive inden du kører dit eget program. Det ensete der er vigtigt er kommunikationen med den loadede driver (og det dertilhørende sotfware interrupt). De forskellige drivere kan modtage forskellige 'parametre' - ligesom en funktion i c. Desværre kan jeg ikke lige finde noget dokumentation på 'nettet' som beskriver disse funktioner, men som sagt tror jeg du vil kunne få mening ud af prg'et jeg sender dig - vær hilset snowball :)

Det bliver ved 1500-1600 - tiden...
Avatar billede bjarke Nybegynder
13. september 1999 - 12:22 #19
Ok, fint og tak (jeg kommer ikke hjem før klokken 16, så det er helt fint).
Avatar billede snowball Novice
13. september 1999 - 12:26 #20
he he...Daw daw :-))

Er det den der hedder mouse1 du vil sende til ham ??? For så kan jeg da lige sende den afsted hvis han står og mangler den.

Snowball
Avatar billede tknudsen Nybegynder
13. september 1999 - 12:30 #21
snowball: jeg har ingen anelse om hvad det hedder, men det er lavet som project - dvs. der er mere end een fil - så det er ikke tilrådeligt at sende mouse1.cpp !

iøvrigt sladrer jeg til peter om at du roder i minie 'ting' :) Hvad ville du sige hvis jeg 'fandt' dine "fantastiske ferieminder" på lan'en ? (hehehe)
Avatar billede bjarke Nybegynder
13. september 1999 - 12:33 #22
Hov det lyder interessant:-) - skal vi andre ikke delagtiggøres????
Avatar billede tknudsen Nybegynder
13. september 1999 - 13:48 #23
det drejer sig 'bare' om snowball's ferie billeder som han har scannet ind på firmaets scanner - han glemte bare at slette dem inden de blev vold kopieret ud på resten af lan'et :)
Nice legs by the way §;-)
Avatar billede snowball Novice
13. september 1999 - 13:48 #24
Hhhmmm....SORRY !!!

Snowball
Avatar billede snowball Novice
13. september 1999 - 13:51 #25
SÅ SÅ !!!

Klap liiiiige hesten !!! ;)

Snowball
Avatar billede tknudsen Nybegynder
13. september 1999 - 13:53 #26
snowball: ufattelig svartid du har - laver du ikke noget ?
Avatar billede snowball Novice
13. september 1999 - 14:27 #27
JO. Jeg bli'r snart stresset !!! Jeg er ikke vant til at arbejde 18½ time om dagen !!!

Snowball
Avatar billede tknudsen Nybegynder
14. september 1999 - 08:24 #28
bjarke: her findes en beskrivelse af samtlige software interrupts. Sammen med det tilsendte prg skulle du nok kunne finde en løsning...

http://www.brl.ntt.co.jp/people/takehiko/interrupt/index.html

good luck :)
Avatar billede bjarke Nybegynder
14. september 1999 - 08:55 #29
tknudsen >> Tak skal du have:-)
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