WinUI3 Dateioperationen

OP #7530273
Lesenswert?

Moin Moin zusammen,

ich versuche mich gerade an einem kleinen Programm, das mir eine Textdatei erstellen soll. Ein Userinterface habe ich mir schon per WINUI3 und Vicual Studio zusammengebastelt, aber jetzt hakt es an den Dateioperationen. Die unten stehende Funktion wird aufgerufen, wenn ich auf den Button 'Datei erstellen' (oder so ähnlich) klicke. Im Debug-Modus bleibt das Programm auf der fwrite Zeile mit der Meldung stehen:

Ausnahmefehler bei 0x00007FFFE9EDAFEC (ucrtbased.dll) in Gravur_Artikelnummer_Datum_Logo_0.93.exe: Ein ungültiger Parameter wurde an eine Funktion übergeben, die ungültige Parameter als schwerwiegend einstuft.

Welcher Parameter ist denn da genau ungültig? Und wie bekomme ich das Ganze funktionierend?

Vielen Dank schon einmal...

1
void Gravur_Artikelnummer_Datum_Logo_0_93::MainPage::Starte_PlanetCNC_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
2
{
3
  Status->Text = "erstelle Datei";
4

5
  FILE * pfile;
6

7
  char   s[30] = "this is a string";
8
  int numwritten;
9

10
  fopen_s(&pfile, "c:\\PlanetCNC\\test.txt", "w+t");
11

12
  fwrite(s, sizeof(char), 30, pfile);
13
  
14
  fclose(pfile);
15
}
#7530293
Lesenswert?

Da der Code ohnehin Windows-lastig ist, könntest du auch die entsprechenden Win32 APIs (OpenFile etc.) für Dateioperationen verwenden. GetLastError liefert eventuell mehr Informationen als errno. Letztlich ist Windows aber nicht mehr mein Fach.

Ansonsten: Immer die Rückgabewerte von Funktionen prüfen und verfahren, wie es in der Doku der jeweiligen API angegeben ist.

#7530340
Lesenswert?

Du verwendest doch eh schon Managed C++, warum versuchst du da unmanaged C - Code reinzuwüfeln, was eigentlich garnicht notwendig wäre? .NET kann auch so Dateien schreiben, File::Create&co aus System::IO etc...

1
File.WriteAllText("c:\\PlanetCNC\\test.txt","this is a string");

als Einzeiler?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren