Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
struct ogIndexConfigDlg { int iAdapter; int iVideoMode; bool bWindowed; int iDevType; int iBackBuffer; int iZStencil; int iAAType; int iAAQL; int iVP; //0 = HW, 1 = SW, 2 = MX int iDSGuid; int iSF; //0 = Low, 1 = Medium, 2 = High int iBPS; //0 = 8bit, 1 = 16bit }; |
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
//Schreibt eine Struktur in eine Datei template <typename T> bool ogUtilsWriteStructToFile(wchar_t* sFileName, T* Structur) { //Datei öffnen HANDLE hFile; if((hFile = ::CreateFileW(sFileName, //Datei GENERIC_WRITE, //Rechte 0, //Shared-Rechte NULL, //Sicherheitsattribute CREATE_ALWAYS, //Verhalten bei speziellen Situationen FILE_ATTRIBUTE_NORMAL, //Attribute NULL)) == INVALID_HANDLE_VALUE) return (false);;// OG_ERROR_FILE(sFileName, OG_ERROR); //Daten in die Datei schreiben DWORD dwBytesWritten = 0; if((!::WriteFile(hFile, Structur, sizeof(T), &dwBytesWritten, NULL)) || dwBytesWritten != sizeof(T)) return (false);;// OG_ERROR(L"Es trat ein Fehler beim Schreiben einer Datei auf!", OG_ERROR); //Hanlde schließen ::CloseHandle(hFile); return true; } //------------------------------------------------------------// //Lest eine Struktur in eine Datei template <typename T> bool ogUtilsReadStructFromFile(wchar_t* sFileName, T* Structur) { //Datei öffnen HANDLE hFile; if((hFile = ::CreateFileW(sFileName, //Datei GENERIC_READ, //Rechte 0, //Shared-Rechte NULL, //Sicherheitsattribute OPEN_EXISTING, //Verhalten bei speziellen Situationen 0, //Attribute NULL)) == INVALID_HANDLE_VALUE) { DWORD dwErr = ::GetLastError(); return (false);;// OG_ERROR_FILE(sFileName, OG_ERROR); } //Daten aus Datei lesen DWORD dwBytesRead = 0; if((!::ReadFile(hFile, Structur, sizeof(T), &dwBytesRead, NULL)) || dwBytesRead != sizeof(T)) return (false);;// OG_ERROR(L"Es trat ein Fehler beim Schreiben einer Datei auf!", OG_ERROR); //Hanlde schließen ::CloseHandle(hFile); return true; } struct ogIndexConfigDlg { int iAdapter; int iVideoMode; bool bWindowed; int iDevType; int iBackBuffer; int iZStencil; int iAAType; int iAAQL; int iVP; //0 = HW, 1 = SW, 2 = MX int iDSGuid; int iSF; //0 = Low, 1 = Medium, 2 = High int iBPS; //0 = 8bit, 1 = 16bit }; int main (void) { // Schreiben ogIndexConfigDlg test; test.iAdapter = 555; test.iVideoMode = 444; //foobar (&test, sizeof(test)); ogUtilsWriteStructToFile (L"test2.txt", &test); // Lesen ogIndexConfigDlg test2; //foobar2 (&test2, sizeof(test2)); ogUtilsReadStructFromFile (L"test2.txt", &test2); // Ausgeben std::cout << test2.iAdapter << std::endl; std::cout << test2.iVideoMode << std::endl; std::cin.get (); return 0; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ogIndexConfigDlg og_g_IndexConfig; //sFileName == L"config.ogc" //Struktur in Datei schreiben ogUtilsWriteStructToFile(sFileName, &og_g_IndexConfig); //und so: //Wenn die Datei existiert if(ogUtilsFileExists(sFileName)) { //Struktur aus Datei holen ogUtilsReadStructFromFile(sFileName, &og_g_IndexConfig); } else return OG_ERROR; |
Anonymous
unregistriert
Anonymous
unregistriert
Anonymous
unregistriert
Werbeanzeige