<?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[Programmaufruf aus eigenem Programm]]></title><description><![CDATA[<p>Also ich bin noch Anfänger und möchte einfach wissen, wei ich andere Programme aus dem eigenen aufrufe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/103441/programmaufruf-aus-eigenem-programm</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 18:21:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/103441.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Mar 2005 16:14:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 16:14:43 GMT]]></title><description><![CDATA[<p>Also ich bin noch Anfänger und möchte einfach wissen, wei ich andere Programme aus dem eigenen aufrufe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740591</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 08 Mar 2005 16:14:43 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 16:21:52 GMT]]></title><description><![CDATA[<p>Seufz, schon wieder? ShellExecute oder CreateProcess.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740599</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 08 Mar 2005 16:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 16:27:50 GMT]]></title><description><![CDATA[<p>Ich empfehle einen Blick in die FAQ oder einen Versuch mit der Suchfunktion mit den von Joe genannten Schlüsselwörtern.</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740609</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 08 Mar 2005 16:27:50 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 17:32:04 GMT]]></title><description><![CDATA[<p>Dazu steht gar nichts in der Hilfe. Das ist komisch. Wo kann ich das nachlesen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740690</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 08 Mar 2005 17:32:04 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 18:19:08 GMT]]></title><description><![CDATA[<p>das thema wurde xxxxxx-mal hier im Forum behandelt.<br />
sonst, wenn du es lieber englisch willst, -&gt; msnd-library</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740748</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Tue, 08 Mar 2005 18:19:08 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 19:24:54 GMT]]></title><description><![CDATA[<p>Also ich hab emich für WinExec entschieden. Ich möchte gerne wissen wo ich bei dieser Funktion:</p>
<pre><code class="language-cpp">WinExec(&quot;Raetsel.exe&quot;, SW_SHOWNORMAL);
</code></pre>
<p>eine Pfadangabe hinbringe. Also ich wollte es so machen:</p>
<pre><code>WinExec(&quot;.\\Rätselprogramm\\Raetsel.exe&quot;, SW_SHOWNORMAL);
</code></pre>
<p>Doch so macht er gar nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740865</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 08 Mar 2005 19:24:54 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 19:26:54 GMT]]></title><description><![CDATA[<p>kenne WinExec nicht..<br />
aber ein <strong>korrekter</strong> Pfad währe von vorteil</p>
<p>Kevinus schrieb:</p>
<blockquote>
<pre><code>WinExec(&quot;.\\Rätselprogramm\\Raetsel.exe&quot;, SW_SHOWNORMAL);
</code></pre>
<p>Doch so macht er gar nichts.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/740868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740868</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Tue, 08 Mar 2005 19:26:54 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 19:32:53 GMT]]></title><description><![CDATA[<p>je ne aber mit<br />
.\\ gehts auch. Das hab ich schon bei einigen anderen Funktionen probiert. Wenn du die Doppelbackslah meinst, die müssen doch so sein dachte ich. Außerdem würde ich gerne wissen, wohin ich den Pfad und wohin Parameter schreibe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740872</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 08 Mar 2005 19:32:53 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 19:47:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>WinExec ist doch uralt... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> (Obsolete sozusagen... <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="🙂"
    /> siehe Hilfe)<br />
Nimm lieber das hier :</p>
<pre><code class="language-cpp">AnsiString Pfad_der_EXE = &quot;C:\\Rätselprogramm\\Raetsel.exe&quot;; 
ShellExecute(Handle, 
             0, 
             ExtractFileName(Pfad_der_EXE).c_str(), 
             0, 
             ExtractFilePath(Pfad_der_EXE).c_str(), 
             SW_NORMAL);
</code></pre>
<p>Und nimm besser komplette Pfade, das bewahrt Dich vor unangenehmen Überraschungen.</p>
<p>Bis dann denn,<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="🙂"
    /><br />
Nash</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740880</guid><dc:creator><![CDATA[Nash]]></dc:creator><pubDate>Tue, 08 Mar 2005 19:47:20 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 19:56:39 GMT]]></title><description><![CDATA[<p>Aber muss dann den NAmen nach nicht bei:<br />
Extract File Name nur Raetsel.exe<br />
und bei<br />
Extract Path Name der AnsiString?</p>
<p>Muss ich AnsiString oder kann ich auch andere verwenden?</p>
<p>Ich benutze deshalb nicht den gesamten Pfadnamen, da das:<br />
1. auh mit Punkt und dann restlicher Pfad geht.<br />
2. ich mein Programm flexibel haben möchter, damit nicht jeder genau in den<br />
Pfad installieren muss.</p>
<p>Was hat c.str() zu bedeuten, oder was machjt es?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740884</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 08 Mar 2005 19:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 20:15:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<blockquote>
<p>Aber muss dann den NAmen nach nicht bei:<br />
Extract File Name nur Raetsel.exe<br />
und bei<br />
Extract Path Name der AnsiString?</p>
<p>Muss ich AnsiString oder kann ich auch andere verwenden?</p>
</blockquote>
<p>Hilfe benutzen... <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>Mist... das kommt davon, wenn man ohne zu überlegen kopiert... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
So ist's richtig :</p>
<pre><code class="language-cpp">AnsiString Pfad_der_EXE = &quot;C:\\Rätselprogramm\\Raetsel.exe&quot;; 
ShellExecute(Handle, 
             0, 
             Pfad_der_EXE.c_str(), 
             0, 
             ExtractFilePath(Pfad_der_EXE).c_str(), 
             SW_NORMAL);
</code></pre>
<blockquote>
<p>Ich benutze deshalb nicht den gesamten Pfadnamen, da das:<br />
1. auh mit Punkt und dann restlicher Pfad geht.</p>
</blockquote>
<p>Mach was immer Du auch willst... :p</p>
<blockquote>
<p>2. ich mein Programm flexibel haben möchter, damit nicht jeder genau in den Pfad installieren muss.</p>
</blockquote>
<p>Das kann man auch anders :<br />
z.B. mit</p>
<pre><code class="language-cpp">ExtractFilePath(Application-&gt;ExeName)
</code></pre>
<p>und von hier weiter die Ordner ansprechen... <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>
<blockquote>
<p>c_str()</p>
</blockquote>
<p>Anklicken und dann F1 drücken. <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>Bis dann denn,<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="🙂"
    /><br />
Nash</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740903</guid><dc:creator><![CDATA[Nash]]></dc:creator><pubDate>Tue, 08 Mar 2005 20:15:04 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 20:19:36 GMT]]></title><description><![CDATA[<p>Call of undefined function &quot;Shell Execute&quot;</p>
<p>Das kommt wenn ich Shell Execute einfüge. Was kann ich tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740908</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 08 Mar 2005 20:19:36 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 20:23:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p><strong>ShellExecute</strong> ist ein Wort.</p>
<p>Bis dann denn,<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="🙂"
    /><br />
Nash</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740911</guid><dc:creator><![CDATA[Nash]]></dc:creator><pubDate>Tue, 08 Mar 2005 20:23:53 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 20:24:43 GMT]]></title><description><![CDATA[<p>vielleicht mal ShellExecute() zusammenschreiben???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740914</guid><dc:creator><![CDATA[tuxman]]></dc:creator><pubDate>Tue, 08 Mar 2005 20:24:43 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 08 Mar 2005 20:34:40 GMT]]></title><description><![CDATA[<p>Also ich hab mit shellapi.h gemacht und dann gehts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/740926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/740926</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 08 Mar 2005 20:34:40 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 12 Jul 2005 10:08:33 GMT]]></title><description><![CDATA[<p>Nach langer Zeit greife ich am Besten meinen eigenen Thread wieder auf, da meine neuen Fragen etwas mit dem Thema Shell Execute zutun haben.</p>
<ol>
<li></li>
</ol>
<pre><code class="language-cpp">...
String netsend=&quot;net send &quot;+IP+&quot; &quot;+Text;
WinExec(netsend.c_str(),SW_SHOW);
...
</code></pre>
<p>Diese Funktion funktioniert einwandfrei(Ich habe den restlichen Programmcode weg gelassen). Aber die zweite Methode:</p>
<pre><code class="language-cpp">...
String netsend=&quot;net send &quot;+IP+&quot; &quot;+Text;
ShellExecute(NULL,&quot;open&quot;,netsend.c_str(),0,0,SW_SHOW);
...
</code></pre>
<p>funktioniert nicht, der Compiler gibt zwar keine Fehler aus, doch machen tut das Programm auch nichts, also wo liegt mein Fehler????</p>
<ol start="2">
<li></li>
</ol>
<p>Kann man mit ShellExecute auch den Status des aufgerufenen Programmes abfragen und wenn ja dann ganz normal mit ner Int Variable?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829099</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 12 Jul 2005 10:08:33 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 12 Jul 2005 10:06:28 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ja, mit ShellExecuteEx(). Damit bekommst du ein Prozeßhandle, das du überwachen kannst. Das gehört dann aber ins WinAPI-Forum.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829106</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 12 Jul 2005 10:06:28 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 12 Jul 2005 10:17:45 GMT]]></title><description><![CDATA[<p>Jo sorry ich habe meinen Beitrag oben nochmal editiert um einen Doppelpost zu vermeiden, aber du warst anscheinend schneller und danke für die Beantwortung der 2. Frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829109</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 12 Jul 2005 10:17:45 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 12 Jul 2005 11:09:29 GMT]]></title><description><![CDATA[<p>guggt sich denn niemand mehr die hilfe oder die beispiele in den faq an??? *seufz*</p>
<p>Windows-SDK schrieb:</p>
<blockquote>
<p>HINSTANCE ShellExecute(<br />
HWND hwnd, // handle to parent window<br />
LPCTSTR lpOperation, // pointer to string that specifies operation to perform<br />
LPCTSTR lpFile, // pointer to filename or folder name string<br />
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters<br />
LPCTSTR lpDirectory, // pointer to string that specifies default directory<br />
INT nShowCmd // whether file is shown when opened<br />
);</p>
</blockquote>
<pre><code class="language-cpp">AnsiString NetStr      = &quot;net&quot;;
AnsiString NetParamStr = &quot;send 127.0.0.1 hallo dude&quot;;

ShellExecute(0, &quot;open&quot;, NetStr.c_str(), NetParamStr.c_str(), 0, SW_SHOW);
</code></pre>
<p><strong>net</strong> ist ein programm, der rest sind nur die parameter, also auch so benutzen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829163</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Tue, 12 Jul 2005 11:09:29 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Tue, 12 Jul 2005 13:24:12 GMT]]></title><description><![CDATA[<p>ach gott ja ich noob. Na klar net is ja das Programm und send nur ne Funktion davon, danke für die Hilfe mir ist das echt nicht aufgefallen.</p>
<p>Nagut dann kommt die nächste Frage auf, wie kann ich die Error Messages anzeigen bzw. auswerten lassen. Also es hat was mit handle zu tun nur wie sätze ich das ganze richtig ein, achja und der Beitrag in der msdn Libary hat mich nicht weitergebracht, also könntet ihr es mir bitte richtig erklären und nicht unbedingt so schwer verständlich wie in der msdn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829278</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Tue, 12 Jul 2005 13:24:12 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Wed, 13 Jul 2005 20:03:58 GMT]]></title><description><![CDATA[<p>Will mir dazu niemand helfen, ist ja geradezu ausgestorben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/830700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/830700</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Wed, 13 Jul 2005 20:03:58 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Wed, 13 Jul 2005 20:40:14 GMT]]></title><description><![CDATA[<p>selber schuld, wenn du in nem eigenen post eine editierung nach 20 minuten machst!</p>
<p>hier mal der code fuer eine unit error.cpp (inkl. header). hier wird eine funktion Error() und LastError()) definiert. Error() ermoeglicht die Erzeugung ein Fehler-Messagebox mit Angabe fuer Caption und Text. Die Ausgabe erfolgt ueber einen selbstdefinierten Error-Handler. LastError() liefert dir die formatierte Fehlermeldung von Windows-GetLastError(), d.h. aus dem Errorcode den WinAPI-Funktionen zurueckgeben, wird eine lesbare Fehlermeldung generiert.</p>
<p>// error.h</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#ifndef __RS_ERROR_H
#define __RS_ERROR_H
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
#include &lt;stdio.h&gt;          // für sprintf, vsprintf
#include &lt;stdarg.h&gt;         // für va_list
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
typedef	void (*ErrorHandler) (const char*, const char*, va_list);
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// globale Funktionen und Variablen
//---------------------------------------------------------------------------
extern  &quot;C&quot;  void          Error(const char *Module, const char *Format, ...);
extern  &quot;C&quot;  void          LastError(const char *Module);
//---------------------------------------------------------------------------
extern  &quot;C&quot;  ErrorHandler  SetErrorHandler(ErrorHandler);
extern  &quot;C&quot;  ErrorHandler _ErrorHandler;
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
</code></pre>
<p>// error.cpp</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#include &lt;windows.hpp&gt;   // für MessageBox
//---------------------------------------------------------------------------
#include &quot;Error.h&quot;
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// Error-Handler für Programm
//---------------------------------------------------------------------------
void MyErrorHandler(const char *Module, const char *Format, va_list ArgPtr)
{
  char Caption[ 255];
  char Message[3072];

  if (!Module) sprintf(Caption, &quot;%s&quot;, &quot;Error&quot;);
  else         sprintf(Caption, &quot;%s&quot;, Module);

  vsprintf(Message, Format, ArgPtr);

  MessageBox(GetFocus(),
             Message,
             Caption,
             MB_OK | MB_ICONERROR | MB_TOPMOST | MB_TASKMODAL);
}

//---------------------------------------------------------------------------
// Standard-Error-Handler festsetzen
//---------------------------------------------------------------------------
ErrorHandler _ErrorHandler = MyErrorHandler;
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// Funktion setzt den Error-Handler
//---------------------------------------------------------------------------
ErrorHandler SetErrorHandler(ErrorHandler Handler)
{
  ErrorHandler Prev = _ErrorHandler;
  _ErrorHandler     = Handler;

  return Prev;
}

//---------------------------------------------------------------------------
// Funktion formatiert die Meldung und übergibt sie
// dem festgelegten Error-Handler
//---------------------------------------------------------------------------
void Error(const char *Module, const char *Format, ...)
{
  if (_ErrorHandler)
  {
    va_list ArgPtr;
    va_start(ArgPtr, Format);

    (*_ErrorHandler) (Module, Format, ArgPtr);

    va_end(ArgPtr);
  }
}

//---------------------------------------------------------------------------
// Funktion erzeugt eine Fehlermeldung von GetLastError und
// übergibt sie dem festgelegten Error-Handler
//---------------------------------------------------------------------------
void LastError(const char *Module)
{
  LPVOID lpMsgBuf;

  FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
                FORMAT_MESSAGE_FROM_SYSTEM,
                0,
                GetLastError(),
                MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                (LPTSTR) &amp;lpMsgBuf,
                0,
                0);

  (*_ErrorHandler) (Module, (LPCTSTR) lpMsgBuf, 0);

  // Speicher freigeben
  LocalFree(lpMsgBuf);
}
</code></pre>
<p>Aufrufe ueber:</p>
<pre><code class="language-cpp">void FunktionBlahBlah()
{
  DWORD Result = ShellExecute(...);

  // Fehlermeldungen von ShellExecute ausgeben
  if (Result &lt;= 32)
    LastError(&quot;FunktionBlahBlah&quot;);
}
</code></pre>
<p>ich hoffe ich habe nichts vergessen zu kopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/830729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/830729</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 13 Jul 2005 20:40:14 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Sat, 16 Jul 2005 10:06:39 GMT]]></title><description><![CDATA[<p>Mensch ganz schon viel Quellcode naja muss ich mich halt mal durchfrimeln.<br />
Eine Frage die ich mir noch nicht selber beantworten konnte:<br />
Was verstehe ich unter dem Variablen Typ WORD und DWORD und wo setzt man diese ein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/832169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/832169</guid><dc:creator><![CDATA[Kevinus]]></dc:creator><pubDate>Sat, 16 Jul 2005 10:06:39 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Sat, 16 Jul 2005 10:34:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>WORD ist ein 16-bit Wert, DWORD ein 32-bit Wert.<br />
In dieser Form wird es in der WinAPI definiert. Deshalb wird es bei WinAPI-Zugriff gebraucht, meistens DWORD als typedef auf einen int.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/832190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/832190</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 16 Jul 2005 10:34:53 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Sat, 16 Jul 2005 12:30:49 GMT]]></title><description><![CDATA[<p>Noch eine Methode:</p>
<p><a href="http://www.marquardtnet.info/cecke/quickies.1/1_quicky_25.html" rel="nofollow">http://www.marquardtnet.info/cecke/quickies.1/1_quicky_25.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/832267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/832267</guid><dc:creator><![CDATA[Christian211]]></dc:creator><pubDate>Sat, 16 Jul 2005 12:30:49 GMT</pubDate></item><item><title><![CDATA[Reply to Programmaufruf aus eigenem Programm on Sat, 16 Jul 2005 12:59:43 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>DWORD als typedef auf einen int.</p>
</blockquote>
<p>nicht ganz.</p>
<p>korrekt ist das so definiert:</p>
<pre><code class="language-cpp">typedef  unsigned long   DWORD;
typedef  unsigned short  WORD;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/832285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/832285</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Sat, 16 Jul 2005 12:59:43 GMT</pubDate></item></channel></rss>