Tworzenie pliku wewnatrz DLL

Tworzenie pliku wewnatrz DLL
J2
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 9 lat
  • Postów:17
0

Witam,
mam problem z tworzeniem i zapisem pliku wewnatrz procedury umieszczonej w DLLce.
Utworzylem globalnego hooka w dll, w jego procedurze chcialem stworzyc plik, ponizej kod:

Kopiuj
extern "C" __declspec(dllexport) LRESULT CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam) 
{

	
  	if(code >=0 && code == HC_ACTION)
	  {

			Bufor =  "123";
	                dwRozmiar = znag.length()+1;
                        hPlik = CreateFile( "test.txt", GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS,FILE_FLAG_RANDOM_ACCESS, NULL );
			if( !WriteFile( hPlik,Bufor, dwRozmiar, & dwZapisane, NULL ) ) {
		        MessageBox( NULL, "Błąd zapisu do pliku", "Dupa blada!", MB_ICONEXCLAMATION );
			
			CloseHandle( hPlik ); // Zamknij plik
			  	
	  }	
   
   return CallNextHookEx(HookHandle, code, wParam, lParam);
} 

Wiem, ze problem tkwi w dzieleniu pamieci, ale nie wiem jak sie za to zabrac, wiec prosilbym o jakies wskazowki.

Z gory dziekuje i pozdrawiam

mwl4
  • Rejestracja:około 12 lat
  • Ostatnio:17 dni
  • Lokalizacja:Wrocław
  • Postów:399
1

A nie łatwiej będzie użyć do tego fstreama? Albo chociażby funkcji z C? (fopen, fwrite, fclose).


Asm/C/C++
kaczus
  • Rejestracja:około 10 lat
  • Ostatnio:10 dni
  • Lokalizacja:Łódź
  • Postów:1402
0
  1. czemu zapisujesz o jeden znak więcej?
  2. czy wiesz gdzie utworzy ci plik, skoro nie podajesz pełnej ścieżki? I czy masz uprawnienia, aby tworzyć tam plik?
  3. co zwraca CreateFile?

Ogólnie na prace domowe mam stawki zaporowe. Czasem coś o programowaniu znajdzie się na mojej stronie
J2
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 9 lat
  • Postów:17
0

Probowalem juz zarowno z fstreamem jak i klasycznym C. Szkopul w tym, ze wewnatrz biblioteki z procedury hakowej nie moge w zaden sposob nic zapisac do pliku, ani nawet utworzyc pliku. Zrobilem w dllce funkcje zapisujaca, z aplikacji do ktorej zaladowalem ta DLL'ke normalnie zapisuje ale kiedy wywolam funkcje wewnatrz CALLBACKa haka jusz nic nie idzie. Moge w ten sposob wyswietlic MessageBoxa, ale utworzyc czy zapisac pliku juz nie.

Odpowiadajac na pytania

  1. To fragment kodu, ktory testowalem juz na wiele roznorakie sposoby, stad pozostal tam 1 znak wiecej,
  2. W folderze gdzie znajduja sie moje *exe z dllka, funkcja tworzaca i zapisujaca do pliku wewnatrz dll dziala, nie moge jedynie zapisac jej po zdarzeniu w procedurze hakowej, wiec nie jest to wina braku uprawnien,
  3. Nie sprawdzalem jeszcze tego, postaram sie to zrobic i dam znac

Dziekuje i pozdrawiam!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.