<?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[Code umschreiben...]]></title><description><![CDATA[<p>Hallo Leute ich hab folgenden Code gefunden:</p>
<pre><code class="language-cpp">AnsiString ExecuteExternalFile(AnsiString FEXEC)
{
  AnsiString OUTP;
  char BUFFER[100],InAnsi[100];
  unsigned long LPDWORD;

  SECURITY_ATTRIBUTES secattr;
  ZeroMemory(&amp;secattr,sizeof(secattr));
  secattr.nLength = sizeof(secattr);
  secattr.bInheritHandle = TRUE;

  HANDLE rPipe, wPipe;

  // Pipe für lesen und schreiben
  CreatePipe(&amp;rPipe,&amp;wPipe,&amp;secattr,0);

  // Für CreateProcess
  STARTUPINFO sInfo;
  ZeroMemory(&amp;sInfo,sizeof(sInfo));
  PROCESS_INFORMATION pInfo;
  ZeroMemory(&amp;pInfo,sizeof(pInfo));
  sInfo.cb=sizeof(sInfo);
  sInfo.dwFlags=STARTF_USESTDHANDLES;
  sInfo.hStdInput=NULL;
  sInfo.hStdOutput=wPipe;
  sInfo.hStdError=wPipe;

  // Ausführen
  CreateProcess(0, FEXEC.c_str(), 0, 0, TRUE,NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW, 0, 0, &amp;sInfo,&amp;pInfo);
  CloseHandle(wPipe);

  // Rückgabe auslesen
  while(ReadFile(rPipe,BUFFER,100,&amp;LPDWORD,0))
        {
         BUFFER[LPDWORD]=NULL;
         OemToChar(BUFFER,InAnsi);
         OUTP+=InAnsi;
         }

return OUTP.TrimRight(); // Löscht nachfolgende Leer- und Steuerzeichen
}
</code></pre>
<p>Doch dieser Code ist aber für den Borland Compiler, aber ich möchte gern den Code mit VC8 kompilieren, könnt ihr mir bitte Code diesen umschreiben das wäre nett.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158698/code-umschreiben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Jul 2026 16:50:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158698.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Sep 2006 18:39:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Code umschreiben... on Thu, 07 Sep 2006 18:39:14 GMT]]></title><description><![CDATA[<p>Hallo Leute ich hab folgenden Code gefunden:</p>
<pre><code class="language-cpp">AnsiString ExecuteExternalFile(AnsiString FEXEC)
{
  AnsiString OUTP;
  char BUFFER[100],InAnsi[100];
  unsigned long LPDWORD;

  SECURITY_ATTRIBUTES secattr;
  ZeroMemory(&amp;secattr,sizeof(secattr));
  secattr.nLength = sizeof(secattr);
  secattr.bInheritHandle = TRUE;

  HANDLE rPipe, wPipe;

  // Pipe für lesen und schreiben
  CreatePipe(&amp;rPipe,&amp;wPipe,&amp;secattr,0);

  // Für CreateProcess
  STARTUPINFO sInfo;
  ZeroMemory(&amp;sInfo,sizeof(sInfo));
  PROCESS_INFORMATION pInfo;
  ZeroMemory(&amp;pInfo,sizeof(pInfo));
  sInfo.cb=sizeof(sInfo);
  sInfo.dwFlags=STARTF_USESTDHANDLES;
  sInfo.hStdInput=NULL;
  sInfo.hStdOutput=wPipe;
  sInfo.hStdError=wPipe;

  // Ausführen
  CreateProcess(0, FEXEC.c_str(), 0, 0, TRUE,NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW, 0, 0, &amp;sInfo,&amp;pInfo);
  CloseHandle(wPipe);

  // Rückgabe auslesen
  while(ReadFile(rPipe,BUFFER,100,&amp;LPDWORD,0))
        {
         BUFFER[LPDWORD]=NULL;
         OemToChar(BUFFER,InAnsi);
         OUTP+=InAnsi;
         }

return OUTP.TrimRight(); // Löscht nachfolgende Leer- und Steuerzeichen
}
</code></pre>
<p>Doch dieser Code ist aber für den Borland Compiler, aber ich möchte gern den Code mit VC8 kompilieren, könnt ihr mir bitte Code diesen umschreiben das wäre nett.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133250</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Thu, 07 Sep 2006 18:39:14 GMT</pubDate></item><item><title><![CDATA[Reply to Code umschreiben... on Thu, 07 Sep 2006 18:49:18 GMT]]></title><description><![CDATA[<p>ersetze AnsiString durch std::string...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133255</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 07 Sep 2006 18:49:18 GMT</pubDate></item><item><title><![CDATA[Reply to Code umschreiben... on Thu, 07 Sep 2006 19:28:48 GMT]]></title><description><![CDATA[<p>Bekomme dann 2 Fehler:</p>
<blockquote>
<p>error C2664: 'CreateProcessA': Konvertierung des Parameters 2 von 'const char *' in 'LPSTR' nicht möglich<br />
error C2039: 'TrimRight': Ist kein Element von 'std::basic_string&lt;_Elem,_Traits,_Ax&gt;'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1133283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133283</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Thu, 07 Sep 2006 19:28:48 GMT</pubDate></item><item><title><![CDATA[Reply to Code umschreiben... on Thu, 07 Sep 2006 22:57:02 GMT]]></title><description><![CDATA[<p>kernel64 schrieb:</p>
<blockquote>
<p>Bekomme dann 2 Fehler:</p>
<blockquote>
<p>error C2664: 'CreateProcessA': Konvertierung des Parameters 2 von 'const char *' in 'LPSTR' nicht möglich<br />
error C2039: 'TrimRight': Ist kein Element von 'std::basic_string&lt;_Elem,_Traits,_Ax&gt;'</p>
</blockquote>
</blockquote>
<p>Zum ersten Fehler: <strong>Fahr dir mal ein paar Sachen übers Casten rein</strong>. &quot;const char*&quot; und &quot;LPSTR&quot; sind (fast) dasselbe. Auf jeden Fall beides Pointer auf einen String. Ein String vom Typ &quot;const char*&quot; soll nicht verändert werden, deshalb const wie konstant. LPSTR ist ein anderes &quot;Wort&quot; für &quot;char*&quot;. Also ohne das const, also darf verändert werden. Aber was erzähl ich dir was über konstante Typen? Tutorials, Junge!</p>
<p>Zum zweiten Fehler:<br />
Mit der Funktion TrimRight werden glaube ich die nachfolgenden Leerzeichen abgeschnitten. &quot;Hallo &quot; wird also zu &quot;Hallo&quot;. Kannste dir ja selber mal ne Funktion für programmieren... Lernt man von...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133362</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 07 Sep 2006 22:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to Code umschreiben... on Fri, 08 Sep 2006 13:45:03 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Zum zweiten Fehler:<br />
Mit der Funktion TrimRight werden glaube ich die nachfolgenden Leerzeichen abgeschnitten. &quot;Hallo &quot; wird also zu &quot;Hallo&quot;.</p>
</blockquote>
<p>Jo siehe hier: <a href="http://www.functionx.com/bcb/topics/strings.htm" rel="nofollow">http://www.functionx.com/bcb/topics/strings.htm</a></p>
<p>EDIT: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10094">@kernel64</a>: Vllt. ist auch ShellExecute interessant <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/1133729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133729</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 08 Sep 2006 13:45:03 GMT</pubDate></item><item><title><![CDATA[Reply to Code umschreiben... on Fri, 08 Sep 2006 16:20:33 GMT]]></title><description><![CDATA[<p>Diesen Code kann man kompilieren und erstellen:</p>
<pre><code class="language-cpp">string ExecuteExternalFile(string FEXEC)
{
  string OUTP;
  char BUFFER[100],InAnsi[100];
  unsigned long LPDWORD;

  SECURITY_ATTRIBUTES secattr;
  ZeroMemory(&amp;secattr,sizeof(secattr));
  secattr.nLength = sizeof(secattr);
  secattr.bInheritHandle = TRUE;

  HANDLE rPipe, wPipe;

  // Pipe für lesen und schreiben
  CreatePipe(&amp;rPipe,&amp;wPipe,&amp;secattr,0);

  // Für CreateProcess
  STARTUPINFO sInfo;
  ZeroMemory(&amp;sInfo,sizeof(sInfo));
  PROCESS_INFORMATION pInfo;
  ZeroMemory(&amp;pInfo,sizeof(pInfo));
  sInfo.cb=sizeof(sInfo);
  sInfo.dwFlags=STARTF_USESTDHANDLES;
  sInfo.hStdInput=NULL;
  sInfo.hStdOutput=wPipe;
  sInfo.hStdError=wPipe;

  // Ausführen
  CreateProcess(0, cvt.StringToChar(FEXEC), 0, 0, TRUE,NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW, 0, 0, &amp;sInfo,&amp;pInfo);
  CloseHandle(wPipe);

  // Rückgabe auslesen
  while(ReadFile(rPipe,BUFFER,100,&amp;LPDWORD,0))
        {
         BUFFER[LPDWORD]=NULL;
         OemToChar(BUFFER,InAnsi);
         OUTP+=InAnsi;
         }

return OUTP; // Löscht nachfolgende Leer- und Steuerzeichen
}
</code></pre>
<p>Doch sobald ich ein programm angebe welches auch um gleichen ordner befindet, dann bekomme ich eine Fehlermeldung:</p>
<blockquote>
<p>Debug Error - Stack around the variable 'BUFFER' was corrupted</p>
</blockquote>
<p>Liegt das vielleicht an der OemToChar() Funktion??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133815</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Fri, 08 Sep 2006 16:20:33 GMT</pubDate></item><item><title><![CDATA[Reply to Code umschreiben... on Fri, 08 Sep 2006 17:09:40 GMT]]></title><description><![CDATA[<p>BUFFER[LPDWORD]=NULL;</p>
<p>Du liest 100 Zeichen. D.h. BUFFER ist voll und auf das 101 Zeiochen setzt Du eine 0 mit dem obigen Statement. Die CRT hat mit dieser Meldung absolut recht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133844</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 08 Sep 2006 17:09:40 GMT</pubDate></item><item><title><![CDATA[Reply to Code umschreiben... on Fri, 08 Sep 2006 17:21:02 GMT]]></title><description><![CDATA[<p>Soll ich die Zeile löschen oder was soll ich machen??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133847</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Fri, 08 Sep 2006 17:21:02 GMT</pubDate></item><item><title><![CDATA[Reply to Code umschreiben... on Fri, 08 Sep 2006 20:55:14 GMT]]></title><description><![CDATA[<p>kernel64 schrieb:</p>
<blockquote>
<p>Soll ich die Zeile löschen oder was soll ich machen??</p>
</blockquote>
<p>Damit ist keinem geholfen: Du solltest viel lieber das 'NULL' mit in deine Berechnungen für die größe von Buffer miteinbeziehen, also brauchst du 101 einträge in Buffer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133967</guid><dc:creator><![CDATA[tobZel]]></dc:creator><pubDate>Fri, 08 Sep 2006 20:55:14 GMT</pubDate></item></channel></rss>