Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

base operand of '->' is not a pointer

Ostatnio zmodyfikowano 2013-08-08 11:27
Autor Wiadomość
megatron
Temat założony przez niniejszego użytkownika
base operand of '->' is not a pointer
» 2013-08-07 19:31:59
Witam serdecznie.
Na początek powiem, że zakjąłem się "bardzo" niskopoziomową biblioteką - plib.
Mam taki kawałek kodu:
C/C++
SOCKET sockr;
sockr = new netSocket();
sockr->open( false );
I jak pewnie już każdy się "skapnął"... błąd(base operand of '->' is not a pointer|) wskazuje w trzeciej linijce.
Wszystkie biblioteki mam zainstalowane i nie mam pojęcia co to może być.
Z góry dziękuję za pomoc.

Pozdrawiam.
P-89706
SeaMonster131
» 2013-08-07 19:46:45
A nie tak?
C/C++
SOCKET * sockr = new netSocket();
sockr->open( false );
P-89707
megatron
Temat założony przez niniejszego użytkownika
» 2013-08-07 19:49:39
request for member 'open' in 'socks', which is of non-class type 'SOCKET {aka unsigned int}'

#@#EDIT#@#
@up  próbowałem już ten przykłąd
cannot convert 'netSocket*' to 'SOCKET* {aka unsigned int*}' in initialization

#@#EDIT_2#@#
@SeaMonster131 przed edycją napisałeś
sockr.open( false );
 i to pomogło z
cannot convert 'netSocket*' to 'SOCKET* {aka unsigned int*}' in initialization
 i jest kolejny problem:
request for member 'open' in 'socks', which is of non-class type 'SOCKET {aka unsigned int}'
P-89708
megatron
Temat założony przez niniejszego użytkownika
» 2013-08-07 20:34:15
to wygląda jak bym czegoś nie zainkludował :/

#@#EDIT#@#
kod zadziałał.
poprostu zrobiłem to tak:
C/C++
netSocket socks;
netSocket sockr;

socks.open( false );
sockr.open( false );

ale konsola wywala coś dziwnego ;/

Irrlicht Engine version 1.8.0
Microsoft Windows 7 Ultimate Edition Service Pack 1 (Build 7601)
Irrlicht Engine version 1.8.0
Microsoft Windows 7 Ultimate Edition Service Pack 1 (Build 7601)
Using renderer: OpenGL 4.3.0
GeForce GT 430/PCIe/SSE2/3DNOW!: NVIDIA Corporation
OpenGL driver version is 1.2 or better.
GLSL version: 4.3
Resizing window (1440 884)
Assertion failed: handle != -1, file D:\programowanie\biblioteki_i_silniki\plib-
1.8.5-rc1\plib-1.8.5-rc1\src\net\netSocket.cxx, line 192

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Process returned 3 (0x3)   execution time : 1.573 s
Press any key to continue.

z góry dziękuję za pomoc
P-89711
ridic14
» 2013-08-07 21:45:25
Zrobiłeś coś na co biblioteka plib nie pozwala:
Assertion failed: handle != -1

#edit: musisz użyć wskaźnika na SOCKET. Wskaźnik musi wskazywać twoją klasę (dziedziczącą po netSocket) << czyli musisz sam napisać sobie klasę
P-89714
DejaVu
» 2013-08-07 21:52:11
Wracając do błędu z tematu - pojawia Ci się on dlatego, że netSocket jest obiektem, a Ty próbujesz ten obiekt zapisać po pierwsze do typu SOCKET, a po drugie wywołać metodę w czymś co jest typu SOCKET, a nie typu netSocket.

http://docs.freeflightsim.org​/plib/netSocket_8h_source.html

PS. Jeden temat = jeden problem.
P-89715
megatron
Temat założony przez niniejszego użytkownika
» 2013-08-08 11:27:31
o jaaa...
poprostu złą kompilację pliku libnet.a podawałem w linkerze - Release zamiast Debug :D
i wszystko jest w porządku.

PS. zauważyłem, że te moje ostatnie posty wyglądają jak "trochę" rozrzucone kursy ;)
Dzięki za odpowiedzi i pozdrawiam.
P-89720
« 1 »
  Strona 1 z 1