<?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[lparam in String umwandeln ?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenden Problemcode:</p>
<pre><code class="language-cpp">TCHAR g_FileName[260];

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
  switch (msg)
  {
    case WM_COMMAND:
    switch (LOWORD(wparam))
    {
      case IDC_SETOUTPUT :
      strcpy(g_FileName, lparam);      //Problemzeile
      break;
    }
    default:
    return DefWindowProc(hwnd, msg, wparam, lparam);
  }
  return 0;
}
</code></pre>
<p>Ich bekomme von einem anderen Programm im Parameter lparam einen String übergeben. Dieser soll in die Variable g_FileName übertragen werden.<br />
Die Fehlermeldung für die oben markierte Zeile lautet:<br />
*<em>error C2664: 'strcpy' : Konvertierung des Parameters 1 von 'unsigned short [260]' in 'char <em>' nicht moeglich</em></em></p>
<p>Was mache ich falsch ?</p>
<p>Viele Grüße und vielen Dank vorab !</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/68789/lparam-in-string-umwandeln</link><generator>RSS for Node</generator><lastBuildDate>Mon, 15 Jun 2026 21:15:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/68789.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 21 Mar 2004 15:08:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 15:08:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenden Problemcode:</p>
<pre><code class="language-cpp">TCHAR g_FileName[260];

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
  switch (msg)
  {
    case WM_COMMAND:
    switch (LOWORD(wparam))
    {
      case IDC_SETOUTPUT :
      strcpy(g_FileName, lparam);      //Problemzeile
      break;
    }
    default:
    return DefWindowProc(hwnd, msg, wparam, lparam);
  }
  return 0;
}
</code></pre>
<p>Ich bekomme von einem anderen Programm im Parameter lparam einen String übergeben. Dieser soll in die Variable g_FileName übertragen werden.<br />
Die Fehlermeldung für die oben markierte Zeile lautet:<br />
*<em>error C2664: 'strcpy' : Konvertierung des Parameters 1 von 'unsigned short [260]' in 'char <em>' nicht moeglich</em></em></p>
<p>Was mache ich falsch ?</p>
<p>Viele Grüße und vielen Dank vorab !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485448</guid><dc:creator><![CDATA[FraggleCAM]]></dc:creator><pubDate>Sun, 21 Mar 2004 15:08:34 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 15:20:43 GMT]]></title><description><![CDATA[<p>TCHAR scheint inkompatibel zu char * zu sein, ich würde einfach den dateinamen mit char g_FileName[260]; delkarieren.<br />
vielleicth funktioniert auch eine explizite umwandlung:</p>
<p>strcpy((char *)g_FileName, lparam);</p>
<p>lparam sollte jedenfalls kein problem sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485453</guid><dc:creator><![CDATA[Frauke2k]]></dc:creator><pubDate>Sun, 21 Mar 2004 15:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 15:21:14 GMT]]></title><description><![CDATA[<p>wie wärs mit char[260]<br />
kann sein, dass dus dann noch in strcpy(&amp;g_FileName, lparam); ändern musst</p>
<p>is der übergebene string ein char oder tchar?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485455</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Sun, 21 Mar 2004 15:21:14 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 15:36:15 GMT]]></title><description><![CDATA[<p>Erstmal Vielen Dank für die schnelle Reaktion !!!!<br />
Habe es mal folgendermaßen probiert:</p>
<pre><code class="language-cpp">char g_FileName[260]; 
strcpy(&amp;g_FileName, lparam);
</code></pre>
<p>Das führt zu dieser Meldung<br />
*<em>error C2664: 'strcpy' : Konvertierung des Parameters 1 von 'char (*)[260]' in 'char <em>' nicht moeglich<br />
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat</em></em></p>
<p>Und</p>
<pre><code class="language-cpp">char g_FileName[260]; 
strcpy(g_FileName, lparam);
</code></pre>
<p>führt zu dieser Meldung</p>
<p>*<em>error C2664: 'strcpy' : Konvertierung des Parameters 2 von 'long' in 'const char <em>' nicht moeglich<br />
Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat</em></em></p>
<p>Irgendwie will er lparam als Long behandeln.<br />
Was ist lparam eigentlich für ein Datentyp ?</p>
<p>Any Ideas ?</p>
<p>Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485460</guid><dc:creator><![CDATA[FraggleCAM]]></dc:creator><pubDate>Sun, 21 Mar 2004 15:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 15:42:29 GMT]]></title><description><![CDATA[<p>du musst ihn noch umwandeln. lparam zeigt auf einen speicherbereich, ist also praktisch ein pointer, aber ohne typ.</p>
<p>versuch mal:</p>
<pre><code>char g_FileName[260];
strcpy(g_FileName, (char *)lparam);
</code></pre>
<p>geht aber nur, wenn das andere programm einen string im c-format (char-array) übergibt, sonst gibt es einen runtime error</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485463</guid><dc:creator><![CDATA[Frauke2k]]></dc:creator><pubDate>Sun, 21 Mar 2004 15:42:29 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 15:57:20 GMT]]></title><description><![CDATA[<p>Klasse, so geht es ! VIelen Dank !</p>
<p>Allerdings stehe ich jetzt vor dem Problem, wie ich meiner VB-Anwendung beibringe ein Char-Array zu senden .... ?<br />
&quot;ABCDEFG&quot; &amp; vbNullString reciht offenbar nicht aus !</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485471</guid><dc:creator><![CDATA[FraggleCAM]]></dc:creator><pubDate>Sun, 21 Mar 2004 15:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 16:02:14 GMT]]></title><description><![CDATA[<p>hm... keine ahnung, ich kenne mich in vb ned aus. vielleicht kannst du in vb irgendwie auf den buffer zugreifen von dem string, der ist dann bestimmt kompatibel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485473</guid><dc:creator><![CDATA[Frauke2k]]></dc:creator><pubDate>Sun, 21 Mar 2004 16:02:14 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 16:11:52 GMT]]></title><description><![CDATA[<p>Das werde ich irgendwie rausfinden.<br />
Dir jedenfalls Vielen Dank für die Tips !!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/485482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485482</guid><dc:creator><![CDATA[FraggleCAM]]></dc:creator><pubDate>Sun, 21 Mar 2004 16:11:52 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 16:52:34 GMT]]></title><description><![CDATA[<p>FraggleCAM schrieb:</p>
<blockquote>
<p>&quot;ABCDEFG&quot; &amp; vbNullString</p>
</blockquote>
<p>Wenn, dann müßte es auch &quot;ABCDEFG&quot; &amp; vbNull<strong>Char</strong> bzw. Chr$(0) heissen, soweit ich weiß...</p>
<p>MFG<br />
Brian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485512</guid><dc:creator><![CDATA[Brian 2004]]></dc:creator><pubDate>Sun, 21 Mar 2004 16:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Sun, 21 Mar 2004 17:00:53 GMT]]></title><description><![CDATA[<p>von vb aus strings schicken hab ich schon gemacht<br />
allerdings an ne c++ dll funktion</p>
<p>als parameter der c++ funktion hab ich char* genommen<br />
und in vb n string mit fester grösse übergeben Dim Bla As String*100 (oder so ähnlich)</p>
<p>ohne feste grösse geht zwar auch ... is aber gefährlich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485517</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Sun, 21 Mar 2004 17:00:53 GMT</pubDate></item><item><title><![CDATA[Reply to lparam in String umwandeln ? on Tue, 23 Mar 2004 09:11:08 GMT]]></title><description><![CDATA[<p>Dank für die Tips !!!</p>
<p>Ich habe es nun mal folgendermaßen probiert</p>
<pre><code class="language-cpp">_tcscpy(g_FileName, (PTSTR)lparam);
</code></pre>
<p>Das bringt zwar keinen Fehler mehr beim Compilen,<br />
allerdings bekomme ich eine <em>Unhandled Exeption : Access Violation</em>,<br />
wenn ich den String übergebe.</p>
<p>Ich sollte dazusagen, daß die sendende Applikation ein VB-Programm ist.</p>
<p>Dort schicke ich folgendes:</p>
<pre><code>Private Const WM_COMMAND = &amp;H111
Private Const IDC_SETOUTPUT = 1100

Dim strPath As String * 50
strPath = &quot;C:\Temp.txt&quot; &amp; vbNullChar
SendMessage ApphWnd, WM_COMMAND, IDC_SETOUTPUT, ByVal strPath
</code></pre>
<p>IDC_SETOUTPUT ist die C-Funktion, die dann oben stehende Umwandlungsfunktion enthält, und diesen String<br />
in die Variable g_FileName schreibt.</p>
<p>Hat jemand eine Idee, wo der Fehler liegen könnte ?<br />
Ich tappe gerade ziemlich im dunkeln...</p>
<p>Gruß<br />
Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/486647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/486647</guid><dc:creator><![CDATA[FraggleCAM]]></dc:creator><pubDate>Tue, 23 Mar 2004 09:11:08 GMT</pubDate></item></channel></rss>