[C++] błąd składniowy

void ledbar (int rpm)

{

//kod

_endthread();

}

//w mainie

_beginthread(ledbar(rpm),0,0); //<- tu wywala poniższe błędy

c:\Users\Administrator.siec\Desktop\Nowy folder\2\c2p2a\c2p2a.c(190): error C2095: '_beginthread' : actual parameter has type 'void' : parameter 1

c:\Users\Administrator.siec\Desktop\Nowy folder\2\c2p2a\c2p2a.c(190): error C2198: '_beginthread' : too few arguments for call through pointer-to-function

generalnie błąd jest z tym nawiasem (rpm) bo _beginthread(ledbar,0,0); lub _beginthread(ledbar,rpm,0,0); kompiluje się , no ale funkcja ledbar w tedy nie działa poprawnie…

A funkcja ledbar() zwraca jakąś wartość?

Skoro jest to typ void, to raczej nie.

Moim zdaniem, stąd błąd “zbyt mało argumentów”.

P.S. W C++ jestem na dużo niższym poziomie, więc proszę się nie śmiać, jeśli palnąłem jakąś głupotę ;p

u Ciebie ledbar nic nie zwraca, to jak chcesz do _beginthread jako pierwszy parametr przesłać “nic”?

jak nic? przecież przekazuje int

INT przekazujesz do funkcji ledbar().

Natomiast ona nie przekazuje niczego do tej, w której została wywołana.

Aby przekazywała tam wartość naturalną, musiałbyś:

  1. Zmienić typ funkcji z void na int.

  2. W funkcji ledbar() umieścić polecenie return wynik_do_przekazania;

@nr47 ma rację

coś typu int przekazujesz do ledbar().

ledbar() nie zwraca nic jako pierwszy argument przy wywołaniu _beginthread().

btw. to nie jest błąd składniowy tylko raczej błąd typów

EDIT: ups, ktos mnie wyprzedził :wink:

dokładnie

bo funkcja void nie ma nic do przekazywania! ma po prostu chodzić

Problem chyba rozwiązałem pakując wszystko do klasy, gdzie parametry są znane i nie muszę je przekazywać do funkcji [taki mam plan w każdym razie]

Powstał natomiast dziwny błąd w klasie

class Pomocnik1

{

public:

Pomocnik1();

double a,b,c;

void pobierz();

void ledbar();

private:

};

c:\Users\Administrator.siec\Desktop\Nowy folder\2\c2p2a\Pomocnik1.h error C2059: syntax error : ';'

c:\Users\Administrator.siec\Desktop\Nowy folder\2\c2p2a\Pomocnik1.h error C2061: syntax error : identifier 'Pomocnik1'

c:\Users\Administrator.siec\Desktop\Nowy folder\2\c2p2a\Pomocnik1.h error C2449: found '{' at file scope (missing function header?)

c:\Users\Administrator.siec\Desktop\Nowy folder\2\c2p2a\Pomocnik1.h(12): error C2059: syntax error : '}'

Więc jeśli nie ma nic przekazywać to nie wkładaj jej jako parametr dla innej funkcji…

Edit:

Nie prościej zastosować zmienne globalne i wywołać tą funkcję normalnie poza inną?

Co do klas - po prostu się na tym nie znam ;/

void ledbar(void *ptr)