Avatar billede martinib Nybegynder
18. september 2006 - 15:30 Der er 4 kommentarer

Define er ikke defineret i winuser.h (winapi)

hej

Vi har et relativt stort projekt med mixet c og c++ filer, som bruger windows api'en raw_input.

Vi har defineret denne: #define _WIN32_WINNT 0x501

hvilket gør det muligt at bruge raw input inde i winuser.h

problemet er at _WIN32_WINNT er udefineret i winuser.h og i andre windows api filer.

Vi har forsøgt at integrere et raw_mouse ind i et virtuelt fodbold, hvilket skulle give os flere mus.

De to programmer virke hver for sig og i raw_mouse programmet er der ingen problemer med at definere.

Ved at højreklikke på f.eks PRAWINPUT og vælge "go to definition" vil den ikke linke os til winuser.h, men det vil den godt i raw_mouse programmet for sig selv.

her er linket til vores kode.

http://www.summer-party.dk/virtualfoosball2.rar

skriv hvis I ikke forstår problemmet

takker
Avatar billede segmose Nybegynder
18. september 2006 - 16:16 #1
Nu er jeg ikke 100% sikker på hvad du mener, men vil vove et gæt.

Placer din
#define _WIN32_WINNT 0x501
foran den første include i alle dine filer så vil den være erklæret i alle includes og så indlejrede.

eller

hvis der er rigtig mange filer, give den med som compiler argument, afhængig af din compiler kan det være forskellige steder det skal tilføjes, enten i din gui eller i en makefile.
Avatar billede martinib Nybegynder
19. september 2006 - 21:18 #2
tror du har forstået. men desværre. vi har nu prøvet det og det virker ikke.

den markere stadig inde i winuser de linjer som vi skal bruge med grå, hvilket betyder at den ikke kommer til de linjer. i vores del-prokjekt raw_input (præcis del-kopi) er de sorte. her bliver de altså brugt.

vi bruger Visual studio 2005. vi har lagt det ind under preprocesser og syntaxen virker i vores andre programmer. men det hjælper ikke til.

Har du andre bud?

takker for hjælpen. vi er virkelig endt i en knude.
Avatar billede segmose Nybegynder
20. september 2006 - 09:05 #3
Prøv at lave et forsimplet program der viser fejlen, noget i retning af

#define _WIN32_WINNT 0x501
#include "winuser.h"

#ifndef _WIN32_WINNT
#error bøf
#end

int main() {
  xxx; // kald til funktion der skal være tilgængeligt.
}
Avatar billede martinib Nybegynder
20. september 2006 - 11:25 #4
vi har allerede et forenklet program som virker.

vores projekt går ud på at samle to programmer. et raw_mouse og et virtual foosball. De virker perfekt hver for sig, men når vi slår dem sammen er der problemer med raw_mouse.

og det er ret mystisk for i raw_mouse delen af det sammenlagte program kan den godt tælle antal mus, hvilket den egentlig ikke burde da den her skal bruge nogle af de samme linjer fra winuser.h
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