.rc datei umgehen und datei erst bei direktem verwenden laden
-
Guten Tag liebe community!
Ich hab folgenden code und wollte fragen wie man ihn anderes schreiben könnte.
HRSRC hSource; hSource = FindResource(NULL, MAKEINTRESOURCE(IDR_DATEI), "DATEI");Könnte man auch statt IDR_DATEI auch zb. "C:\\Users\\Peter\\Desktop\\Test\\Datei.exe"
So kann die Datei immer variable sein und vergrößert nicht unnötig das Programm.
vielen dank für die antworten!
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Was steht in deiner Resource drin? Kannst du die Datei nicht einfach einlesen per istream?
-
Und was willst Du mit der Ressource anstellen?
Im Endeffektist es vollkommen egal ob die Datei in Deiner EXE liegt oder außerhalb. Es nimmt gleichermaßen Platz weg.
-
mir geht es drum, die datei die geladen wird zu verändern wie ich möchte ohne das program neu zu kompilieren.
dh. die datei muss immer "sound.mp3" heißen und im unterordner "/sound" liegen.
und wenn ich jetzt ein beliebiges lied sound.mp3 nenne, wird dieses verwendet
als beispiel
-
Ja und? Wo ist nun Deine Problem. Dann öffne diese Datei und benutze sie...
Was hat das mit FindResource zu tun, oder mit Ressourcen?
-
case IDC_PRESS: EnableControls(hDlg, FALSE); HRSRC hSource; hSource = FindResource(NULL, MAKEINTRESOURCE(IDR_ABC), "ABC"); if(hSource == NULL) { MessageBox(hDlg, "Could not find resource!", "Prog", MB_ERROR); EnableControls(hDlg, TRUE); return TRUE; } DWORD dwSourceSize; dwSourceSize = SizeofResource(NULL, hSource); HGLOBAL hGlobal; hGlobal = LoadResource(NULL, hSource); if(hGlobal == NULL) { MessageBox(hDlg, "Could not load resource!", "Prog", MB_ERROR); EnableControls(hDlg, TRUE); return TRUE; }so im prinzip nur das ich statt "MAKEINTRESOURCE(IDR_ABC)" -> "C:\\Users\.."
-
Dann musst Die FindResource etc. eben erstzen und wie ich schon schreb die atei einlesen.
1. Datei öffnen (CreateFile).
2. Dateigröße bestimmen (GetFileSize).
3. Speicher allokieren (new, malloc, GlobalAlloc).
4. Datei in Speicher lesen (ReadFile).