<?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[Bitte um Erklärung des Code Schnippsel]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich versuche schon was länger mit Delphi eine Dll aufzurufen.<br />
Scheiter dabei aber an dem richtigen Aufruf der Funktion W2P.<br />
Ich kann leider kein C++ und versteh nicht wirklich was da genau steht.</p>
<p>Dachte nun ich frag mal C++ Programmierer um Rat <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 />
Könnt ihr mir bitte helfen zu verstehen wie die Funktion angesteuert wird ?</p>
<p>Hab diese leider nur decompiliert vorliegen:</p>
<pre><code class="language-cpp">int __cdecl W2P(int numberGreaterEqualThree, char **fromTo)
{
  return W2P_0(numberGreaterEqualThree, fromTo);
}

int __cdecl W2P_0(int numberGreaterEqualThree, char **stringTable)
{
  int result; // eax@4
  int v3; // [sp+0h] [bp-1Ch]@1
  int *v4; // [sp+Ch] [bp-10h]@1
  int v5; // [sp+18h] [bp-4h]@5

  v4 = &amp;v3;
  if ( numberGreaterEqualThree &gt;= 3 &amp;&amp; **(stringTable + 1) &amp;&amp; **(stringTable + 2) )
  {
    printf(&quot;PXD2Wav Konvertierung: %s -&gt; %s&quot;, *(stringTable + 1), *(stringTable + 2));
    v5 = 0;
    strcpy(globalStringArray, *(stringTable + 1));
    strcpyOffset260(globalStringArray, *(stringTable + 2));
    result = convertPxdToWave_1000F8C5(globalStringArray);
  }
  else
  {
    result = printf(&quot;PXD2Wav Konvertierung: pxd -&gt; wav&quot;);
  }
  return result;
}
</code></pre>
<pre><code class="language-cpp">int __cdecl W2P(int numberGreaterEqualThree, char **fromTo)
</code></pre>
<p>kommt hier schon eine stringtable an ?</p>
<p>oder wird diese erst hier erstellt:</p>
<pre><code class="language-cpp">int __cdecl W2P_0(int numberGreaterEqualThree, char **stringTable)
{
  int result; // eax@4
  int v3; // [sp+0h] [bp-1Ch]@1
  int *v4; // [sp+Ch] [bp-10h]@1
  int v5; // [sp+18h] [bp-4h]@5

  v4 = &amp;v3;
</code></pre>
<p>so wie ich das verstanden hatte, rufe ich die funktion so auf:<br />
sende nummer 3 und string für &quot;input.file output.file&quot;</p>
<p>hab zuerst versucht ein array mit input.file/output.file zu schicken.<br />
da kommt dann aber vermutlich nur 1 wert in der funktion an.</p>
<p>versuche nun eine stringtable an die funktion zu schicken.<br />
dabei stürzt das programm dann ab.</p>
<p>blickt da jemand durch und kann mir sagen wie ich die funktion richtig aufrufe das ausser der zahl auch &quot;input.file output.file&quot; ankommt ?</p>
<p>Nächtliche Grüße CPraktikant</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/282012/bitte-um-erklärung-des-code-schnippsel</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 11:23:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282012.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 12 Feb 2011 01:34:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bitte um Erklärung des Code Schnippsel on Sat, 12 Feb 2011 01:34:10 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich versuche schon was länger mit Delphi eine Dll aufzurufen.<br />
Scheiter dabei aber an dem richtigen Aufruf der Funktion W2P.<br />
Ich kann leider kein C++ und versteh nicht wirklich was da genau steht.</p>
<p>Dachte nun ich frag mal C++ Programmierer um Rat <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 />
Könnt ihr mir bitte helfen zu verstehen wie die Funktion angesteuert wird ?</p>
<p>Hab diese leider nur decompiliert vorliegen:</p>
<pre><code class="language-cpp">int __cdecl W2P(int numberGreaterEqualThree, char **fromTo)
{
  return W2P_0(numberGreaterEqualThree, fromTo);
}

int __cdecl W2P_0(int numberGreaterEqualThree, char **stringTable)
{
  int result; // eax@4
  int v3; // [sp+0h] [bp-1Ch]@1
  int *v4; // [sp+Ch] [bp-10h]@1
  int v5; // [sp+18h] [bp-4h]@5

  v4 = &amp;v3;
  if ( numberGreaterEqualThree &gt;= 3 &amp;&amp; **(stringTable + 1) &amp;&amp; **(stringTable + 2) )
  {
    printf(&quot;PXD2Wav Konvertierung: %s -&gt; %s&quot;, *(stringTable + 1), *(stringTable + 2));
    v5 = 0;
    strcpy(globalStringArray, *(stringTable + 1));
    strcpyOffset260(globalStringArray, *(stringTable + 2));
    result = convertPxdToWave_1000F8C5(globalStringArray);
  }
  else
  {
    result = printf(&quot;PXD2Wav Konvertierung: pxd -&gt; wav&quot;);
  }
  return result;
}
</code></pre>
<pre><code class="language-cpp">int __cdecl W2P(int numberGreaterEqualThree, char **fromTo)
</code></pre>
<p>kommt hier schon eine stringtable an ?</p>
<p>oder wird diese erst hier erstellt:</p>
<pre><code class="language-cpp">int __cdecl W2P_0(int numberGreaterEqualThree, char **stringTable)
{
  int result; // eax@4
  int v3; // [sp+0h] [bp-1Ch]@1
  int *v4; // [sp+Ch] [bp-10h]@1
  int v5; // [sp+18h] [bp-4h]@5

  v4 = &amp;v3;
</code></pre>
<p>so wie ich das verstanden hatte, rufe ich die funktion so auf:<br />
sende nummer 3 und string für &quot;input.file output.file&quot;</p>
<p>hab zuerst versucht ein array mit input.file/output.file zu schicken.<br />
da kommt dann aber vermutlich nur 1 wert in der funktion an.</p>
<p>versuche nun eine stringtable an die funktion zu schicken.<br />
dabei stürzt das programm dann ab.</p>
<p>blickt da jemand durch und kann mir sagen wie ich die funktion richtig aufrufe das ausser der zahl auch &quot;input.file output.file&quot; ankommt ?</p>
<p>Nächtliche Grüße CPraktikant</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019945</guid><dc:creator><![CDATA[CPraktikant]]></dc:creator><pubDate>Sat, 12 Feb 2011 01:34:10 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte um Erklärung des Code Schnippsel on Sat, 12 Feb 2011 09:36:24 GMT]]></title><description><![CDATA[<p>Ahhh ja, IDA und HexRays ^^</p>
<p>Jop, der zweite Parameter ist ein C-String Array.<br />
Da musst du auch eines übergeben, sonst crasht es logischweise da ansonsten ein Zeichen als Zeiger dereferenziert wird, was logischerweise einen Fehler gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019974</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 12 Feb 2011 09:36:24 GMT</pubDate></item></channel></rss>