<?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[Unicode String Funktionen]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann ich denn die Unicodeversion der neuen String Funktionen wie z.B. StringCbCat<br />
auch unter einem Win9x System nutzen, oder brauch ich da wie bei den normalen einen<br />
Unicode-Layer? Ich kann in der MSDN nichts darüber finden.</p>
<p>Und worin besteht denn der Unterschied zwischen z.B. StringCbCat und StringCchCat?</p>
<p>Gruß<br />
yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/146612/unicode-string-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 09:58:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146612.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 May 2006 12:30:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 12:30:08 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann ich denn die Unicodeversion der neuen String Funktionen wie z.B. StringCbCat<br />
auch unter einem Win9x System nutzen, oder brauch ich da wie bei den normalen einen<br />
Unicode-Layer? Ich kann in der MSDN nichts darüber finden.</p>
<p>Und worin besteht denn der Unterschied zwischen z.B. StringCbCat und StringCchCat?</p>
<p>Gruß<br />
yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054085</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Tue, 09 May 2006 12:30:08 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 12:45:42 GMT]]></title><description><![CDATA[<p>Da stellst Du eine interessante Frage...<br />
Die Funktionen direkt in der &quot;strsafe.lib&quot; implementiert und benötigen keine anderen DLLs... (kannst Du nachschauen indem Du &quot;dumpbin&quot; auf die strsafe.lib ausführst).<br />
Somit kannst Du die Funktionen unabhängig des OS verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054099</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 09 May 2006 12:45:42 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 12:48:06 GMT]]></title><description><![CDATA[<p>yogle schrieb:</p>
<blockquote>
<p>Und worin besteht denn der Unterschied zwischen z.B. StringCbCat und StringCchCat?</p>
</blockquote>
<p>Das eine nimmt als Länge &quot;bytes&quot; entgegen (C<strong>b</strong>), das anderen &quot;characters&quot; (oder besser &quot;code values&quot;) (C<strong>ch</strong>).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054106</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 09 May 2006 12:48:06 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 13:21:23 GMT]]></title><description><![CDATA[<p>Danke erstmal für die schnelle Hilfe.</p>
<p>Ist ja gut das man wenigstends die überall benutzen kann.</p>
<p>Nur damit ich das richtig verstehe. Ich kann unter Win9x also mit z.B. CreateFileA keine Datei öffne die einen Unicodenamen hat.<br />
Dazu bräuchte ich dann CreateFileW und damit ich das unterstützen kann, muss in meinem Projekt ein Unicode-Layer implementiert sein?</p>
<p>Gruß<br />
yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054139</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Tue, 09 May 2006 13:21:23 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 13:47:11 GMT]]></title><description><![CDATA[<p>AFAIK gibt es in neueren Entwicklungsumgebungen einen Schalter, mit dem man einstellen kann, ob der Code als Unicode oder als normaler Ansi-C-Code erstellt wird. Die Verlinkung und Convertierung geschieht dann automatisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054157</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Tue, 09 May 2006 13:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 14:01:15 GMT]]></title><description><![CDATA[<p>yogle schrieb:</p>
<blockquote>
<p>kann ich denn die Unicodeversion der neuen String Funktionen wie z.B. StringCbCat</p>
</blockquote>
<p>ist das sowas wie 'strcat' für wide chars? wenn ja dann gibts doch auch 'wcscat'. das geht mit sicherheit unter win9x.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054168</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 09 May 2006 14:01:15 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 14:15:02 GMT]]></title><description><![CDATA[<p>yogle schrieb:</p>
<blockquote>
<p>Nur damit ich das richtig verstehe. Ich kann unter Win9x also mit z.B. CreateFileA keine Datei öffne die einen Unicodenamen hat.</p>
</blockquote>
<p>Genau. Nur Dateiname die in die aktuelle &quot;Codepage&quot; passen.</p>
<p>yogle schrieb:</p>
<blockquote>
<p>Dazu bräuchte ich dann CreateFileW und damit ich das unterstützen kann, muss in meinem Projekt ein Unicode-Layer implementiert sein?</p>
</blockquote>
<p>Treffer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054178</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 09 May 2006 14:15:02 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 14:16:16 GMT]]></title><description><![CDATA[<p>Elektronix schrieb:</p>
<blockquote>
<p>AFAIK gibt es in neueren Entwicklungsumgebungen einen Schalter, mit dem man einstellen kann, ob der Code als Unicode oder als normaler Ansi-C-Code erstellt wird. Die Verlinkung und Convertierung geschieht dann automatisch.</p>
</blockquote>
<p>Damit wird es aber trotzdem nicht auf Win9x laufen, da dieses OS kein Unicode unterstützt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054179</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 09 May 2006 14:16:16 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 14:16:58 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>yogle schrieb:</p>
<blockquote>
<p>kann ich denn die Unicodeversion der neuen String Funktionen wie z.B. StringCbCat</p>
</blockquote>
<p>ist das sowas wie 'strcat' für wide chars? wenn ja dann gibts doch auch 'wcscat'. das geht mit sicherheit unter win9x.</p>
</blockquote>
<p>Du hast denn Sinn der &quot;StringXxx&quot; Funktionen nicht ganz verstanden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054180</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 09 May 2006 14:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 14:25:48 GMT]]></title><description><![CDATA[<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>Du hast denn Sinn der &quot;StringXxx&quot; Funktionen nicht ganz verstanden...</p>
</blockquote>
<p>ich kenne die noch nicht einmal <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="😉"
    /><br />
war' nur so'ne vermutung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054192</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 09 May 2006 14:25:48 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Tue, 09 May 2006 18:03:29 GMT]]></title><description><![CDATA[<p>Na dann ist ja schlecht <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="😉"
    /> Blöde Win9x-Systeme.</p>
<p>Da meine Anwendung aber auch unter Win9x laufen soll und ich Wide-Funktionen benötige, muss ich einen Unicode-Layer einbauen.</p>
<p>Ich hab mich für Unicows entschieden, da die Lizens bei Microsofts Unicode Layer mir viel zu lang ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> In der Doku steht, dass man die Libary vor alle anderen Libarys einfügen soll.<br />
Ich programmiere mit der Dev-Cpp IDE und weiß nun nicht wie ich da die Libary vor allen anderen einfügen soll!<br />
Ich hab nirgends (Makefile, Einstellungen) gesehen, wo z.B. die Kernel32.a eingefügt wird und ich die liblibunicows.a davorsetzen könnte.</p>
<p>Vielleicht hat jemand damit schon einmal Erfahrungen gemacht.</p>
<p>// edit:<br />
Diese Sache ist noch ganz interessant. Hab mal die unicows.dll disassembliert um zu schauen was diese denn macht, denn da das OS die Wide-Funktionen nicht unterstützt kann die Libary diese auch nicht herzaubern und so ist es auch. Ich hab mir mal die Funktion GetModuleFileNameW genauer angeschaut. Es scheint so, als ob die Lib mit dem übergebenen Handle die Funktion GetModuleFileNameA aufruft und dann über MultiByteToWideChar den String zu Unicode umwandelt falls es kein NT-System sein sollte!</p>
<p>Also kann z.B. ein Modul doch einen Unicodenamen haben, der über Ansi-Funktionen abgefragt wird und dann danach zum richtigen Unicodenamen umgewandlt wird. Oder liege ich hier falsch?</p>
<p>Gruß<br />
yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054274</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Tue, 09 May 2006 18:03:29 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 14:46:48 GMT]]></title><description><![CDATA[<p>Man soll ja immer die &quot;Lösung&quot; posten.</p>
<p>Hab mir jetzt einfach mal den opencow Source Code gezogen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
und mir die benötigten Funktionen rauskopiert. Die Funktionen rufe ich jetz intern z.B. so auf:</p>
<pre><code>DWORD WINAPI MyGetModuleFileNameW( IN HMODULE hModule, OUT LPWSTR lpFilename, IN DWORD nSize )
{
    CMbcsBuffer mbcsFilename;
    if (!mbcsFilename.SetCapacity(nSize))
        return 0;

    //TODO: does the return value include the NULL char or not??
    if (!::GetModuleFileNameA(hModule, mbcsFilename, mbcsFilename.BufferSize()))
        return 0;

    return (DWORD) ::MultiByteToWideChar(CP_ACP, 0, mbcsFilename, -1, lpFilename, nSize);
}

// der Aufruf
MyGetModuleFileNameW( hModule, szwModulePath, MAX_PATH );
</code></pre>
<p>So benötige ich keine Library und keine DLL, muss mir halt die benötigten Funktionen einbauen. <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>Gruß<br />
yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054908</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Wed, 10 May 2006 14:46:48 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 17:21:38 GMT]]></title><description><![CDATA[<p>Aber das ist doch keine Lösung... dann kannst Du doch gleich Deine Anwendung mit ANSI übersetzen!<br />
Was soll den daran eine Lösung sein???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055036</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Wed, 10 May 2006 17:21:38 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 18:11:27 GMT]]></title><description><![CDATA[<p>Deswegen ja auch</p>
<blockquote>
<p>&quot;Lösung&quot;</p>
</blockquote>
<p>Aber so schlecht ist es gar nicht mal, denn es bietet ja nur den Nachteil, dass ich die benötigten Funktionen einfügen muss, dafür aber wie schon geschrieben, benötige ich keine DLL und keine Lib. Es funktioniert so und bietet kaum Nachteile, reicht mir erstmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Habe aber ein weiteres Problem. Ich habe eine Datei in der UTF-8 Strings stehen und<br />
möchte die Strings in &quot;normales&quot; Unicode umwandeln. Hab es über WideCharToMutliByte versucht, allerdings kommt immer nur Mist dabei raus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Vielleicht kann da jemand ein kurzes Beispiel geben?</p>
<p>Gruß<br />
yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055079</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Wed, 10 May 2006 18:11:27 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 18:16:58 GMT]]></title><description><![CDATA[<p>yogle schrieb:</p>
<blockquote>
<p>Deswegen ja auch</p>
<blockquote>
<p>&quot;Lösung&quot;</p>
</blockquote>
<p>Aber so schlecht ist es gar nicht mal, denn es bietet ja nur den Nachteil, dass ich die benötigten Funktionen einfügen muss, dafür aber wie schon geschrieben, benötige ich keine DLL und keine Lib. Es funktioniert so und bietet kaum Nachteile, reicht mir erstmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Ich verstehe nicht, was daran besser sein soll, als einfach mit ANSI zu übersetzen??? Ausser das es mehr Aufwand ist...</p>
<p>yogle schrieb:</p>
<blockquote>
<p>Habe aber ein weiteres Problem. Ich habe eine Datei in der UTF-8 Strings stehen und möchte die Strings in &quot;normales&quot; Unicode umwandeln. Hab es über WideCharToMutliByte versucht, allerdings kommt immer nur Mist dabei raus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Hmm.... UTF8 ist ja auch kein WideChar, oder? Verwende also lieber MultiByteToWideChar mit CP_UTF8.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055085</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Wed, 10 May 2006 18:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 19:41:17 GMT]]></title><description><![CDATA[<p>Ich versteh irgendwie nicht ganz was du</p>
<blockquote>
<p>mit ANSI zu übersetzen</p>
</blockquote>
<p>meinst? Ich hab z.B. in meinem Code die Funktion GetModulFileNameW() da es sich ja auch um ein Modul mit Unicodenamen halten könnte. Wenn ich nun unter Win9x dies aufrufen möchte, benötige ich ja einen Unicode-Layer und da ich nun halt die Funktion MyGetModulFileNameW() anstatt von GetModulFileNameW() aufrufe funktioniert dies eben auch unter Win9x.</p>
<p>Danke für die Hilfe mit dem MultiByteToWideChar, habs nun hinbekommen.</p>
<p>Gruß<br />
yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055141</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Wed, 10 May 2006 19:41:17 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 19:46:01 GMT]]></title><description><![CDATA[<p>Vielleicht verstehe ich ja nicht, was Du machst...<br />
Du musst ja sowieso zwei EXEen erstellen. Eine für W9x und eine für NT und später...<br />
Warum verwendest Du nicht immer nur die TCHAR-Varianten, dann kannst Du einmal ohne &quot;UNICODE,_UNICODE&quot; in den preprozessor-Defines übersetzen (für Win9x) und einmal mit &quot;UNICODE,_UNICODE&quot; (für NT und später)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055146</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Wed, 10 May 2006 19:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 20:00:54 GMT]]></title><description><![CDATA[<p>Mach mir keine Angst! Wieso zwei EXEen? Jetzt versteh ich gar nichts mehr.<br />
Eigentlich dachte ich, ich könnte mein Programm soweit kompatibel halten, dass es auf Win9x _und_ WinNT oder höher läuft. Genauer geht es eingentlich um eine DLL die Mithilfe der madCodeHook Library in alle Prozesse injiziert wird, um dann manche Funktionen zu patchen. Das ist eh schon schwierig genug, da ich nicht einmal feste Strings im Code haben und nur Kernel32.dll Funktionen aufrufen darf!</p>
<p>yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055166</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Wed, 10 May 2006 20:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 20:02:43 GMT]]></title><description><![CDATA[<p>Die Ansi-Version läuft auf allen Windows.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055168</guid><dc:creator><![CDATA[................]]></dc:creator><pubDate>Wed, 10 May 2006 20:02:43 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 20:06:16 GMT]]></title><description><![CDATA[<p>yogle schrieb:</p>
<blockquote>
<p>Eigentlich dachte ich, ich könnte mein Programm soweit kompatibel halten, dass es auf Win9x _und_ WinNT oder höher läuft.</p>
</blockquote>
<p>Warum machst Du Dir dann überhaupt die Mühe und verwendest die W-Funktionen, die es unter W9x nicht gibt? Wenn Du sie eh *immer* Emulierst, kannst Du auch gleich die A-Funktionen aufrufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055174</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Wed, 10 May 2006 20:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Wed, 10 May 2006 20:16:12 GMT]]></title><description><![CDATA[<p>Damit ich den korrekten Unicodenamen erhalte muss ich ja entweder die Ansiversion aufrufen (W9x) und dann umwandeln, also die W-Funktion emulieren, oder sie direkt aufrufen (WNT). Eine Unterscheidung wann ich welche aufrufe will ich noch einbauen.</p>
<p>Aber ich kann keinen Unterschied mehr zu einem Unicode-Layer erkennen? Dieser macht doch exakt das selbe und ich kann ja auch nicht auf den Unicodenamen verzichten, da dieser unter ANSI Mist ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055183</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Wed, 10 May 2006 20:16:12 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Thu, 11 May 2006 05:36:05 GMT]]></title><description><![CDATA[<p>yogle schrieb:</p>
<blockquote>
<p>Eine Unterscheidung wann ich welche aufrufe will ich noch einbauen.</p>
</blockquote>
<p>Die ENtscheidung kann ja aber nur dynamisch (also mit LoadLibrary/GetProcAddress) erfolgen, wenn Du nur eine EXE haben willst...</p>
<p>yogle schrieb:</p>
<blockquote>
<p>Aber ich kann keinen Unterschied mehr zu einem Unicode-Layer erkennen? Dieser macht doch exakt das selbe und ich kann ja auch nicht auf den Unicodenamen verzichten, da dieser unter ANSI Mist ist.</p>
</blockquote>
<p>Ja. Warum nimmst Du nicht den MSLU?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055263</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 11 May 2006 05:36:05 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Thu, 11 May 2006 08:32:52 GMT]]></title><description><![CDATA[<p>So früh schon wieder dran? Respekt!</p>
<p>Wieso denn dynamisch. Wollte es so ungefähr machen:</p>
<pre><code>// Pseudocode
if( WinNT )
{
    W-Funktion
}
else
{
    A-Funktion
    Umwandlung
}
</code></pre>
<p>da brauch ich doch nichts mit dynamischen laden der DLL machen.</p>
<p>Diese Unicodesache ist mir doch recht suspekt. Hab jetzt schon zig Artkiel gelesen aber das ganze ist recht umfangreich. Kann es sein, dass unter WNT intern als Stringformat UTF-16 benutzt wird und MessageBoxW nicht alle UTF-Zeichen anzeigen kann?</p>
<p>Habs bisher probeweiße so gemacht:</p>
<pre><code>char      *szcFileRead  = NULL;
wchar_t   *szwFileRead  = NULL;

// Arraygröße anpassen
szcFileRead = malloc( dwFileSize + 1);

// Datei komplett einlesen
if( !ReadFile( hFile, szcFileRead, dwFileSize, &amp;dwBytesRead, NULL ))
{
    MessageBox( NULL, &quot;Fehler ReadFile&quot;, &quot;Fehler&quot;, MB_OK );
    CloseHandle( hFile );
    return 0;
}

CloseHandle( hFile );

szwFileRead = malloc( dwFileSize + 1 );

// Umwandlung zu UTF
MultiByteToWideChar( CP_UTF8, 0, szcFileRead, -1, szwFileRead, dwFileSize );

MessageBoxW( NULL, szwFileRead, L&quot;Ausgelesen&quot;, MB_OK );
</code></pre>
<p>Das Original:<br />
αβγабвאבג⅓⅔⅛⅜⅝⅞Ω☼<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2640.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--female_sign"
      title=":female_sign:"
      alt="♀"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--male_sign"
      title=":male_sign:"
      alt="♂"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2660.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--spade_suit"
      title=":spade_suit:"
      alt="♠"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2663.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--club_suit"
      title=":club_suit:"
      alt="♣"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2665.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--heart_suit"
      title=":heart_suit:"
      alt="♥"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2666.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--diamond_suit"
      title=":diamond_suit:"
      alt="♦"
    />♪♫ﻹﻺﻻﻼ<br />
abc åäö</p>
<p>MessageBoxW:<br />
αβγабвבג□□⅛⅜⅝⅞Ω□□□□□□□□□ﻹﻺﻻﻼ<br />
abc åäö</p>
<p>Irgendwas stimmt noch nicht. Werd mich noch mal dran setzen müssen.</p>
<p>Gruß<br />
yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055351</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Thu, 11 May 2006 08:32:52 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Thu, 11 May 2006 08:52:33 GMT]]></title><description><![CDATA[<p>yogle schrieb:</p>
<blockquote>
<p>da brauch ich doch nichts mit dynamischen laden der DLL machen.</p>
</blockquote>
<p>Dann wirst Du diese EXE aber unter Win9x nicht starten können, da der &quot;Lader&quot; der EXE die W-Funktionen nicht auflösen kann, da diese eben nicht vorhanden sind. Somit wird schon das Laden Deiner EXE abgebrochen.</p>
<p>yogle schrieb:</p>
<blockquote>
<p>Kann es sein, dass unter WNT intern als Stringformat UTF-16 benutzt wird</p>
</blockquote>
<p>Ja. Genauer gesagt UCS-2 was aber keine Bedeutung</p>
<p>yogle schrieb:</p>
<blockquote>
<p>MessageBoxW nicht alle UTF-Zeichen anzeigen kann?</p>
</blockquote>
<p>Woher hast Du denn das?</p>
<p>yogle schrieb:</p>
<blockquote>
<p>Das Original:<br />
αβγабвאבג⅓⅔⅛⅜⅝⅞Ω☼<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2640.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--female_sign"
      title=":female_sign:"
      alt="♀"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--male_sign"
      title=":male_sign:"
      alt="♂"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2660.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--spade_suit"
      title=":spade_suit:"
      alt="♠"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2663.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--club_suit"
      title=":club_suit:"
      alt="♣"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2665.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--heart_suit"
      title=":heart_suit:"
      alt="♥"
    /><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2666.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--diamond_suit"
      title=":diamond_suit:"
      alt="♦"
    />♪♫ﻹﻺﻻﻼ<br />
abc åäö</p>
<p>MessageBoxW:<br />
αβγабвבג□□⅛⅜⅝⅞Ω□□□□□□□□□ﻹﻺﻻﻼ<br />
abc åäö</p>
</blockquote>
<p>Hast Du auch wirklich UTF_8 eingelesen? Sind bei Dir auch alle Schriftarten installiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055358</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 11 May 2006 08:52:33 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Thu, 11 May 2006 09:21:57 GMT]]></title><description><![CDATA[<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>Dann wirst Du diese EXE aber unter Win9x nicht starten können, da der &quot;Lader&quot; der EXE die W-Funktionen nicht auflösen kann, da diese eben nicht vorhanden sind. Somit wird schon das Laden Deiner EXE abgebrochen.</p>
</blockquote>
<p>Achso, dann natürlich schon. Ich würde ja gerne den fertigen Unicode-Layer benutzen, weiß aber nicht wie ich die Library vor allen anderen einfügen könnte.</p>
<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>yogle schrieb:</p>
<blockquote>
<p>MessageBoxW nicht alle UTF-Zeichen anzeigen kann?</p>
</blockquote>
<p>Woher hast Du denn das?</p>
</blockquote>
<p>Dacht mir nur, da sie sonst mit UltraEdit, Notepad korrekt angezeigt wird. Was ja eigentlich auch bedeuten müsste das ich die benötigten Sprachen installiert habe und es ist ganz sicher eine UTF-8 Datei.</p>
<p>Aber der Code stimmt soweit?</p>
<p>yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055397</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Thu, 11 May 2006 09:21:57 GMT</pubDate></item><item><title><![CDATA[Reply to Unicode String Funktionen on Thu, 11 May 2006 09:56:20 GMT]]></title><description><![CDATA[<p>yogle schrieb:</p>
<blockquote>
<p>Aber der Code stimmt soweit?</p>
</blockquote>
<p>Nein. Du übergibst einen zu kleinen Puffer für die UNICODE-Zeichen... dann wird versucht so viel wie möglich zu konvertieren und dann aber nicht NUL-terminiert... somit gibt er dann irgendwas aus, was nach dem Puffer steht...</p>
<p>Bzgl. MSLU: Was ist da genau Dein Problem?<br />
<a href="http://msdn.microsoft.com/msdnmag/issues/01/10/MSLU/default.aspx" rel="nofollow">http://msdn.microsoft.com/msdnmag/issues/01/10/MSLU/default.aspx</a><br />
<a href="http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx" rel="nofollow">http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055434</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 11 May 2006 09:56:20 GMT</pubDate></item></channel></rss>