<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[WriteFile Laufzeit Fehler]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich will mit WriteFile etwas in ne Datei schreiben und bekomme zwar keine Compilerfehler, aber während der Laufzeit kommt einer. Jetzt hab ich mal den Debugger angeschmissen und der kann mir auch nichts genaueres sagen!</p>
<p>Der Fehlerhafte Code ist folgender:</p>
<pre><code class="language-cpp">DWORD mdFileHeader = 0xFFFFFF;
	char *mdFileName = &quot;testmodel&quot;;

	WriteFile(hMDFile, (LPCVOID)mdFileName, 12*sizeof(char), NULL, NULL); //&lt;! FEHLER!!
	WriteFile(hMDFile, (LPCVOID)mdFileHeader, sizeof(LPCVOID), NULL, NULL);
</code></pre>
<p>Die zu schreibenden Bytes hab ich absichtlich auf 12*sizeof(char)gesetzt um die Fehlerquelle auszuschließen! Es geht auch mit sizeof(LPCVOID) nicht!</p>
<p>Fehler ist folgender:<br />
Eine Ausnahme (erste Chance) bei 0x7c811024 in SceneGraphManager.exe: 0xC0000005: Zugriffsverletzung-Schreibposition 0x00000000.</p>
<p>Aber ich hab keinen Plan, was ich dagegen tun soll! Das File Handle ist auf jeden Fall korrekt und die Datei existiert auch mit gegebenem Inhalt... nur nachdem sie geschrieben wurde, bleibt das Programm hängen!</p>
<p>Hat hier jemand schon ähnliches erlebt und behoben?!</p>
<p>Ich bedank mich im Voraus für die Antworten!</p>
<p>lg, WirrWar2850.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/216211/writefile-laufzeit-fehler</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 15:25:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/216211.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Jun 2008 16:52:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WriteFile Laufzeit Fehler on Fri, 20 Jun 2008 16:52:51 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich will mit WriteFile etwas in ne Datei schreiben und bekomme zwar keine Compilerfehler, aber während der Laufzeit kommt einer. Jetzt hab ich mal den Debugger angeschmissen und der kann mir auch nichts genaueres sagen!</p>
<p>Der Fehlerhafte Code ist folgender:</p>
<pre><code class="language-cpp">DWORD mdFileHeader = 0xFFFFFF;
	char *mdFileName = &quot;testmodel&quot;;

	WriteFile(hMDFile, (LPCVOID)mdFileName, 12*sizeof(char), NULL, NULL); //&lt;! FEHLER!!
	WriteFile(hMDFile, (LPCVOID)mdFileHeader, sizeof(LPCVOID), NULL, NULL);
