Avatar billede emileej Nybegynder
25. august 2001 - 14:52 Der er 16 kommentarer og
2 løsninger

DirectInput og Dev-C++

Jeg er ved at hitte rede på directX, og til dette formål, anvender jeg Dev-C++ udviklingsmiljøet...

Det hele fungerer upåklageligt, når jeg bruger directDraw, men så snart jeg bare include\'r dinput.h (fra msDxSdk - hvorfra ddraw.h, som jeg kan bruge uden nogle fejl), kommer følgende fejl frem:


In file included from c:\\cpp\\dev-c++\\ddraw tutuorial\\1\\DIFunk.h:1,
                from c:\\cpp\\dev-c++\\ddraw tutuorial\\1\\main.cpp:3:
C:\\DEV-C_~1\\Include\\MSDXSD~1\\dinput.h:645: syntax error before `;\'
C:\\DEV-C_~1\\Include\\MSDXSD~1\\dinput.h:657: syntax error before `;\'
C:\\DEV-C_~1\\Include\\MSDXSD~1\\dinput.h:1053: syntax error before `;\'
C:\\DEV-C_~1\\Include\\MSDXSD~1\\dinput.h:1199: syntax error before `;\'


Jeg aner virkeligt ikke mine levende råd - please hjælp mig...

E-)mil
http://eej.dk
Avatar billede mickni33 Nybegynder
25. august 2001 - 14:56 #1
Hvis du skriver #include <din.h>
så prøv istedet at skrive
#include \"dinput.h\"
Avatar billede mickni33 Nybegynder
25. august 2001 - 14:58 #2
ellers prøv at kigge de steder der er fejl.
linie
645
657
osv
måske kan du hitte ud af det ved at kigge der
Avatar billede emileej Nybegynder
25. august 2001 - 15:22 #3
Jeg skriver #include <dinput.h>, og er allerede ved at kigge på de linier...
Avatar billede emileej Nybegynder
25. august 2001 - 15:28 #4
Fejlene er begrænset til een, da alle linierne er ens - nemligt:
UINT_PTR    uAppData;
Det hjælper ikke mig meget, men jeg håber, at der er nogle kloge hoveder, der er klar over hvad der er tale om...

E)mil
Avatar billede mickni33 Nybegynder
25. august 2001 - 15:46 #5
Hvor er denne variabel defineret

UINT_PTR    uAppData;
Avatar billede mickni33 Nybegynder
25. august 2001 - 15:48 #6
prøv at ligge h filen sammen med cpp filen. Altså koden lægges i samme fil så man ikke behøver at include h filen. Hvis det virker så ved man at det er noget galt med include\'eringen hvis det ikke virker alligevel så ved man at det er ??? :-)
Avatar billede emileej Nybegynder
25. august 2001 - 16:18 #7
Det er 1000 linier!
Desuden kom filen jo med DirectX sdk\'en, så waffor skulle det system lige precist ikke virke med mig?!
Det giver altså ingen mening...
Avatar billede mickni33 Nybegynder
25. august 2001 - 16:22 #8
Nej det gør det mange gange ikke :-) men man må bare prøve mange mærkelige ting før at den lige pludselig er der..svært at sidde her på afstand og lige nøjagtig sige hva der er galt, sorry
Avatar billede perfi Nybegynder
25. august 2001 - 18:11 #9
UINT_PTR er af integer typen og er en 32/64 bits stor pointer.
UINT_PTR er garanteret til at være så stor som en pointer er (32/64)som i de fleste compilere.
Ligeledes er  UINT_pointeren unsigned, som indikere at den højest signifikante bit af en integer variable, presentere en data bit og ikke en fortegns bit. Ja, hvor vil jeg så hen med dette. Det kunne tænkes at de funktionaliteter fra directDraw.h er af ældre dato og kun repræsentere 16bit pointere?? Eller at de konventioner de har ikke taler indbyrdes..
Et skyd fra hoften, men prøv at kigge på dine pointer erklæringer, især den erklæret integer pointer uAppData....
(perfi:
Avatar billede mickni33 Nybegynder
25. august 2001 - 20:38 #10
hvor faen ved du det fra :)
(skal se godfather kl2200 på tvdk)
Avatar billede emileej Nybegynder
25. august 2001 - 22:59 #11
>>Perfi

Mig kun almindelig dødelig 2.g\'er - du sige hvad? *lol*

Det ville da være under ligt hvis ddraw.h og dinput.h ikke kan arbejde sammen, da de jo begge er fra samme sdk (8.0a), som jeg lige downloadede i forgårs fra ms\' hjemmeside...

Kunne det tænke sig, at der er problemer med compileren, der bruges af Dev-C++?
I så fald - how on earth får jeg det på ret køl?

E-)mil
http://eej.dk
Avatar billede perfi Nybegynder
26. august 2001 - 01:14 #12
emileej.
Ja, det er jo ikke godt at vide, men ifølge tilsvarende i Builderen, så referere pointeren til en funktion/erklæring som ligger i en DLL.(class) \"basetsd\". Selvom de begge kommer fra samme sdk, så skal man huske at _export alle DLL, h. filerne da man må formode at DLL\'erne er dynamisk bundet til funktionerne..Det er UINT_PTR funktionen de gør at du kan benytte forskellige pointer størrelser...Og den i sig selv er ikke part af dinput.h eller ddraw.h, men part af compileren.

perfi:
Avatar billede emileej Nybegynder
26. august 2001 - 09:48 #13
Aha! Det er nok der den ligger...
Sagen er nemligt den, at dll\'erne IKKE kunne anvendes med Dev-C++, der i stedet har sine egne erstatninger (libddraw.a og libdinput.a)...
Hvad kan jeg gøre ved det?

E-)mil
Avatar billede perfi Nybegynder
26. august 2001 - 12:19 #14
Det er jo det der er det godt ved DLL filer. Funktionerne i DLL\'erne, hvis de er skrvet rigtigt, kan benyttes af de fleste applikationer, med forbehold selvfølgelig.
Når man kalder en funktion fra en DLL fil, så skal man først funktionserklæring for funktionen, og derefter kan man kalde funktionen, ligesom man kalder en hvilken som helst funktion..
allá:
erklæringen: extern \"C\" import void uAppData(HWND);
Funktionskald: uAppData(Apllication->Handle);
Man skal også huske at inkludere DDL\'en, som man inkludere headere.
Det var en måde, måske....
Eller kan du finde ud af hvad den (uAppData;) funktion gør i programmet, og se om der ikke er en tilsvarende i libddraw.a ell. libdinput.a, eller om det er nødvændigt at access den ved direkte adresse erklæring (pointeren)...
I sidste instans, skrive en funktion selv..men det er for de langhåret..
Perfi:

Avatar billede emileej Nybegynder
26. august 2001 - 12:28 #15
Sorry - nu vrøvler jeg - det er .lib filerne, der ikke funker, så jeg i stedet må bruge .a filerne...
Avatar billede perfi Nybegynder
26. august 2001 - 13:49 #16
OK, min vurdering er at du benytter den funktioner der ligger i .a filerne, nu når det virker, så må du se bort fra DLL\'erne. Hvis DLL\'erne er skrevet som statisk, ja så kan du \"NÆSTE\" ligeså godt benytte a.filerne istedet uden at tabet alt formeget i accesstider og memoryen, da inkluderet statiske DLL filer bliver compiled ved starten af applikationen, \"lidt\" ligesom inkluderet klasser og funktioner.
Jeg kan ikke løse dit problem med en kodestupm ud over det jeg har lagt op til, ....så good luck maté
Perfi:
Avatar billede emileej Nybegynder
27. august 2001 - 16:49 #17
Jeg har fået fat i et par gutter på GameDev.net, der (no offence) ved hvad de taler om :)
Tak for forslagene :)

- lukker og slukker -

E-)mil
http://eej.dk
Avatar billede perfi Nybegynder
27. august 2001 - 19:59 #18
OK emileej
No problemos.........

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