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

WinApi projekt problem z konwersja LPWSTR do char

Ostatnio zmodyfikowano 2012-05-04 14:43
Autor Wiadomość
RayTango19
Temat założony przez niniejszego użytkownika
WinApi projekt problem z konwersja LPWSTR do char
» 2012-05-04 11:55:08
Witam Was.Robię program w WinApi do rysowania wykresów funkcji ,mam to jako projekt do zaliczenia pewnego przedmiotu na studiach. Mam dwie funkcje char *konwertuj(char rownanie[],int dlugosc) ,która przetwarza funkcję na zapis ONP
oraz double przelicz(char we[],double wartosc) ,która dostaje zapis równania w ONP z poprzedniej funkcji i zwraca wartosc dla danego x .Dopiero zaczynam przygodę z WinApi i w kursie widzialem taki kod :

DWORD dlugosc = GetWindowTextLength( hText );
LPSTR Bufor =( LPSTR ) GlobalAlloc( GPTR, dlugosc + 1 );
GetWindowText( hText, Bufor, dlugosc + 1 );

Za pomocą tego pobieram równanie z pola tekstowego ,ale nie wiem jak skonwertować ten LPWSTR na char .Szukam po internecie ile mogę ale nie wiem za bardzo jak to poprawnie sklecić .Pomożecie???
P-55972
xevuel
» 2012-05-04 12:10:09
LPSTR jest równe char*. Możesz użyć zapisu
( char * ) zmienna
, a w większości przypadków wystarczy po prostu podać nazwę zmiennej.

Jeśli masz LPWSTR, użyj tej funkcji: [MSDN] WideCharToMultiByte.

I nie myl tych dwóch typów, bo to co innego. W temacie masz LPWSTR, w kodzie LPSTR... LPWSTR się używa, jeżeli masz w kodzie
#define UNICODE
, czy jakoś tak.
P-55973
RayTango19
Temat założony przez niniejszego użytkownika
» 2012-05-04 12:43:12
rzeczywiście pomyliłem. Robie na LPWSTR ,spróbuje tak jak mówisz....
..no dobra tylko jak tego użyć to jest trochę pogmatwane
P-55976
Admixior
» 2012-05-04 12:45:50
BTW:
Jeżeli chcesz od razu chcesz zrobić coś w char (np pobrać nazwę okna) to wystarczy dodać A do końca funkcji:
GetWindowTextA(...)

Konwersje wtedy są nie potrzebne.
P-55978
RayTango19
Temat założony przez niniejszego użytkownika
» 2012-05-04 13:11:43
To powiedz mi co dać do drugiego parametru GetWindowTextA() podać??? i czym będzie wartość int np int a =GetWindowTextA() ,do czego będzie służyć???
P-55980
xevuel
» 2012-05-04 13:13:15
dokumentacja... [MSDN] GetWindowText

Zresztą, masz gotowy przykład w kursie.
P-55981
Admixior
» 2012-05-04 13:18:05
@RayTango: Wszystko jest to samo tylko w drugim parametrze zamiast podawać miejsce zarezerwowane na wchar_t* to podajesz na char*
A zwracać będzie tak samo liczb znaków skopiowanych do tego miejsca.
P-55982
RayTango19
Temat założony przez niniejszego użytkownika
» 2012-05-04 14:43:06
Dzięki Wam wszystkim utkwiłem na tym wczoraj ,teraz mogę pracować dalej.Już mi coś rysuje mój program.Dziękuje raz jeszcze temat zamykam .
P-55997
« 1 »
  Strona 1 z 1