<?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 bei Start ohne Debugger, kein Fehler mit Debugger]]></title><description><![CDATA[<p>Hi!<br />
I bin am verzweifeln!<br />
Ich habe ein Programm mit Visual C++ 2005 Express geschrieben, welches eine Datenbank von Personen erstellen soll.<br />
Dazu habe ich eine Art Menü geschrieben, wobei beim Menü 2 Arten von Punkten existieren:<br />
Die erste Möglichkeit ist nur ein Menüpunkt zum Auswählen.<br />
Die zweite Möglichkeit: Ein Menüpunkt, wobei rechts neben dem Menüpunkt Daten eingegeben werden.<br />
Doch hier liegt der Fehler:<br />
Starte ich das Programm ohne Debuggen (Strg+F5), so wird eine Fehlermeldung ausgegeben, wobei aber nicht der Fehler bechrieben wird.<br />
Starte ich das Programm mit Debuggen (F5) so wird keine Fehlermeldung ausgegeben.<br />
Das Menü ist wie folgt aufgebaut:</p>
<pre><code class="language-cpp">//Menu.h

struct menuItems
{
	char * ItemName;
	bool ReadIn;
	char * ReadData;
};

class menu
{
public:
	menuItems * menuList;
	int showMenu(void);
	int ItemsCount;
	bool createMenuItem(char* ItemName, bool ReadIn, char * ReadData, int Index);
	char * MenuTitle;
private:
	void DrawMenu(void);
	enum arrowMove{up, down};
	void moveArrow(arrowMove way);
};
</code></pre>
<p>In der Funktion DrawMenu wird der Fehler bei<br />
cout &lt;&lt; menuList[i].ReadData;<br />
verursacht:</p>
<pre><code class="language-cpp">//Menu.cpp

void menu::DrawMenu(void)
{
	system(&quot;cls&quot;);
	setColor(clDarklila, clBlack);
	cout &lt;&lt; &quot;\n\n\n\n\t\t\t\t&quot; &lt;&lt; MenuTitle &lt;&lt; &quot;\n\n&quot;;
	setColor(clGray, clBlack);
	for (int i=0; i&lt;ItemsCount; i++)
	{
		if (i==selected)
		{
			cout &lt;&lt; &quot;\t\t\t &quot;;
			setColor(clGreen, clBlack);
			cout &lt;&lt; arrowFwd;
			setColor(clGray, clBlack);
			cout &lt;&lt; &quot; &quot;;
			setColor(clRed, clBlack);
			cout &lt;&lt; menuList[i].ItemName;
			if (menuList[i].ReadIn)
			{
				setColor(clGray, clBlack);
				cout &lt;&lt; &quot;: &quot;;
				setColor(clYellow, clBlue);
				cout &lt;&lt; menuList[i].ReadData;
			}
			setColor(clGray, clBlack);
			cout &lt;&lt; &quot; &quot;;
			setColor(clGreen, clBlack);
			cout &lt;&lt; arrowBck &lt;&lt; endl;
		}
		else
		{
			cout &lt;&lt; &quot;\t\t\t   &quot;&lt;&lt; menuList[i].ItemName;
			if (menuList[i].ReadIn)
			{
				setColor(clGray, clBlack);
				cout &lt;&lt; &quot;: &quot;;
				setColor(clGreen, clBlue);
				cout &lt;&lt; menuList[i].ReadData;

			}
			cout &lt;&lt; endl;
		}
		setColor(clGray, clBlack);
	}
}
</code></pre>
<p>Das Menü wird wie folgt erstellt:</p>
<pre><code class="language-cpp">//Main.cpp

//aufruf:

int main()
{
	int choice;
	MainMenu.MenuTitle = &quot;Hauptmenue&quot;;
	MainMenu.createMenuItem(&quot;Test&quot;, false, &quot;&quot;, 0);
	MainMenu.createMenuItem(&quot;Test1&quot;, true, &quot;Hallo&quot;, 1);
	MainMenu.showMenu();
}

//Menu.cpp

void menu::moveArrow(arrowMove way)
{
	if (way == up)
	{
		if (selected == 0)
			selected = ItemsCount -1;
		else
			selected--;
	}
	if (way == down)
	{
		if (selected == ItemsCount-1)
			selected = 0;
		else
			selected++;
	}
}

int menu::showMenu(void)
{
	DrawMenu();
	char taste;
	do
	{
		do
		{
			taste=(int)_getch();
		}
		while ((taste != 80) &amp;&amp; (taste != 72) &amp;&amp; (taste != 13));
		switch(taste)
		{
			case 80: moveArrow(down); break;
			case 72: moveArrow(up); break;
		}
		DrawMenu();

	}
	while (taste!=13);
	return selected;
}

bool menu::createMenuItem(char *ItemName, bool ReadIn, char *ReadData, int Index)
{
	if (ItemsCount &lt; Index-1)
	return false;
	if (ItemsCount == Index)
	{
		menuItems* bufList = (menuItems*) malloc(sizeof(menuList));
		for (int i=0; i&lt;ItemsCount; i++)
		{
			bufList[i] = menuList[i];
		}
		menuList = (menuItems*) malloc(sizeof(menuList) + sizeof(menuItems));
		for (int i=0; i&lt;ItemsCount; i++)
		{
			menuList[i]=bufList[i];
		}
		ItemsCount++;
	}
	menuList[Index].ItemName = ItemName;
	menuList[Index].ReadIn = ReadIn;
	menuList[Index].ReadData = ReadData;
	return true;
}
</code></pre>
<p>Wenn ich in der Funktion DrawMenu die Zeile<br />
cout &lt;&lt; menuList[i].ReadData;<br />
mit<br />
cout &lt;&lt; &quot;test&quot;;<br />
ersetzte, wird kein Fehler ausgegeben.</p>
<p>Kann mir jemand helfen?<br />
Danke</p>
<p>Edit:<br />
Beim Kopmilieren kommt folgende Fehlermeldung:<br />
LINK : ...\Visual Studio 2005\Projects\NameDatabase\Debug\NameDatabase.exe not found or not built by the last incremental link; performing full link<br />
Embedding manifest...</p>
<p>Guckst Du:</p>
<pre><code>------ Build started: Project: NameDatabase, Configuration: Debug Win32 ------
Linking...
LINK : c:\Visual Studio 2005\Projects\NameDatabase\Debug\NameDatabase.exe not found or not built by the last incremental link; performing full link
Embedding manifest...
Build log was saved at &quot;file://c:\Visual Studio 2005\Projects\NameDatabase\NameDatabase\Debug\BuildLog.htm&quot;
NameDatabase - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/173333/fehler-bei-start-ohne-debugger-kein-fehler-mit-debugger</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 22:18:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173333.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Feb 2007 11:25:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler bei Start ohne Debugger, kein Fehler mit Debugger on Tue, 15 May 2007 08:07:16 GMT]]></title><description><![CDATA[<p>Hi!<br />
I bin am verzweifeln!<br />
Ich habe ein Programm mit Visual C++ 2005 Express geschrieben, welches eine Datenbank von Personen erstellen soll.<br />
Dazu habe ich eine Art Menü geschrieben, wobei beim Menü 2 Arten von Punkten existieren:<br />
Die erste Möglichkeit ist nur ein Menüpunkt zum Auswählen.<br />
Die zweite Möglichkeit: Ein Menüpunkt, wobei rechts neben dem Menüpunkt Daten eingegeben werden.<br />
Doch hier liegt der Fehler:<br />
Starte ich das Programm ohne Debuggen (Strg+F5), so wird eine Fehlermeldung ausgegeben, wobei aber nicht der Fehler bechrieben wird.<br />
Starte ich das Programm mit Debuggen (F5) so wird keine Fehlermeldung ausgegeben.<br />
Das Menü ist wie folgt aufgebaut:</p>
<pre><code class="language-cpp">//Menu.h

struct menuItems
{
	char * ItemName;
	bool ReadIn;
	char * ReadData;
};

class menu
{
public:
	menuItems * menuList;
	int showMenu(void);
	int ItemsCount;
	bool createMenuItem(char* ItemName, bool ReadIn, char * ReadData, int Index);
	char * MenuTitle;
private:
	void DrawMenu(void);
	enum arrowMove{up, down};
	void moveArrow(arrowMove way);
};
</code></pre>
<p>In der Funktion DrawMenu wird der Fehler bei<br />
cout &lt;&lt; menuList[i].ReadData;<br />
verursacht:</p>
<pre><code class="language-cpp">//Menu.cpp

void menu::DrawMenu(void)
{
	system(&quot;cls&quot;);
	setColor(clDarklila, clBlack);
	cout &lt;&lt; &quot;\n\n\n\n\t\t\t\t&quot; &lt;&lt; MenuTitle &lt;&lt; &quot;\n\n&quot;;
	setColor(clGray, clBlack);
	for (int i=0; i&lt;ItemsCount; i++)
	{
		if (i==selected)
		{
			cout &lt;&lt; &quot;\t\t\t &quot;;
			setColor(clGreen, clBlack);
			cout &lt;&lt; arrowFwd;
			setColor(clGray, clBlack);
			cout &lt;&lt; &quot; &quot;;
			setColor(clRed, clBlack);
			cout &lt;&lt; menuList[i].ItemName;
			if (menuList[i].ReadIn)
			{
				setColor(clGray, clBlack);
				cout &lt;&lt; &quot;: &quot;;
				setColor(clYellow, clBlue);
				cout &lt;&lt; menuList[i].ReadData;
			}
			setColor(clGray, clBlack);
			cout &lt;&lt; &quot; &quot;;
			setColor(clGreen, clBlack);
			cout &lt;&lt; arrowBck &lt;&lt; endl;
		}
		else
		{
			cout &lt;&lt; &quot;\t\t\t   &quot;&lt;&lt; menuList[i].ItemName;
			if (menuList[i].ReadIn)
			{
				setColor(clGray, clBlack);
				cout &lt;&lt; &quot;: &quot;;
				setColor(clGreen, clBlue);
				cout &lt;&lt; menuList[i].ReadData;

			}
			cout &lt;&lt; endl;
		}
		setColor(clGray, clBlack);
	}
}
</code></pre>
<p>Das Menü wird wie folgt erstellt:</p>
<pre><code class="language-cpp">//Main.cpp

//aufruf:

int main()
{
	int choice;
	MainMenu.MenuTitle = &quot;Hauptmenue&quot;;
	MainMenu.createMenuItem(&quot;Test&quot;, false, &quot;&quot;, 0);
	MainMenu.createMenuItem(&quot;Test1&quot;, true, &quot;Hallo&quot;, 1);
	MainMenu.showMenu();
}

//Menu.cpp

void menu::moveArrow(arrowMove way)
{
	if (way == up)
	{
		if (selected == 0)
			selected = ItemsCount -1;
		else
			selected--;
	}
	if (way == down)
	{
		if (selected == ItemsCount-1)
			selected = 0;
		else
			selected++;
	}
}

int menu::showMenu(void)
{
	DrawMenu();
	char taste;
	do
	{
		do
		{
			taste=(int)_getch();
		}
		while ((taste != 80) &amp;&amp; (taste != 72) &amp;&amp; (taste != 13));
		switch(taste)
		{
			case 80: moveArrow(down); break;
			case 72: moveArrow(up); break;
		}
		DrawMenu();

	}
	while (taste!=13);
	return selected;
}

bool menu::createMenuItem(char *ItemName, bool ReadIn, char *ReadData, int Index)
{
	if (ItemsCount &lt; Index-1)
	return false;
	if (ItemsCount == Index)
	{
		menuItems* bufList = (menuItems*) malloc(sizeof(menuList));
		for (int i=0; i&lt;ItemsCount; i++)
		{
			bufList[i] = menuList[i];
		}
		menuList = (menuItems*) malloc(sizeof(menuList) + sizeof(menuItems));
		for (int i=0; i&lt;ItemsCount; i++)
		{
			menuList[i]=bufList[i];
		}
		ItemsCount++;
	}
	menuList[Index].ItemName = ItemName;
	menuList[Index].ReadIn = ReadIn;
	menuList[Index].ReadData = ReadData;
	return true;
}
</code></pre>
<p>Wenn ich in der Funktion DrawMenu die Zeile<br />
cout &lt;&lt; menuList[i].ReadData;<br />
mit<br />
cout &lt;&lt; &quot;test&quot;;<br />
ersetzte, wird kein Fehler ausgegeben.</p>
<p>Kann mir jemand helfen?<br />
Danke</p>
<p>Edit:<br />
Beim Kopmilieren kommt folgende Fehlermeldung:<br />
LINK : ...\Visual Studio 2005\Projects\NameDatabase\Debug\NameDatabase.exe not found or not built by the last incremental link; performing full link<br />
Embedding manifest...</p>
<p>Guckst Du:</p>
<pre><code>------ Build started: Project: NameDatabase, Configuration: Debug Win32 ------
Linking...
LINK : c:\Visual Studio 2005\Projects\NameDatabase\Debug\NameDatabase.exe not found or not built by the last incremental link; performing full link
Embedding manifest...
Build log was saved at &quot;file://c:\Visual Studio 2005\Projects\NameDatabase\NameDatabase\Debug\BuildLog.htm&quot;
NameDatabase - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1228620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228620</guid><dc:creator><![CDATA[PinkoPalino]]></dc:creator><pubDate>Tue, 15 May 2007 08:07:16 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei Start ohne Debugger, kein Fehler mit Debugger on Wed, 14 Feb 2007 12:20:19 GMT]]></title><description><![CDATA[<p>Und wir dürfen jetzt raten, wie die Fehlermeldung lautet?</p>
<p>Ich sehe auf die Schnelle nur, daß die Menu-Klasse einen Ctor benötigen könnte, der seine Elemente vernünftig vorbelegt.</p>
<p>(kleiner Tip: Ersetze mal die char*'s durch std::string und die menuItem* durch std::vector&lt;menuItem&gt; - ist um einiges sicherer in der Handhabung)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228662</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 14 Feb 2007 12:20:19 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei Start ohne Debugger, kein Fehler mit Debugger on Wed, 14 Feb 2007 16:31:37 GMT]]></title><description><![CDATA[<p>Ich habe jetzt zu Hause mit Visual Studio 2005 kompiliert.<br />
Da erscheint mit Strg+F5 folgende Fehlermeldung:</p>
<p>---------------------------<br />
NameDatabase.exe - Fehler in Anwendung<br />
---------------------------<br />
Die Anweisung in &quot;0x7c921639&quot; verweist auf Speicher in &quot;0x003b2dc5&quot;. Der Vorgang</p>
<p>&quot;read&quot; konnte nicht auf dem Speicher durchgeführt werden.</p>
<p>Klicken Sie auf &quot;OK&quot;, um das Programm zu beenden.<br />
Klicken Sie auf &quot;Abbrechen&quot;, um das Programm zu debuggen.<br />
---------------------------<br />
OK Abbrechen<br />
---------------------------</p>
<p>Ich werden jetzt mal das oben versuchen.<br />
Ich denke mir, dass in<br />
menuList[i].ReadData;<br />
irgendwie nicht richtig eingespeichert wird ?!</p>
<p>Ich kann auch gerne den Code als ganzes mailen (oder weiß jemand eine Seite, wo man gratis Dateien online stellen kann).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228922</guid><dc:creator><![CDATA[PinkoPalino]]></dc:creator><pubDate>Wed, 14 Feb 2007 16:31:37 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei Start ohne Debugger, kein Fehler mit Debugger on Wed, 14 Feb 2007 16:57:28 GMT]]></title><description><![CDATA[<p>So!<br />
Ich habe jetzt einmal ein paar char* mit std::string ersetzt. Jetzt funztz!<br />
Danke für den Hinweis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228946</guid><dc:creator><![CDATA[PinkoPalino]]></dc:creator><pubDate>Wed, 14 Feb 2007 16:57:28 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei Start ohne Debugger, kein Fehler mit Debugger on Thu, 15 Feb 2007 07:53:06 GMT]]></title><description><![CDATA[<p>PinkoPalino schrieb:</p>
<blockquote>
<p>---------------------------<br />
NameDatabase.exe - Fehler in Anwendung<br />
---------------------------<br />
Die Anweisung in &quot;0x7c921639&quot; verweist auf Speicher in &quot;0x003b2dc5&quot;. Der Vorgang</p>
<p>&quot;read&quot; konnte nicht auf dem Speicher durchgeführt werden.</p>
<p>Klicken Sie auf &quot;OK&quot;, um das Programm zu beenden.<br />
Klicken Sie auf &quot;Abbrechen&quot;, um das Programm zu debuggen.<br />
---------------------------<br />
OK Abbrechen<br />
---------------------------</p>
</blockquote>
<p>Klick einfach mal auf &quot;Abbrechen&quot; und schau nach, wo du landest <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229193</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 15 Feb 2007 07:53:06 GMT</pubDate></item></channel></rss>