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

[ WinAPI ] Proszę o pomoc!

Ostatnio zmodyfikowano 2012-08-12 20:51
Autor Wiadomość
Cansisti
Temat założony przez niniejszego użytkownika
[ WinAPI ] Proszę o pomoc!
» 2012-08-07 17:19:31
Ostatnio zacząłem się uczyć biblioteki WinAPI C++ i postanowiłem z obecną wiedzą napisać prosty notatnik (taki z dwoma przyciskami SAVE i OPEN). Ale cóż, problemów mi to nie sprawiło, więc też nie wystarczyło, postanowiłem go rozbudować. Dodałem pole na wpisanie nazwy pliku, ale trzeba było ją wpisywać razem z rozszerzeniem, co mi nie odpowiadało. I powstał kolejny pomysł aby dodać także pole na rozszerzenie. I teraz problem wygląda następująco:

|error: invalid operands of types 'CHAR*' and 'CHAR*' to binary 'operator+'|

Kod odpowiadający za błąd:

C/C++
LPSTR Name, Extend, Fname;
Fname = Name + Extend;
hPlik = CreateFile( Fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL );
Zmienne Name i Extend są pobierane z pól tekstowych przy wciśnięciu przycisku SAVE.
Chodzi o to żeby bufor podawany do funkcji CreateFile składał się z dwóch osobnych buforów, połączonych potem w jedno.
Od razu mówię że kiedy rozszerzenie pliku było podawane w nazwie wszystko działało.
Możecie mi podpowiedzieć jak to zrobić? Z góry dziękuję.
P-61921
Savail
» 2012-08-07 17:55:27
Z tego co napisałeś to wygląda na to że nie ma dostępnej funkcji operatorowej która za pomocą znaczka '+' mogłaby dodać do siebie 2 zmienne typu LPSTR. Najszybszym rozwiązaniem byłoby chyba zamiast używać typu LPSTR użyć zwykłych stringów (std::string). stringi możesz dodawac do siebie bez zadnych problemów. Oczywiście w funkcji musiałbyś przekształcić string na C string za pomocą
nazwa_stringa.c_str()
P-61923
xevuel
» 2012-08-08 07:53:29
Lub:

strcpyKopiuje łańcuch znaków do tablicy znaków. (funkcja)
strcatScala dwa łańcuchy znaków w jeden. (funkcja)

do łączenia ciągów znaków w stylu języka C.
P-61973
Mrovqa
» 2012-08-12 20:51:52
Albo zrobić jeden bufor i przy pobieraniu rozszerzenia podać miejsce w buforze gdzie ma być zapisane (tj. adres bufora + długość nazwy pliku - tak aby pierwszy znak rozszerzenia (w Twoim wypadku raczej kropka) była na nullu pierwszego stringa).
P-62364
« 1 »
  Strona 1 z 1