Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Win32 ja POINTAPI

moptim [21.01.2007 14:27:16]

#

Nyt tarvitaan apua. Olen includennut tiedoston windows.h, mutta C-ohjelmani ei keksi tyyppiä POINTAPI. Mikähän auttaisi?
EDIT: sorsa tässä:

#include <windows.h>
#include <math.h>

void Liikuta (DWORD x, DWORD y);

int main(void) {
POINTAPI alkuper;
DWORD uusx;
DWORD uusy;
float ang;
float rad;
POINTAPI uus;
alkuper.x = 512;
alkuper.y = 384;
//toimii tonnimoodissa
while(1) {
ang += 2;
if (ang > 360) {ang -= 360;}
rad = ang * 3.14159 / 180;
//pii vähän lyhennetty, osaan ulkoa 3.14159265358979323846264338 :)
uusx = cos(rad) * 200;
uusy = sin(rad) * 200;
uus.x = alkuper.x + uusx;
uus.y = alkuper.y + uusy;
Liikuta (uus.x, uus.y);
Sleep (10);
}
}

void Liikuta(DWORD x, DWORD y) {
POINTAPI piste;
piste.x = x;
piste.y = y;
ClientToScreen (0, piste);
SetCursorPos (piste.x, piste.y);
}

Jokainen arvannee, että ohjelma on tärkeä.

Legu [21.01.2007 15:25:37]

#

KoTW kirjoitti:

//pii vähän lyhennetty, osaan ulkoa 3.14159265358979323846264338 :)

Vai niin. Ei se ole kuin (wikipedian mukaan) 26 / 100000 = 0,026% maailmanennätyksestä!

Noh, asiaan:
Katso ClientToScreenin oikea muoto täältä

moptim [21.01.2007 15:33:22]

#

33 C:\Dev-Cpp\kicca.c request for member `y' in something not a structure or union.

Ja noita n+1. Myöskään x tai X ei kelpaa.

Legu [21.01.2007 15:49:53]

#

Onko se nyt näin? (ja tuolta alusta POINTAPI -> POINT vaikkapa)

void Liikuta(DWORD x, DWORD y) {
    POINT piste;
    piste.x = x;
    piste.y = y;
    ClientToScreen (0, &piste);
    SetCursorPos (piste.x, piste.y);
}

EDIT: ja vaikka tuo DWORD vielä intiksi, jos siitä valittaa

moptim [21.01.2007 16:10:52]

#

Kiitos. Nyt toimii :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta