• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pole tekstowe dołączone do tworzonego pliku (WinAPI)

Object Storage Arubacloud
0 głosów
570 wizyt
pytanie zadane 4 lutego 2019 w C i C++ przez Sic Dyskutant (8,510 p.)
edycja 4 lutego 2019 przez Sic

Witam tworzę program, który tworzy plik tekstowy, który się nadpisuje przy kolejnym otwarciu. Można wprowadzić do niego tekst i zapisywać go tam aż do następnego otwarcia. Pierwsza część wyszła całkiem nieźle, ponieważ plik się tworzy, problem pojawia się przy zapisywaniu tekstu (próbowałem WriteFile(), ale to nie zadziałało). Chciałbym dodać, że funkcja 'DaneDoPliku" została utworzona ze względu na próbę wprowadzenia pola tekstowego.

#include <windows.h>

HWND hwnd;
LPSTR Bufor;
HANDLE hPlik;
DWORD dwSize, dwZapisac;

void DaneDoPliku(HWND text)
{
	Bufor = (LPSTR)GlobalAlloc(GPTR, dwSize + 1); 
	GetWindowText(hwnd, Bufor, dwSize + 1);
	//MessageBox(NULL, Bufor, "Wpisz tekst", MB_ICONINFORMATION);

	hPlik = CreateFile("Dane zaszyfrowane.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_RANDOM_ACCESS, NULL); // tworzy plik (działa)

	WriteFile(hPlik, (LPCVOID)Bufor, dwSize, &dwZapisac, NULL);

	system("pause");

	GlobalFree(Bufor); // zwolnij bufor
	CloseHandle(hPlik); // zamknij plik
}


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	DaneDoPliku(hText);

	return 0;
}

Proszę o podpowiedź w jaki sposób mogę sprawić, aby otworzyć tworzony plik i wprowadzić do niego tekst.

komentarz 5 lutego 2019 przez j23 Mędrzec (194,920 p.)
Jest jakiś racjonalny powód, dla którego zrezygnowałeś z użycia strumieni C/C++ na rzecz surowych funkcji systemowych?

1 odpowiedź

0 głosów
odpowiedź 5 lutego 2019 przez j23 Mędrzec (194,920 p.)

Bufor = (LPSTR)GlobalAlloc(GPTR, dwSize + 1);

Chyba zapomniałeś ustalić, ile bajtów powinieneś przydzielić (dwSize == 0). Użyj GetWindowTextLength.

 

Dlaczego Bufor, hPlik, dwSize i dwZapisac są globalne?

Podobne pytania

0 głosów
2 odpowiedzi 359 wizyt
pytanie zadane 23 lutego 2018 w C i C++ przez polak1231 Początkujący (270 p.)
0 głosów
1 odpowiedź 168 wizyt
pytanie zadane 20 października 2016 w C i C++ przez bartolinciu Dyskutant (7,580 p.)
+1 głos
3 odpowiedzi 898 wizyt
pytanie zadane 12 maja 2021 w JavaScript przez Hubert731 Obywatel (1,650 p.)

92,568 zapytań

141,424 odpowiedzi

319,633 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...