<?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[Absturtz in dem Releasemodus, Debugmodus läuft]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe da folgendes Problem: Wenn ich im Debugmodus mein Programm ausführe läuft es fehlerfrei. Führe ich es aber im Releasemodus aus stürzt mir das Programm in meiner Speichern-Routine ab. Bekomme da auch bei der Kompilierung folgende<br />
Fehler:</p>
<p>LINK : warning LNK4089: Alle Verweise auf &quot;GDI32.dll&quot; wurden durch /OPT:REF verworfen<br />
LINK : warning LNK4089: Alle Verweise auf &quot;WINSPOOL.DRV&quot; wurden durch /OPT:REF verworfen</p>
<p>mein Quellcode lautet folgenderassen:</p>
<pre><code class="language-cpp">BOOL CLVErrSimDlg::SaveLogFile()
{
	int id = MessageBox(&quot;Möchten Sie diesen Test abspeichern (Ja) oder verwerfen (Nein) ?&quot;, &quot;Logfile speichern&quot;, MB_ICONQUESTION | MB_YESNO);

	switch(id)
	{
		try
		{
			case IDYES:
				{
					// Temp-File öffnen und Daten auslesen					
					CFile file;
					file.Open(m_strPathTempLogfile, CFile::modeNoTruncate | CFile::modeReadWrite);
					int length = file.GetLength();
					TCHAR* pStrTmp = new TCHAR[length+1];
					file.Read(pStrTmp, length);
					pStrTmp[length] = '\0';
					file.Close();

					// Neues Logfile erstellen falls noch nicht vorhanden
					CString strLog = m_strPathLog+&quot;\\&quot;+m_strDate+&quot;.log&quot;;
					CStdioFile fileLog(strLog, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite);

					CString strSN = &quot;keine&quot;;

					// Kopzeile reinschreiben wenn die temporäre Datei leer ist
					if(fileLog.GetLength() == 0)
					{
						CString str;
						str = &quot;Logfile vom &quot;+m_strMonthText;
						fileLog.WriteString(str);
						str = &quot;\n-----------------------------------------------------\n&quot;;
						fileLog.WriteString(str);

						// Seriennummer ins Logfile eintragen falls vorhanden
						if(m_strDeviceNum.Compare(strSN) != 0)
						{
							CString strDevNum = &quot;Geräte-Nr.: &quot;+m_strDeviceNum;
							int iDevLength = strDevNum.GetLength();
							fileLog.SeekToEnd();
							fileLog.WriteString(&quot;\n&quot;);					// nächste Zeile
							fileLog.Write(strDevNum, iDevLength);
							fileLog.SeekToEnd();
						}

						// Daten ins Logfile am Anfang schreiben
						fileLog.Write(pStrTmp, length);
					}

					else
					{
						// Seriennummer ins Logfile eintragen falls vorhanden
						if(m_strDeviceNum.Compare(strSN) != 0)
						{
							CString strDevNum = &quot;Geräte-Nr.: &quot;+m_strDeviceNum;
							int iDevLength = strDevNum.GetLength();
							fileLog.SeekToEnd();
							fileLog.WriteString(&quot;\n\n&quot;);					// nächste Zeile
							fileLog.Write(strDevNum, iDevLength);

							// Daten ins Logfile am Ende anfügen
							fileLog.SeekToEnd();
							fileLog.Write(pStrTmp, length);
						}

						else
						{
							// Daten ins Logfile am Ende anfügen
							fileLog.SeekToEnd();
							fileLog.WriteString(&quot;\n&quot;);					// nächste Zeile
							fileLog.Write(pStrTmp, length);
						}
					}

					// möglichen BCD-Anzeigefehler im Logfile dokumentieren
					if(m_dBCD_err == 17)							
					{
						fileLog.SeekToEnd();
						fileLog.WriteString(&quot;\n&quot;);					// nächste Zeile

						CString strErr = &quot;Fehler an der Sub-D Buchse !!!&quot;;
						length = strErr.GetLength();
						fileLog.Write(strErr, length);
					}

				fileLog.Close();

				// Temporäres Logfile löschen
				CFile tmpFile;
				tmpFile.Remove(m_strPathTempLogfile);
				CString buff;

				delete[] pStrTmp;
				}

				break;

			case	IDNO:
				// temporäres Logfile löschen
				CFile tmpFile;
				tmpFile.Remove(m_strPathTempLogfile);
				CString buff;
				break;
		}

		catch(CFileException* err)
		{	
			err-&gt;ReportError();
			err-&gt;Delete();
		}
	}

return 1;
}
</code></pre>
<p>weis jemand vieleicht woran das liegt ?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/55878/absturtz-in-dem-releasemodus-debugmodus-läuft</link><generator>RSS for Node</generator><lastBuildDate>Tue, 02 Jun 2026 02:41:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/55878.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Nov 2003 09:38:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Absturtz in dem Releasemodus, Debugmodus läuft on Thu, 20 Nov 2003 09:38:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe da folgendes Problem: Wenn ich im Debugmodus mein Programm ausführe läuft es fehlerfrei. Führe ich es aber im Releasemodus aus stürzt mir das Programm in meiner Speichern-Routine ab. Bekomme da auch bei der Kompilierung folgende<br />
Fehler:</p>
<p>LINK : warning LNK4089: Alle Verweise auf &quot;GDI32.dll&quot; wurden durch /OPT:REF verworfen<br />
LINK : warning LNK4089: Alle Verweise auf &quot;WINSPOOL.DRV&quot; wurden durch /OPT:REF verworfen</p>
<p>mein Quellcode lautet folgenderassen:</p>
<pre><code class="language-cpp">BOOL CLVErrSimDlg::SaveLogFile()
{
	int id = MessageBox(&quot;Möchten Sie diesen Test abspeichern (Ja) oder verwerfen (Nein) ?&quot;, &quot;Logfile speichern&quot;, MB_ICONQUESTION | MB_YESNO);

	switch(id)
	{
		try
		{
			case IDYES:
				{
					// Temp-File öffnen und Daten auslesen					
					CFile file;
					file.Open(m_strPathTempLogfile, CFile::modeNoTruncate | CFile::modeReadWrite);
					int length = file.GetLength();
					TCHAR* pStrTmp = new TCHAR[length+1];
					file.Read(pStrTmp, length);
					pStrTmp[length] = '\0';
					file.Close();

					// Neues Logfile erstellen falls noch nicht vorhanden
					CString strLog = m_strPathLog+&quot;\\&quot;+m_strDate+&quot;.log&quot;;
					CStdioFile fileLog(strLog, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite);

					CString strSN = &quot;keine&quot;;

					// Kopzeile reinschreiben wenn die temporäre Datei leer ist
					if(fileLog.GetLength() == 0)
					{
						CString str;
						str = &quot;Logfile vom &quot;+m_strMonthText;
						fileLog.WriteString(str);
						str = &quot;\n-----------------------------------------------------\n&quot;;
						fileLog.WriteString(str);

						// Seriennummer ins Logfile eintragen falls vorhanden
						if(m_strDeviceNum.Compare(strSN) != 0)
						{
							CString strDevNum = &quot;Geräte-Nr.: &quot;+m_strDeviceNum;
							int iDevLength = strDevNum.GetLength();
							fileLog.SeekToEnd();
							fileLog.WriteString(&quot;\n&quot;);					// nächste Zeile
							fileLog.Write(strDevNum, iDevLength);
							fileLog.SeekToEnd();
						}

						// Daten ins Logfile am Anfang schreiben
						fileLog.Write(pStrTmp, length);
					}

					else
					{
						// Seriennummer ins Logfile eintragen falls vorhanden
						if(m_strDeviceNum.Compare(strSN) != 0)
						{
							CString strDevNum = &quot;Geräte-Nr.: &quot;+m_strDeviceNum;
							int iDevLength = strDevNum.GetLength();
							fileLog.SeekToEnd();
							fileLog.WriteString(&quot;\n\n&quot;);					// nächste Zeile
							fileLog.Write(strDevNum, iDevLength);

							// Daten ins Logfile am Ende anfügen
							fileLog.SeekToEnd();
							fileLog.Write(pStrTmp, length);
						}

						else
						{
							// Daten ins Logfile am Ende anfügen
							fileLog.SeekToEnd();
							fileLog.WriteString(&quot;\n&quot;);					// nächste Zeile
							fileLog.Write(pStrTmp, length);
						}
					}

					// möglichen BCD-Anzeigefehler im Logfile dokumentieren
					if(m_dBCD_err == 17)							
					{
						fileLog.SeekToEnd();
						fileLog.WriteString(&quot;\n&quot;);					// nächste Zeile

						CString strErr = &quot;Fehler an der Sub-D Buchse !!!&quot;;
						length = strErr.GetLength();
						fileLog.Write(strErr, length);
					}

				fileLog.Close();

				// Temporäres Logfile löschen
				CFile tmpFile;
				tmpFile.Remove(m_strPathTempLogfile);
				CString buff;

				delete[] pStrTmp;
				}

				break;

			case	IDNO:
				// temporäres Logfile löschen
				CFile tmpFile;
				tmpFile.Remove(m_strPathTempLogfile);
				CString buff;
				break;
		}

		catch(CFileException* err)
		{	
			err-&gt;ReportError();
			err-&gt;Delete();
		}
	}

return 1;
}
</code></pre>
<p>weis jemand vieleicht woran das liegt ?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/398546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/398546</guid><dc:creator><![CDATA[mike2003]]></dc:creator><pubDate>Thu, 20 Nov 2003 09:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to Absturtz in dem Releasemodus, Debugmodus läuft on Thu, 20 Nov 2003 10:20:29 GMT]]></title><description><![CDATA[<p>Schau mal in die FAQ.</p>
<p>Meist liegt es an nicht initialisierten Variablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/398578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/398578</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Thu, 20 Nov 2003 10:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to Absturtz in dem Releasemodus, Debugmodus läuft on Thu, 20 Nov 2003 10:25:44 GMT]]></title><description><![CDATA[<p>Habe alle Variablen und Zeiger vorinitialisiert bis auf Klassenvariablen wie CString, CFile, CStdioFile etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/398580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/398580</guid><dc:creator><![CDATA[mike2003]]></dc:creator><pubDate>Thu, 20 Nov 2003 10:25:44 GMT</pubDate></item></channel></rss>