<?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[Funktion nimmt keine Zeichenketten als Parameter an.]]></title><description><![CDATA[<p>Hallo,<br />
ich wollte eigentich &quot;mal eben&quot; ein C++ prog schreiben was guckt ob es ein bestimmtes Verzeichnis gibt.</p>
<p>Beispiele habe ich duzende gefunden. Aber das Verzeichins was ich suche baue ich mir erstmal zusammen und gebe kein festes ein.</p>
<p>Nehmen wir zB. dieses Beispiel.<br />
Funktioniert</p>
<pre><code class="language-cpp">bool exist =(GetFileAttributes(_T(&quot;C:\\Windows&quot;))==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
</code></pre>
<p>Funktioniert nicht</p>
<pre><code class="language-cpp">string dir32 = &quot;C:\\Windows&quot;;
	bool exist =(GetFileAttributes(_T(dir32))==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
</code></pre>
<p>Fehler 6 error C2065: 'Ldir32': nichtdeklarierter Bezeichner</p>
<p>Ohne _T() kommt</p>
<p>Fehler 6 error C2664: 'GetFileAttributesW': Konvertierung des Parameters 1 von 'std::string' in 'LPCWSTR' nicht möglich</p>
<p>Ich verstehe das nicht. Ich komme aus dem Java lager :p und dort gibts solche Problemme nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/213618/funktion-nimmt-keine-zeichenketten-als-parameter-an</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 05:24:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/213618.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 May 2008 19:13:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 19:13:36 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich wollte eigentich &quot;mal eben&quot; ein C++ prog schreiben was guckt ob es ein bestimmtes Verzeichnis gibt.</p>
<p>Beispiele habe ich duzende gefunden. Aber das Verzeichins was ich suche baue ich mir erstmal zusammen und gebe kein festes ein.</p>
<p>Nehmen wir zB. dieses Beispiel.<br />
Funktioniert</p>
<pre><code class="language-cpp">bool exist =(GetFileAttributes(_T(&quot;C:\\Windows&quot;))==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
</code></pre>
<p>Funktioniert nicht</p>
<pre><code class="language-cpp">string dir32 = &quot;C:\\Windows&quot;;
	bool exist =(GetFileAttributes(_T(dir32))==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
</code></pre>
<p>Fehler 6 error C2065: 'Ldir32': nichtdeklarierter Bezeichner</p>
<p>Ohne _T() kommt</p>
<p>Fehler 6 error C2664: 'GetFileAttributesW': Konvertierung des Parameters 1 von 'std::string' in 'LPCWSTR' nicht möglich</p>
<p>Ich verstehe das nicht. Ich komme aus dem Java lager :p und dort gibts solche Problemme nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512562</guid><dc:creator><![CDATA[SchtinkeSocke]]></dc:creator><pubDate>Mon, 19 May 2008 19:13:36 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 19:36:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">dir32.c_str()
</code></pre>
<p>löst das Problem.</p>
<blockquote>
<p>Ich verstehe das nicht. Ich komme aus dem Java lager :p und dort gibts solche Problemme nicht.</p>
</blockquote>
<p>Klassendokumentationen gibts dort sicher auch nicht :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512577</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 19 May 2008 19:36:28 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 21:27:31 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<pre><code class="language-cpp">dir32.c_str()
</code></pre>
<p>löst das Problem.</p>
</blockquote>
<p>Das steht in der FAQ &quot;Wichtige Fragen&quot; hier im Forum. Die ich gelesen habe.</p>
<p>Das antwortet mir Visual Studio 8 auf dir32.c_str()</p>
<p>Fehler 6 error C2664: 'GetFileAttributesW': Konvertierung des Parameters 1 von 'const char *' in 'LPCWSTR' nicht möglich.</p>
<p>Und mit _T(dir32.c_str())</p>
<p>Fehler 6 error C2065: 'Ldir32': nichtdeklarierter Bezeichner<br />
Fehler 7 error C2228: Links von &quot;.c_str&quot; muss sich eine Klasse/Struktur/Union befinden.</p>
<p>Ich glaube hier hilft mir eine Klassendokumentation recht wenig. Scheint ein grundverständins Problem zu sein.</p>
<p>Wo ist der unterschied zwischen &quot;hallo&quot; und string blub = &quot;hallo&quot; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512647</guid><dc:creator><![CDATA[SchtinkeSocke]]></dc:creator><pubDate>Mon, 19 May 2008 21:27:31 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 21:30:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;string&gt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1512653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512653</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 19 May 2008 21:30:33 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 21:37:05 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;string&gt;
</code></pre>
</blockquote>
<p>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="😃"
    /> dh. war nicht der Fehler.</p>
<p>Sonst vieleicht noch was includieren was wichtig sein könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512657</guid><dc:creator><![CDATA[SchtinkeSocke]]></dc:creator><pubDate>Mon, 19 May 2008 21:37:05 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 21:37:30 GMT]]></title><description><![CDATA[<p>Ich habe zwar noch nie was mit der Windows-Programmierung am Hut gehabt, aber kann es sein, dass es sich beim</p>
<blockquote>
<p>'LPCWSTR'</p>
</blockquote>
<p>um ein <em><strong>l</strong>ong <strong>p</strong>ointer (to) <strong>c</strong>har <strong>w</strong>ide <strong>s</strong>tring</em> handelt und daher std::wstring erforderlich ist?</p>
<p>Mutmaßungen über Mutmaßungen</p>
<p>Grüße... Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512659</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Mon, 19 May 2008 21:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 21:47:14 GMT]]></title><description><![CDATA[<p>bwbg schrieb:</p>
<blockquote>
<p>Ich habe zwar noch nie was mit der Windows-Programmierung am Hut gehabt, aber kann es sein, dass es sich beim</p>
<blockquote>
<p>'LPCWSTR'</p>
</blockquote>
<p>um ein <em><strong>l</strong>ong <strong>p</strong>ointer (to) <strong>c</strong>har <strong>w</strong>ide <strong>s</strong>tring</em> handelt und daher std::wstring erforderlich ist?</p>
<p>Mutmaßungen über Mutmaßungen</p>
<p>Grüße... Heiko</p>
</blockquote>
<p>Jo,darum benutzt er ja auch _T.</p>
<p>Hast du denn tchar inkludet?</p>
<p>EDIT:<br />
Zeig sonst ein wenig mehr Code her.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512664</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 19 May 2008 21:47:14 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 21:47:53 GMT]]></title><description><![CDATA[<p>bwbg schrieb:</p>
<blockquote>
<p>Ich habe zwar noch nie was mit der Windows-Programmierung am Hut gehabt, aber kann es sein, dass es sich beim</p>
<blockquote>
<p>'LPCWSTR'</p>
</blockquote>
<p>um ein <em><strong>l</strong>ong <strong>p</strong>ointer (to) <strong>c</strong>har <strong>w</strong>ide <strong>s</strong>tring</em> handelt und daher std::wstring erforderlich ist?</p>
<p>Mutmaßungen über Mutmaßungen</p>
<p>Grüße... Heiko</p>
</blockquote>
<p>Hallo Heiko,<br />
wie würde man das anwenden und was sollte das bewirken?</p>
<p>Laut <a href="http://msdn.microsoft.com/en-us/library/aa364944(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa364944(VS.85).aspx</a><br />
handelt es sich tatsächlich um einen LPCWSTR. Ich kenne diesen Datentyp nicht und weiss nicht wie ich damit umgehen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512665</guid><dc:creator><![CDATA[SchtinkeSocke]]></dc:creator><pubDate>Mon, 19 May 2008 21:47:53 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 21:51:40 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>bwbg schrieb:</p>
<blockquote>
<p>Ich habe zwar noch nie was mit der Windows-Programmierung am Hut gehabt, aber kann es sein, dass es sich beim</p>
<blockquote>
<p>'LPCWSTR'</p>
</blockquote>
<p>um ein <em><strong>l</strong>ong <strong>p</strong>ointer (to) <strong>c</strong>har <strong>w</strong>ide <strong>s</strong>tring</em> handelt und daher std::wstring erforderlich ist?</p>
<p>Mutmaßungen über Mutmaßungen</p>
<p>Grüße... Heiko</p>
</blockquote>
<p>Jo,darum benutzt er ja auch _T.</p>
<p>Hast du denn tchar inkludet?</p>
<p>EDIT:<br />
Zeig sonst ein wenig mehr Code her.</p>
</blockquote>
<p>Natürlich. Also das ist der ganze Code. Sind ein paar Experimente noch drin. Sinn des Ganzen ist es ein Windows auf 32 oder 64 bit zu überprüfen und ein Java Program zu starten.</p>
<pre><code>#include &lt;stdafx.h&gt;
#include &lt;windows.h&gt;
#include &lt;shellapi.h&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;Shlwapi.h&gt;

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	char systemDir64[256];
	char systemDir32[256];
	strcpy(systemDir64,getenv(&quot;SystemRoot&quot;));
	strcpy(systemDir32,getenv(&quot;SystemRoot&quot;));
	strcat(systemDir64,&quot;\\SysWOW64&quot;);
	strcat(systemDir32,&quot;\\System32&quot;);

	string dir64 = &quot;&quot;;
	dir64 = dir64 + systemDir64;

	string dir32 = &quot;Windows&quot;;

	cout &lt;&lt; dir64 &lt;&lt; endl;
	cout &lt;&lt; dir32 &lt;&lt; endl;

	// 64 bit windows
	bool exist =(GetFileAttributes(_T(dir32.c_str()))==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
	if (exist){
		strcat(systemDir64,&quot;\\javaw.exe&quot;);
		//ShellExecute(NULL, _T(&quot;open&quot;), systemdir64, _T(&quot;-jar myswt.jar&quot;), NULL, SW_SHOW);
	}
	else{
		// 32 bit windows
		bool exist =(GetFileAttributes(_T(systemDir32))==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
		if (exist){
			strcat(systemDir32,&quot;\\javaw.exe&quot;);
			ShellExecute(NULL, _T(&quot;open&quot;), _T(systemDir64), _T(&quot;-jar myswt.jar&quot;), NULL, SW_SHOW);
		}
	}
	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1512666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512666</guid><dc:creator><![CDATA[SchtinkeSocke]]></dc:creator><pubDate>Mon, 19 May 2008 21:51:40 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 21:54:00 GMT]]></title><description><![CDATA[<p>Also wenn du das ausschalten willst, musst du das in den Projekteinstellungen machen. Project-&gt;Project Propertys -&gt;Configuration Properties-&gt;General und dann Character Set auf Multibyte stellen.<br />
Dann kannst du das Makro _T und somit L vor strings lassen.</p>
<p>Allerdings hat Unicode Vorteile, man sollte daher diese auch lassen und lieber mit dem geringen Mehraufwand leben.</p>
<p>EDIT:<br />
Ich bin von VC++ ausgegangen. Wies bei dir aussieht, weiss ich jetzt nicht, aber man mnüsste das irgendwo in den Einstellungen auch umstellen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512670</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 19 May 2008 21:54:00 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Mon, 19 May 2008 23:07:22 GMT]]></title><description><![CDATA[<p>SchtinkeSocke schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>bwbg schrieb:</p>
<blockquote>
<p>Ich habe zwar noch nie was mit der Windows-Programmierung am Hut gehabt, aber kann es sein, dass es sich beim</p>
<blockquote>
<p>'LPCWSTR'</p>
</blockquote>
<p>um ein <em><strong>l</strong>ong <strong>p</strong>ointer (to) <strong>c</strong>har <strong>w</strong>ide <strong>s</strong>tring</em> handelt und daher std::wstring erforderlich ist?</p>
<p>Mutmaßungen über Mutmaßungen</p>
<p>Grüße... Heiko</p>
</blockquote>
<p>Jo,darum benutzt er ja auch _T.</p>
<p>Hast du denn tchar inkludet?</p>
<p>EDIT:<br />
Zeig sonst ein wenig mehr Code her.</p>
</blockquote>
<p>Natürlich. Also das ist der ganze Code. Sind ein paar Experimente noch drin. Sinn des Ganzen ist es ein Windows auf 32 oder 64 bit zu überprüfen und ein Java Program zu starten.</p>
<pre><code class="language-cpp">#include &lt;stdafx.h&gt;
#include &lt;windows.h&gt;
#include &lt;shellapi.h&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;Shlwapi.h&gt;

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	char systemDir64[256];
	char systemDir32[256];
	strcpy(systemDir64,getenv(&quot;SystemRoot&quot;));
	strcpy(systemDir32,getenv(&quot;SystemRoot&quot;));
	strcat(systemDir64,&quot;\\SysWOW64&quot;);
	strcat(systemDir32,&quot;\\System32&quot;);

	string dir64 = &quot;&quot;;
	dir64 = dir64 + systemDir64;

	string dir32 = &quot;Windows&quot;;
	
	cout &lt;&lt; dir64 &lt;&lt; endl;
	cout &lt;&lt; dir32 &lt;&lt; endl;

	// 64 bit windows
	bool exist =(GetFileAttributes(_T(dir32.c_str()))==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
	if (exist){
		strcat(systemDir64,&quot;\\javaw.exe&quot;);
		//ShellExecute(NULL, _T(&quot;open&quot;), systemdir64, _T(&quot;-jar myswt.jar&quot;), NULL, SW_SHOW);
	}
	else{
		// 32 bit windows
		bool exist =(GetFileAttributes(_T(systemDir32))==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
		if (exist){
			strcat(systemDir32,&quot;\\javaw.exe&quot;);
			ShellExecute(NULL, _T(&quot;open&quot;), _T(systemDir64), _T(&quot;-jar myswt.jar&quot;), NULL, SW_SHOW);
		}
	}
	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
</blockquote>
<p>Ah sorry wegen Doppelpost. Wollte auf Editieren und bin wohl auf Zitieren gelandet.</p>
<p>Ach noch sehr wichtig. Die ShellExecute geht natürlich auch nicht!!! Hier im Forum gibts für ShellExecute auch eine FAQ aber da wird ein AnsiString (man wieviele Variablentypen es bei c++ gibt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> ) benutzt. Ich nutzte aber Visual Studio 8 und da gibts wohl kein AnsiString oder? Das Problem ist genau das gleiche.</p>
<p>Ich google mir schon seit Stunden einen ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512671</guid><dc:creator><![CDATA[SchtinkeSocke]]></dc:creator><pubDate>Mon, 19 May 2008 23:07:22 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Tue, 20 May 2008 07:23:15 GMT]]></title><description><![CDATA[<p>SchtinkeSocke schrieb:</p>
<blockquote>
<p>Ach noch sehr wichtig. Die ShellExecute geht natürlich auch nicht!!! Hier im Forum gibts für ShellExecute auch eine FAQ aber da wird ein AnsiString (man wieviele Variablentypen es bei c++ gibt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> ) benutzt. Ich nutzte aber Visual Studio 8 und da gibts wohl kein AnsiString oder? Das Problem ist genau das gleiche.</p>
</blockquote>
<p>1. Wie wäre es mal mit F1 über den Befehl. Zumindestens sollte dann die Hilfe aufgehen (sofern du auch die MSDN installiert hast)...</p>
<p>2. C++ hat recht wenige integrale Datentypen, nur wurde erst recht spät eine Klasse für Strings eingeführt (std::string, std::wstring) so das viele vorwiegend ältere Bibliotheken hier ihre eigenen Typen mitbringen (AnsiString hört sich nach Borland/Codegear C++ Builder an).</p>
<p>Im Gegensatz zu Java musst du einfach wissen das es nicht eine Bibliothek gibt sondern sehr viele verschiedene.</p>
<p>Und der Unterschied zwischen &quot;Hallo&quot; und einem std::string mit dem Inhalt &quot;Hallo&quot; ist der:</p>
<p>&quot;Hallo&quot; ist ein Stringliteral des Typs char*.</p>
<p>std::string ist ein eigener Typ der intern ein Stringliteral hält, aber viele Hilfsfunktionen anbietet. Unter anderem auch die Methode .c_str() um eine Umwandlung in den zugrundeliegenden Basistyp (Bei std::string ist das char*, bei std::wstring ist es t_char*) vorzunehmen... Ein std::string sollte weitgehend wie ein Javastring verwendbar sein.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512771</guid><dc:creator><![CDATA[asc@ausgeloggt]]></dc:creator><pubDate>Tue, 20 May 2008 07:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Tue, 20 May 2008 10:34:57 GMT]]></title><description><![CDATA[<p>1. Findet nie was. Ist wohl bei der Installation was falsch gleaufen. Auserdem bringt mir das nichts. Da wird nur das stehen was ich schon weiß.</p>
<p>Was bleibt ist mein Problem. GetFileAttributes wie auch ShellExecute brauchen einen<br />
LPCWSTR als Parameter. Egal wie lange ich nach einer Lösung suche, ich finde keine die bei mir funktioniert.</p>
<p>Hilfreich wäre ein unter Visual Studio 8 funktionierend geschriebener Quellcode der einfach nur zb. ShellExecute aufruft ohne dabei &quot;notepad.exe&quot; als Paramater zu bekommen sondern das Ganze über eine Variable macht.</p>
<p>Ansonsten muss ich das wohl als nicht möglich abstempelln und mir dieses Borland angucken. Vieleicht gehts ja damit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512914</guid><dc:creator><![CDATA[SchtinkeSocke]]></dc:creator><pubDate>Tue, 20 May 2008 10:34:57 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Tue, 20 May 2008 10:40:32 GMT]]></title><description><![CDATA[<p>WinAPI-Funktionsnamen expandieren - je nach Compilereinstellung - zu FunktionW oder FunktionA (Wide-String/Unicode oder ANSI). Du benutzt anscheinend den Unicode-Modus, weshalb die WinAPI gerne Widestrings hätte, benutzt aber selbst normale &quot;schmale&quot; Std-Strings. Da kann aber C++ nichts für <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>Du hast also mehrere Möglichkeiten:<br />
1. Stell das Programm konsequent auf ANSI um<br />
2. Stell das Programm konsequent auf UNICODE um<br />
3. Sprich direkt ShellExecuteA, GetFileAttributesA usw. an.</p>
<p>Von einem std:: (w)string zu einem LPC(T/W)STR kommst Du übrigens mit der Methode c_str().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1512922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512922</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 20 May 2008 10:40:32 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Tue, 20 May 2008 12:11:34 GMT]]></title><description><![CDATA[<p>EDIT</p>
<p>Ok ich denke ich habe es.</p>
<p>Danke für euere Erklärungen. Jetzt habe ich auch den Sinn verstanden.</p>
<p>Mit dem A am Ende gehts.</p>
<pre><code class="language-cpp">string dir32 = &quot;C:\\Windows\\System32\\javaw.exe&quot;;
	ShellExecuteA(NULL, &quot;open&quot;, dir32.c_str(), &quot;-jar myswt.jar&quot;, NULL, SW_SHOW);
</code></pre>
<p>Und</p>
<pre><code class="language-cpp">bool exist =(GetFileAttributesA(dir32.c_str())==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1512994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1512994</guid><dc:creator><![CDATA[SchtinkeSocke]]></dc:creator><pubDate>Tue, 20 May 2008 12:11:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Tue, 20 May 2008 12:24:54 GMT]]></title><description><![CDATA[<p>SchtinkeSocke schrieb:</p>
<blockquote>
<pre><code class="language-cpp">bool exist =(GetFileAttributesA(dir32.c_str())==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
</code></pre>
</blockquote>
<p>Der Code ist trotzdem Quatsch. Zuerst einmal ist die Verwendung des konditionalen Operators hier Quatsch, und außerdem gilt 'bool' != 'BOOL'! (Das wird gleich zweimal im obigen Code missachtet.)</p>
<p>Der Code ist demnach falsch und liefert undefiniertes Verhalten. Korrekt wäre folgendes:</p>
<pre><code class="language-cpp">bool exists = (GetFileAttributesA(dir32.c_str()) == INVALID_FILE_ATTRIBUTES) == FALSE;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1513033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513033</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 20 May 2008 12:24:54 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Tue, 20 May 2008 13:51:08 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>SchtinkeSocke schrieb:</p>
<blockquote>
<pre><code class="language-cpp">bool exist =(GetFileAttributesA(dir32.c_str())==INVALID_FILE_ATTRIBUTES) ? FALSE : TRUE;
</code></pre>
</blockquote>
<p>Der Code ist trotzdem Quatsch. Zuerst einmal ist die Verwendung des konditionalen Operators hier Quatsch, und außerdem gilt 'bool' != 'BOOL'! (Das wird gleich zweimal im obigen Code missachtet.)</p>
<p>Der Code ist demnach falsch und liefert undefiniertes Verhalten. Korrekt wäre folgendes:</p>
<pre><code class="language-cpp">bool exists = (GetFileAttributesA(dir32.c_str()) == INVALID_FILE_ATTRIBUTES) == FALSE;
</code></pre>
</blockquote>
<p>Hm ok. Da es wohl zich verschiedene string Typen gibt, gibts wohl auch ein paar bool(s).</p>
<p>Von dem konditionalen Operator halte ich sowieso nicht viel. Die Zeile habe ich irgendwo geklaut ;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513111</guid><dc:creator><![CDATA[SchtinkeSocke]]></dc:creator><pubDate>Tue, 20 May 2008 13:51:08 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Tue, 20 May 2008 16:53:46 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Der Code ist demnach falsch und liefert undefiniertes Verhalten. Korrekt wäre folgendes:</p>
<pre><code class="language-cpp">bool exists = (GetFileAttributesA(dir32.c_str()) == INVALID_FILE_ATTRIBUTES) == FALSE;
</code></pre>
</blockquote>
<p>aber auch nicht wirklich sinnvoll <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>du missachtest grad deine eigene aussage:</p>
<blockquote>
<p>und außerdem gilt 'bool' != 'BOOL'!</p>
</blockquote>
<p>und der operator== liefert einen bool den du dann mit nem BOOL(FALSE) vergleichst.</p>
<pre><code class="language-cpp">bool exists = GetFileAttributesA(dir32.c_str()) != INVALID_FILE_ATTRIBUTES;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1513225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513225</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 20 May 2008 16:53:46 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nimmt keine Zeichenketten als Parameter an. on Tue, 20 May 2008 16:53:32 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Der Code ist demnach falsch und liefert undefiniertes Verhalten. Korrekt wäre folgendes:</p>
<pre><code class="language-cpp">bool exists = (GetFileAttributesA(dir32.c_str()) == INVALID_FILE_ATTRIBUTES) == FALSE;
</code></pre>
</blockquote>
<p>aber auch nicht wirklich sinnvoll <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>
<pre><code class="language-cpp">bool exists = GetFileAttributesA(dir32.c_str()) != INVALID_FILE_ATTRIBUTES;
</code></pre>
</blockquote>
<p>LOL.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513227</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 20 May 2008 16:53:32 GMT</pubDate></item></channel></rss>