[ WinAPI ] Proszę o pomoc!
Ostatnio zmodyfikowano 2012-08-12 20:51
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:
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ę. |
|
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() |
|
xevuel |
» 2012-08-08 07:53:29 Lub: strcpy | Kopiuje łańcuch znaków do tablicy znaków. (funkcja) |
---|
strcat | Scala dwa łańcuchy znaków w jeden. (funkcja) |
---|
do łączenia ciągów znaków w stylu języka C. |
|
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). |
|
« 1 » |