<?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[Fehler im Code Checksum]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade dabei im meinem Praktikum ein C-Programm zu schreiben. Ich verwende Visual C++ 6.0.<br />
Ich habe nun in das Programm in der Klasse CTestDlg eine Funktion Namens int Checksum (char File[255]) hinzugefügt. Diese Funktion habe ich von meinem Betreuer bekommen und soll verwendet werden, um die Checksumme einer Binärdatei zu berechnen. Der Dateiname inklusive Pfad wird als Parameter (File[255]) der Funktion übergeben.</p>
<p>Mein Problem ist jetzt, das beim Funktionsaufruf sich das Programm aufhängt bzw. folgenden Fehler bringt:<br />
Thread 0x3B8 wurde mit Code 0 (0x0) beendet.<br />
Thread 0xE28 wurde mit Code 0 (0x0) beendet.</p>
<p>Das einzige das ich an dem Code geändert habe ist folgendes:<br />
ulFileSize = GetFileSize(hFile); IN ulFileSize = GetFileSize(hFile, NULL); WEIL ich eine Fehlermedlung bekommen habe.</p>
<p>Zusätzlich bekomm ich eine Fehlermeldung wenn ich folgendes in der Funktion stehen habe:<br />
MessageBox(&quot;Quelldatei kann nicht geöffnet werden!&quot;, &quot;Fehler&quot;, MB_OK);</p>
<p>Fehermeldung:<br />
error C2660: 'MessageBoxA' : Funktion akzeptiert keine 3 Parameter</p>
<p>Wenn ich allerdings nur einen oder zwei Parameter verwende, kommt dieselbe Fehlermeldung mit der entsprechenden Parameterzahl.</p>
<p>Kann mir jemand bei meinem Problem helfen?</p>
<p>Hier noch der Code:</p>
<pre><code class="language-cpp">int Checksum(char szFile[255])
{
	int		iRetVal;	// return value (checksum)
	unsigned short  *pBuffer,	// pointer to buffer
                       	Byte1,		// hex numbers
                        Byte2;
	unsigned int    uiLoop;		// loop counter
	FILE            *hFile;		// file handle
	unsigned short  buffer[500000]; // buffer for file contents
	long		lArrayAdr;
	unsigned long   ulFileSize;	// size of source file

	// initialize buffer
	memset(buffer, 0, 256);

   	// open file read-only and binary
   	if((hFile = fopen(szFile,&quot;rb&quot;)) == NULL)
   	{
   		MessageBox(&quot;Quelldatei kann nicht geöffnet werden!&quot;, &quot;Fehler&quot;, MB_OK);
      		iRetVal = -1;
   	}
   	else
   	{
   		// get file size
      		ulFileSize = GetFileSize(hFile, NULL);
      		// read 16-bit values into array
	      	fread(buffer, sizeof(short), ulFileSize, hFile);
      		// swap bytes and add them
      		for(uiLoop = 0; uiLoop &lt;= (ulFileSize&gt;&gt;1); uiLoop++)
      		{
      			Byte1 = buffer[uiLoop] &amp; 0x00ff;
         		Byte2 = buffer[uiLoop] &amp; 0xff00;
		        Byte2 &gt;&gt;= 8;
         		buffer[uiLoop] = Byte2 + (Byte1 * 0x0100);
      		}

      		// set pointer to address of first element in array
      		pBuffer = &amp;buffer[0];
      		lArrayAdr = (long)pBuffer;

      		iRetVal = CalcCRC(pBuffer, ulFileSize, lArrayAdr);	

      		fclose(hFile);
   }
   return iRetVal;
}
</code></pre>
<p>Gruß Zizou</p>
<p>Mod-Edit: Ich war mal so frei, deinen Quelltext vernünftig zu formatieren. mfG CStoll</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187546/fehler-im-code-checksum</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 12:43:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187546.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Jul 2007 16:49:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler im Code Checksum on Mon, 23 Jul 2007 08:07:31 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade dabei im meinem Praktikum ein C-Programm zu schreiben. Ich verwende Visual C++ 6.0.<br />
Ich habe nun in das Programm in der Klasse CTestDlg eine Funktion Namens int Checksum (char File[255]) hinzugefügt. Diese Funktion habe ich von meinem Betreuer bekommen und soll verwendet werden, um die Checksumme einer Binärdatei zu berechnen. Der Dateiname inklusive Pfad wird als Parameter (File[255]) der Funktion übergeben.</p>
<p>Mein Problem ist jetzt, das beim Funktionsaufruf sich das Programm aufhängt bzw. folgenden Fehler bringt:<br />
Thread 0x3B8 wurde mit Code 0 (0x0) beendet.<br />
Thread 0xE28 wurde mit Code 0 (0x0) beendet.</p>
<p>Das einzige das ich an dem Code geändert habe ist folgendes:<br />
ulFileSize = GetFileSize(hFile); IN ulFileSize = GetFileSize(hFile, NULL); WEIL ich eine Fehlermedlung bekommen habe.</p>
<p>Zusätzlich bekomm ich eine Fehlermeldung wenn ich folgendes in der Funktion stehen habe:<br />
MessageBox(&quot;Quelldatei kann nicht geöffnet werden!&quot;, &quot;Fehler&quot;, MB_OK);</p>
<p>Fehermeldung:<br />
error C2660: 'MessageBoxA' : Funktion akzeptiert keine 3 Parameter</p>
<p>Wenn ich allerdings nur einen oder zwei Parameter verwende, kommt dieselbe Fehlermeldung mit der entsprechenden Parameterzahl.</p>
<p>Kann mir jemand bei meinem Problem helfen?</p>
<p>Hier noch der Code:</p>
<pre><code class="language-cpp">int Checksum(char szFile[255])
{
	int		iRetVal;	// return value (checksum)
	unsigned short  *pBuffer,	// pointer to buffer
                       	Byte1,		// hex numbers
                        Byte2;
	unsigned int    uiLoop;		// loop counter
	FILE            *hFile;		// file handle
	unsigned short  buffer[500000]; // buffer for file contents
	long		lArrayAdr;
	unsigned long   ulFileSize;	// size of source file

	// initialize buffer
	memset(buffer, 0, 256);

   	// open file read-only and binary
   	if((hFile = fopen(szFile,&quot;rb&quot;)) == NULL)
   	{
   		MessageBox(&quot;Quelldatei kann nicht geöffnet werden!&quot;, &quot;Fehler&quot;, MB_OK);
      		iRetVal = -1;
   	}
   	else
   	{
   		// get file size
      		ulFileSize = GetFileSize(hFile, NULL);
      		// read 16-bit values into array
	      	fread(buffer, sizeof(short), ulFileSize, hFile);
      		// swap bytes and add them
      		for(uiLoop = 0; uiLoop &lt;= (ulFileSize&gt;&gt;1); uiLoop++)
      		{
      			Byte1 = buffer[uiLoop] &amp; 0x00ff;
         		Byte2 = buffer[uiLoop] &amp; 0xff00;
		        Byte2 &gt;&gt;= 8;
         		buffer[uiLoop] = Byte2 + (Byte1 * 0x0100);
      		}

      		// set pointer to address of first element in array
      		pBuffer = &amp;buffer[0];
      		lArrayAdr = (long)pBuffer;

      		iRetVal = CalcCRC(pBuffer, ulFileSize, lArrayAdr);	

      		fclose(hFile);
   }
   return iRetVal;
}
</code></pre>
<p>Gruß Zizou</p>
<p>Mod-Edit: Ich war mal so frei, deinen Quelltext vernünftig zu formatieren. mfG CStoll</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329407</guid><dc:creator><![CDATA[Zizou]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:07:31 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Fri, 20 Jul 2007 23:21:03 GMT]]></title><description><![CDATA[<p>Verwende Code Tags.<br />
MessageBox braucht 4 Parameter, guck das in der MSDN nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329564</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 20 Jul 2007 23:21:03 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Sat, 21 Jul 2007 14:44:58 GMT]]></title><description><![CDATA[<p>Um MessageBox() in dieser Funktion zu verwenden, musst du entweder die gesamte Funktion als Member deiner CTestDlg Klasse deklarieren oder du übergibst der MessageBox auch einfach so das Handle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329817</guid><dc:creator><![CDATA[dfgidga]]></dc:creator><pubDate>Sat, 21 Jul 2007 14:44:58 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Sat, 21 Jul 2007 18:04:38 GMT]]></title><description><![CDATA[<p>Sorry,<br />
aber ich bin Anfänger.<br />
Was sind Code Tags bzw. wie würden die mir helfen?</p>
<p>Gruß Zizou</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329919</guid><dc:creator><![CDATA[Zizou]]></dc:creator><pubDate>Sat, 21 Jul 2007 18:04:38 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Sat, 21 Jul 2007 20:34:13 GMT]]></title><description><![CDATA[<p>Code Tags sorgen dafür, dass dein Code hier im Forum zumindest ordentlich dargestellt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329985</guid><dc:creator><![CDATA[adfü]]></dc:creator><pubDate>Sat, 21 Jul 2007 20:34:13 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Sun, 22 Jul 2007 09:03:23 GMT]]></title><description><![CDATA[<p>Hallo,<br />
alles klar. Werd nächstes mal Code Tags verwenden.</p>
<p>Kann mir jemand bei meinem eigentlichen Problem helfen, warum die Funktion nicht funktioniert?</p>
<p>Gruß Zizou</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330092</guid><dc:creator><![CDATA[Zizou]]></dc:creator><pubDate>Sun, 22 Jul 2007 09:03:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Sun, 22 Jul 2007 10:52:59 GMT]]></title><description><![CDATA[<p>Also dann zitiere ich mich mal selbst:</p>
<p>dfgidga schrieb:</p>
<blockquote>
<p>Um MessageBox() in dieser Funktion zu verwenden, musst du entweder die gesamte Funktion als Member deiner CTestDlg Klasse deklarieren oder du übergibst der MessageBox auch einfach so das Handle.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1330154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330154</guid><dc:creator><![CDATA[adsgß0fasf]]></dc:creator><pubDate>Sun, 22 Jul 2007 10:52:59 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Sun, 22 Jul 2007 12:24:33 GMT]]></title><description><![CDATA[<p>Hallo,<br />
dann zitier ich mich halt auch mal selbst:</p>
<p>Zizou schrieb:</p>
<blockquote>
<p>Mein Problem ist jetzt, das beim Funktionsaufruf sich das Programm aufhängt bzw. folgenden Fehler bringt:<br />
Thread 0x3B8 wurde mit Code 0 (0x0) beendet.<br />
Thread 0xE28 wurde mit Code 0 (0x0) beendet.</p>
<p>Das einzige das ich an dem Code geändert habe ist folgendes:<br />
ulFileSize = GetFileSize(hFile); IN ulFileSize = GetFileSize(hFile, NULL); WEIL ich eine Fehlermedlung bekommen habe.</p>
</blockquote>
<p>Kann das an der Methode GetFileSize liegen?</p>
<p>Gruß Zizou</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330200</guid><dc:creator><![CDATA[Zizou]]></dc:creator><pubDate>Sun, 22 Jul 2007 12:24:33 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Sun, 22 Jul 2007 16:54:06 GMT]]></title><description><![CDATA[<p>Nein, es liegt nicht an deiner Änderung, es liegt vermutlich daran dass du den Code aus einer Klasse rauskopiert hast die von CWnd abgeleitet ist.</p>
<p>Lies es bitte einfach in der MSDN nach.<br />
Falls du Visual Studio verwendest drück einfach mal F1, falls du nen anderen Compiler verwendest: <a href="http://msdn.microsoft.com/" rel="nofollow">http://msdn.microsoft.com/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330309</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 22 Jul 2007 16:54:06 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Mon, 23 Jul 2007 08:00:20 GMT]]></title><description><![CDATA[<p>Es könnte auch problematisch sein, daß ein FILE* etwas anderes ist als ein HANDLE <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> (GetFileSize() erwartet letzteres).</p>
<p>PS: Was die Mitteilungen &quot;Thread xyz wurde beendet&quot; mit deinem Problem zu tun haben, bin ich leider überfragt - vermutlich gar nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330577</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:00:20 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Wed, 25 Jul 2007 15:38:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin immer noch an meinem Problem mit der Dateigröße.<br />
unsigned long ulFileSize = GetFileSize(hFile, NULL);</p>
<p>Hab herausgefunden bzw. bemerkt, dass hier immer der gleiche Wert übergeben wird: 4294967295</p>
<p>Dadurch das der Wert so groß ist, hängt sich das Programm auf.</p>
<p>Aber warum bekomme ich da einen falschen Wert? (meine Dateien sind max. 6KB groß)</p>
<p>Es kann nur noch an diesem Befehl liegen, denn mit einem konstanten Wert funktioniert das Programm.</p>
<p>Gruß Zizou</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1332419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1332419</guid><dc:creator><![CDATA[Zizou]]></dc:creator><pubDate>Wed, 25 Jul 2007 15:38:57 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Wed, 25 Jul 2007 16:52:52 GMT]]></title><description><![CDATA[<p>Ja, es liegt an diesem Befehl - genauer gesagt daran, daß du ihm die falschen Parameter übergibst. GetFileSize() erwartet ein Datei-Handle (das bekommst du z.B. von CreateFile()), keinen FILE*. (und wenn ich raten müsste, würde ich sagen, daß GetLastError() sowas wie &quot;Invalid Handle&quot; ausspucken dürfte)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1332474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1332474</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 25 Jul 2007 16:52:52 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im Code Checksum on Wed, 25 Jul 2007 19:42:28 GMT]]></title><description><![CDATA[<p>Bau mit fseek und ftell ein &quot;kompatibles&quot; GetFileSize.<br />
<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/1332550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1332550</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 25 Jul 2007 19:42:28 GMT</pubDate></item></channel></rss>