</code></pre>
<p>Die zu schreibenden Bytes hab ich absichtlich auf 12*sizeof(char)gesetzt um die Fehlerquelle auszuschließen! Es geht auch mit sizeof(LPCVOID) nicht!</p>
<p>Fehler ist folgender:<br />
Eine Ausnahme (erste Chance) bei 0x7c811024 in SceneGraphManager.exe: 0xC0000005: Zugriffsverletzung-Schreibposition 0x00000000.</p>
<p>Aber ich hab keinen Plan, was ich dagegen tun soll! Das File Handle ist auf jeden Fall korrekt und die Datei existiert auch mit gegebenem Inhalt... nur nachdem sie geschrieben wurde, bleibt das Programm hängen!</p>
<p>Hat hier jemand schon ähnliches erlebt und behoben?!</p>
<p>Ich bedank mich im Voraus für die Antworten!</p>
<p>lg, WirrWar2850.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1532957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532957</guid><dc:creator><![CDATA[WirrWar2850]]></dc:creator><pubDate>Fri, 20 Jun 2008 16:52:51 GMT</pubDate></item><item><title><![CDATA[Reply to WriteFile Laufzeit Fehler on Fri, 20 Jun 2008 17:22:51 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">DWORD dwMdFileHeader = 0xFFFFFF;
TCHAR szMdFileName[] = TEXT(&quot;testmodel&quot;);
DWORD dwWrittenBytes = 0;

BOOL fOkay = WriteFile(hMDFile, szMdFileName, lstrlen(szMdFileName) * sizeof(szMdFileName[0]), &amp;dwWrittenBytes, NULL);
if(!fOkay || dwWrittenBytes != lstrlen(szMdFileName) * sizeof(szMdFileName[0]))
   // Fehler...
fOkay = WriteFile(hMDFile, (LPCVOID)&amp;dwMdFileHeader, sizeof(dwMdFileHeader), &amp;dwWrittenBytes, NULL);
if(!fOkay || dwWrittenBytes != sizeof(dwMdFileHeader))
   // Fehler...
</code></pre>
<p>Edit: Wobei hier die Null-Terminierung nicht mit in die Datei geschrieben wird - muss man halt beim Auslesen beachten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1532963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532963</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 20 Jun 2008 17:22:51 GMT</pubDate></item><item><title><![CDATA[Reply to WriteFile Laufzeit Fehler on Sat, 21 Jun 2008 10:17:34 GMT]]></title><description><![CDATA[<p>Okay...</p>
<p>Vielen Dank! Es funktioniert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> .</p>
<p>Aber woran lag das jetzt? War einfach meine Anzahl an zu schreibenden Bytes falsch? Oder war da noch mehr?</p>
<p>Ich würde das Problem auch gerne verstehen, wenn ich auch äußerst dankbar bin, dass du es gelöst hast <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> .</p>
<p>lg, WirrWar2850.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1533191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1533191</guid><dc:creator><![CDATA[WirrWar2850]]></dc:creator><pubDate>Sat, 21 Jun 2008 10:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to WriteFile Laufzeit Fehler on Sat, 21 Jun 2008 13:57:02 GMT]]></title><description><![CDATA[<p>Deine Zeichenkette mdFileName enthält 9 Zeichen, 10 sind es mit dem abschließenden NULL-Zeichen. Bei WriteFile hast Du aber angegeben, dass 12 Zeichen geschrieben werden sollen. Damit versucht WriteFile, die sich im Speicher der Zeichenkette anschließenden 2 Zeichen zu schreiben. Das ging in die Hose und deshalb die Zugriffsverletzung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1533255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1533255</guid><dc:creator><![CDATA[sri]]></dc:creator><pubDate>Sat, 21 Jun 2008 13:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to WriteFile Laufzeit Fehler on Sat, 21 Jun 2008 16:45:10 GMT]]></title><description><![CDATA[<p>Ich würde mal sagen der Fehler war dass er 0 als &quot;pdwBytesWritten&quot; mitgegeben hat. In der Doku steht zwar als Typ &quot;out optional&quot;, aber die Adresse (0) und die Zugriffsart (schreiben) in der Fehlermeldung sprechen eher dafür. Und es wäre nicht das erste mal dass in der MSDN ne Funktion falsch dokumentiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1533333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1533333</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 21 Jun 2008 16:45:10 GMT</pubDate></item><item><title><![CDATA[Reply to WriteFile Laufzeit Fehler on Sat, 21 Jun 2008 21:36:15 GMT]]></title><description><![CDATA[<p>Okay, ich schätze mal, der Parameter pdwBytesWritten gibt mir dann zurück, wie viele Bytes tatsächlich geschrieben wurden. Da is dies aber manchmal gar nich wissen will (außer natürlich, die Funktion is so unzuverlässig, dass dies einer ständigen Kontrolle bedarf), isses nur ein zusätzlicher Aufwand und wäre wohl in einer Klasse am besten aufgehoben!</p>
<p>Ich dank euch allen, dass ihr mein Verständnis einer in meinen Augen nützlichen WinAPI Funktion erweitert habt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> .</p>
<p>lg, WirrWar2805.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1533436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1533436</guid><dc:creator><![CDATA[WirrWar2850]]></dc:creator><pubDate>Sat, 21 Jun 2008 21:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to WriteFile Laufzeit Fehler on Sat, 21 Jun 2008 23:38:36 GMT]]></title><description><![CDATA[<p>MSDN schrieb:</p>
<blockquote>
<p>lpNumberOfBytesWritten [out, optional]</p>
<p>A pointer to the variable that receives the number of bytes written when using a synchronous hFile parameter. WriteFile sets this value to zero before doing any work or error checking. Use NULL for this parameter if this is an asynchronous operation to avoid potentially erroneous results.</p>
<p><strong>This parameter can be NULL <em>only</em> when the lpOverlapped parameter is not NULL.</strong></p>
<p>For more information, see the Remarks section.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1533490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1533490</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 21 Jun 2008 23:38:36 GMT</pubDate></item><item><title><![CDATA[Reply to WriteFile Laufzeit Fehler on Sun, 22 Jun 2008 00:03:06 GMT]]></title><description><![CDATA[<p>Hupps, OK, dann ist es NICHT falsch dokumentiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1533503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1533503</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 22 Jun 2008 00:03:06 GMT</pubDate></item></channel></rss>