|
[+] libgadu - otrzymywanie wiadomości w formie tekstowej
IgiKoval - 20-08-2009 12:25
Witam. Ostatnio próbuję zrobić prosty program wykonujący w powłoce to, co dostanie ode mnie z gg. Mam coś takiego.
if (event->type == GG_EVENT_MSG) { std::wcout<<L"Wiadomosc od: "<<(event->event.msg.sender)<<L"\n"; std::wcout<<(event->event.msg.message)<<L"\n"; }
Jednak, kiedy wysyłam wiadomość, dostaję tylko coś w stylu Wiadomość od: 4449442 0x84a59c8 Wiadomość od: 4449442 0x84a40d0
itp. Czemu tak się dzieje i co mam zrobić, żeby otrzymywać wiadomości w formie tekstowej? Z góry dziękuję za pomoc.
killanonimx - 21-08-2009 12:26
To mi wygląda na wskaźnik. Spróbuj przez std::cout, albo przez
printf("%s\n", event->event.msg.message);
Jeśli nie wyświetli wiadomości przez printf, a będzie będzie naruszenie ochrony pamięci (SIGSEGV), to będę musiał przejrzeć bibliotekę.
IgiKoval - 21-08-2009 16:51
Printf, który podałeś, nie wyświetla nic.
killanonimx - 21-08-2009 17:48
A spróbuj tak:
printf("%s\n", (char*)event->event.msg.message);
Bo widzę że event->event.msg.message to unsigned char*.
IgiKoval - 21-08-2009 19:40
Niestety dalj nic.
Edit: A jednak! Dzięki twojej podpowiedzi z (char*) udało mi się wyświetlić poprawnie tekst. Dzięki, już rozwiązane.
Edit: próbowałem wklepać to do mojego shella i niestety mam naruszenie ochrony pamięci... Kod wygląda tak:
strcpy(td, (char*)event->event.msg.message); strcat(td, (char*)OUTSAVE); system(td);
Gdzie OUTSAVE to #define OUTSAVE " > out"
Edit: Już sobie poradziłem. Miałem
char* td;
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|