Arekadiusz Opublikowano 15 Września 2012 Udostępnij Opublikowano 15 Września 2012 Próbuję już dłuższy czas odczytać dane z pliku ini w WinApi C++ i mi nie wychodzi. :crying: Najpierw odczytywałem z podaną już sekcją: TCHAR Bufor[80]; GetPrivateProfileString (TEXT("sekcja"), TEXT("cos"), TEXT("Błąd!"), Bufor, 80, TEXT("C:\\plik.ini")); I to mi działało. Gdy zmieniłem jednak aby sekcje pobierał ze zmiennej to już nie zadziałało. Podejrzewam że jest zły typ zmiennej ale jaki ma być? Ja dawałem tak: TCHAR Bufor[80]; char sekcja; sekcja="nazwasekcji"; GetPrivateProfileString (sekcja, TEXT("cos"), TEXT("Błąd!"), Bufor, 80, TEXT("C:\\plik.ini")); Pokazuje się błąd: invalid conversion from 'const char*' to 'char'. Tak samo jest jak chcem zamiast ścieżki podstawić zmienną ze ścieżką. Jak mi ktoś pomoże będę bardzo wdzięczny bo nie wiem już jaki to ma być typ. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 15 Września 2012 Udostępnij Opublikowano 15 Września 2012 Nazwa błędu wskazuje na to, że któryś z argumentów musi być stały. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 15 Września 2012 Udostępnij Opublikowano 15 Września 2012 char sekcja; sekcja="nazwasekcji"; Poważnie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 15 Września 2012 Autor Udostępnij Opublikowano 15 Września 2012 Nazwa błędu wskazuje na to, że któryś z argumentów musi być stały. To znaczy? Jestem początkujący w c++ więc sorki że tak pytam... @Tymon: Nie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 15 Września 2012 Udostępnij Opublikowano 15 Września 2012 No to już, popraw to szybko. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 15 Września 2012 Autor Udostępnij Opublikowano 15 Września 2012 No to już, popraw to szybko. Ale to chyba nie jest rozwiązaniem mojego problemu... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 15 Września 2012 Udostępnij Opublikowano 15 Września 2012 Jeśli do char chcesz przypisać char *, a do tego jescze przekazujesz do funkcji char zamiast oczekiwanego char * i nie widzisz tutaj błędu to życzę miłej nauki podstaw C. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 17 Września 2012 Autor Udostępnij Opublikowano 17 Września 2012 To co mam zrobić bo nie bardzo rozumiem... :crying: ? Jak mam to przekonwertować? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 17 Września 2012 Udostępnij Opublikowano 17 Września 2012 na const char* rzutuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 17 Września 2012 Autor Udostępnij Opublikowano 17 Września 2012 Zrobiłem sobie na razie coś takiego: OPENFILENAME wczytaj; char sNazwaPliku[ MAX_PATH ] = ""; ZeroMemory( & wczytaj, sizeof( wczytaj) ); wczytaj.lStructSize = sizeof( wczytaj ); wczytaj.lpstrFilter = "Plik ini(*.ini)\0*.ini\0Wszystkie pliki\0*.*\0"; wczytaj.nMaxFile = MAX_PATH; wczytaj.lpstrFile = sNazwaPliku; wczytaj.lpstrDefExt = "ini"; wczytaj.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; if( GetOpenFileName( & wczytaj) ) { TCHAR Bufor[80]; const char* sNazwaPliku; GetPrivateProfileString (TEXT("sekcja"), TEXT("klucz"), TEXT("Błąd!"), Bufor, 80, sNazwaPliku); SetWindowText( hPole, Bufor ); } Po uruchomieniu tego klikam sobie na przycisk wywołujący wybór pliku, pokazuje się okienko, wybieram plik, kilkam otwórz i nie wiedzieć czemu pokazuje mi się Windowsowy błąd: "Program program1.exe przestał działać trwa wyszukiwanie rozwiązania problemu...". Co robię źle? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 17 Września 2012 Udostępnij Opublikowano 17 Września 2012 Zostaw WinAPI i ucz się podstaw. http://www.cplusplus.com/reference/string/string/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 17 Września 2012 Udostępnij Opublikowano 17 Września 2012 filtr dzieli się jednym \0, ale kończy dwoma \0. nazwa pliku wynikowego to także bufor, a nie wskaźnik tylko (bo do bufora tego umieszcza ta funkcja) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 17 Września 2012 Administratorzy Udostępnij Opublikowano 17 Września 2012 Jak dobrze kojarzę, to jeden char to jak byte - można przypisać jedną literę [0-255] ;) Bo koledzy nie podpowiadają. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 17 Września 2012 Udostępnij Opublikowano 17 Września 2012 Obaj nie umiecie czytać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 17 Września 2012 Autor Udostępnij Opublikowano 17 Września 2012 To jak w końcu powinno być bo już się pogubiłem?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 18 Września 2012 Udostępnij Opublikowano 18 Września 2012 To jak w końcu powinno być bo już się pogubiłem?? Dobrze napisane. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 25 Września 2012 Autor Udostępnij Opublikowano 25 Września 2012 Przepraszam za odświeżenie tego tematu ale mam jeszcze jeden problem z WinApi a nie chciałbym zakładać nowego tematu żeby nie zaśmiecać forum. Tamten problem udało mi się rozwiązać samemu ale teraz mam kolejny :( Używałem najpierw DevC++ ale teraz przeszłem na CodeBlocks. W DevC++ używałem takiego polecenia do wywołania okienka dialogowego: int dialog = DialogBox( GetModuleHandle( NULL ), MAKEINTRESOURCE( 200 ), hwnd, DlgProc ); W CodeBlocks niestety ten kod albo nie działa albo ja robię coś źle. Dodam jeszcze że to okienko dialogowe mam napisane w pliku .rc, jego ID jest przechowywane przy pomocy pliku dialog.h w którym mam linijkę: #define ID_MOJDIALOG 200 a plik dialog.h jest dołączony do pliku main.cpp. Pomoże ktoś? :o Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 25 Września 2012 Udostępnij Opublikowano 25 Września 2012 A jakimi błędami pluje C::B? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 25 Września 2012 Autor Udostępnij Opublikowano 25 Września 2012 Błędu nie było żadnego tylko po prostu po kliknięciu na przycisk wywołujący okienko nic się nie pokazywało ale już zaczęło działać ;) Mam jakieś szczęście dzisiaj i udaje mi się samemu rozwiązywać problemy. Dzięki za dobre chęci! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się