<?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[Ressourcen updaten]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche gerade von meinem Programm aus Ressourcen in ein anderes einzufügen bzw. zu bearbeiten. Folgender Code:</p>
<pre><code class="language-cpp">BOOL CALLBACK EnumResNameProc(HMODULE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG_PTR lParam)
{
	//Wird nicht aufgerufen
	MessageBox(0, lpszName, lpszType, 0);
	return TRUE;
}

BOOL CALLBACK EnumResTypeProc(HMODULE hModule, LPTSTR lpszType, LONG_PTR lParam)
{
	//Funktioniert
	MessageBox(0, lpszType, 0, 0);
	EnumResourceNames(hModule, lpszType, EnumResNameProc, 0);
	return TRUE;
}

//...

//Neue Funktion .. {

	HMODULE hModule = LoadLibrary(pcExePath);
	if(!hModule)
		return FALSE;

	// ...

	//Versuch vorhandene Ressourcen zu suchen ... s.o.
	EnumResourceTypes(hModule, EnumResTypeProc, 0);

	//Test, ob die Ressource wirklich da ist -&gt; funktioniert
	HRSRC hResource = FindResource(hModule, MAKEINTRESOURCE(104), &quot;RAW&quot;);
	if(!hResource)
		return FALSE;

	HGLOBAL hGlobal = LoadResource(hModule, hResource);
	if(!hGlobal)
		return FALSE;

	MessageBox(0, (char*)LockResource(hGlobal), 0, 0);
	//------------------------------------------------------

	//Tut nichts
	HANDLE hResourceUpdate = BeginUpdateResource(pcExePath, FALSE);
	if(!hResourceUpdate)
		return FALSE;

	if(!UpdateResource(hResourceUpdate, &quot;RAW&quot;, MAKEINTRESOURCE(104), MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), pData, GetFileSize(hOutputFile, NULL)))
		return FALSE;

	if(!EndUpdateResource(hResourceUpdate, FALSE))
		return FALSE;
	//----------
</code></pre>
<p>An den Kommentaren könnt ihr ablesen, was in der betreffenden Abschnitt nicht stimmt.</p>
<p>Es sollten eigentlich:<br />
- alle vorhandenen Ressourcen und Typen aufgezählt werden &lt;- funktioniert nicht<br />
- Inhalt einer Ressource ausgeben &lt;- funktioniert<br />
- den Inhalt der Ressource mit dem Inhalt einer Datei (siehe hOutputFile) 'aufgefüllt' werden und in die .exe schreiben &lt;- funktioniert nicht</p>
<p>Was kann ich ändern, damit die &quot;Es sollten eigentlich&quot;-Aufgaben erfüllt werden?</p>
<p>Danke im Voraus</p>
<p>M.T.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/79175/ressourcen-updaten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 20:09:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/79175.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Jul 2004 14:50:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ressourcen updaten on Thu, 08 Jul 2004 14:50:24 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche gerade von meinem Programm aus Ressourcen in ein anderes einzufügen bzw. zu bearbeiten. Folgender Code:</p>
<pre><code class="language-cpp">BOOL CALLBACK EnumResNameProc(HMODULE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG_PTR lParam)
{
	//Wird nicht aufgerufen
	MessageBox(0, lpszName, lpszType, 0);
	return TRUE;
}

BOOL CALLBACK EnumResTypeProc(HMODULE hModule, LPTSTR lpszType, LONG_PTR lParam)
{
	//Funktioniert
	MessageBox(0, lpszType, 0, 0);
	EnumResourceNames(hModule, lpszType, EnumResNameProc, 0);
	return TRUE;
}

//...

//Neue Funktion .. {

	HMODULE hModule = LoadLibrary(pcExePath);
	if(!hModule)
		return FALSE;

	// ...

	//Versuch vorhandene Ressourcen zu suchen ... s.o.
	EnumResourceTypes(hModule, EnumResTypeProc, 0);

	//Test, ob die Ressource wirklich da ist -&gt; funktioniert
	HRSRC hResource = FindResource(hModule, MAKEINTRESOURCE(104), &quot;RAW&quot;);
	if(!hResource)
		return FALSE;

	HGLOBAL hGlobal = LoadResource(hModule, hResource);
	if(!hGlobal)
		return FALSE;

	MessageBox(0, (char*)LockResource(hGlobal), 0, 0);
	//------------------------------------------------------

	//Tut nichts
	HANDLE hResourceUpdate = BeginUpdateResource(pcExePath, FALSE);
	if(!hResourceUpdate)
		return FALSE;

	if(!UpdateResource(hResourceUpdate, &quot;RAW&quot;, MAKEINTRESOURCE(104), MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), pData, GetFileSize(hOutputFile, NULL)))
		return FALSE;

	if(!EndUpdateResource(hResourceUpdate, FALSE))
		return FALSE;
	//----------
</code></pre>
<p>An den Kommentaren könnt ihr ablesen, was in der betreffenden Abschnitt nicht stimmt.</p>
<p>Es sollten eigentlich:<br />
- alle vorhandenen Ressourcen und Typen aufgezählt werden &lt;- funktioniert nicht<br />
- Inhalt einer Ressource ausgeben &lt;- funktioniert<br />
- den Inhalt der Ressource mit dem Inhalt einer Datei (siehe hOutputFile) 'aufgefüllt' werden und in die .exe schreiben &lt;- funktioniert nicht</p>
<p>Was kann ich ändern, damit die &quot;Es sollten eigentlich&quot;-Aufgaben erfüllt werden?</p>
<p>Danke im Voraus</p>
<p>M.T.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/556170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/556170</guid><dc:creator><![CDATA[Manuel]]></dc:creator><pubDate>Thu, 08 Jul 2004 14:50:24 GMT</pubDate></item><item><title><![CDATA[Reply to Ressourcen updaten on Thu, 08 Jul 2004 15:28:57 GMT]]></title><description><![CDATA[<p>Was genau heißt &quot;Tut nichts&quot; bei BeginUpdateResource? Ist hResourceUpdate NULL?</p>
<p>Vielleicht helfen die <a href="http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/introductiontoresources/usingresources.asp" rel="nofollow">diese Code-Schnippsel</a> etwas <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/556225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/556225</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 08 Jul 2004 15:28:57 GMT</pubDate></item><item><title><![CDATA[Reply to Ressourcen updaten on Thu, 08 Jul 2004 16:49:05 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>Ist hResourceUpdate NULL?</p>
</blockquote>
<p>Unwahrscheinlich ... dann würde die Funktion ja FALSE statt TRUE zurückgeben <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>
<p>Der Code-Schnipsel in der MSDN war ursprünglich schon meine Quelle ...</p>
<p>Da muss noch was sein</p>
<p>M.T.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/556280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/556280</guid><dc:creator><![CDATA[Manuel]]></dc:creator><pubDate>Thu, 08 Jul 2004 16:49:05 GMT</pubDate></item></channel></rss>