<?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[CreateFile in VisualStudio2005 Express]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>hoffe dies ist das korrekte Board für meine Frage.</p>
<p>Nachfolgender Code ist ein Ausschnitt eines laufenden Programm das ich unter<br />
&quot;Pelle C&quot; geschrieben habe.<br />
Aus Kompatibilitätsgründen möchte ich dieses Programm auf VSC++ lauffähig machen.</p>
<p>Unter VSC++ scheine ich jedoch irgendetwas zu übersehen.<br />
Habe vorerst die Express-Version2005 und das SDK entsprechend der MS- Anleitung installiert.</p>
<p>Das ganze ist als Win32 Consolenprojekt angelegt.<br />
Der Code wird fehlerfrei compiliert. Es wird jedoch immer ein ungültiger Handle<br />
also 0xffff geliefert. Sehe meinen Fehler einfach nicht.</p>
<p>Gruss<br />
Jürgen</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;

HANDLE	ComHandle;
int openComPort(char *port);

int main(int argc, char* argv[])
{
	char		port[15];

	memset(port,0,sizeof(port));	
	strcpy_s(port,sizeof(port),&quot;\\\\.\\COM1&quot;);

	if(openComPort(port))
		exit(-1);
}

int openComPort(char *port)
{   
	ComHandle =	CreateFile((LPCTSTR) port, GENERIC_READ | GENERIC_WRITE,	
				0,     // exclusive access
				NULL,  // no security attributes
				OPEN_EXISTING,
				FILE_ATTRIBUTE_NORMAL,
				NULL); 

	if(ComHandle == INVALID_HANDLE_VALUE)
	{
		printf(&quot;\nUnable to open &lt; %s &gt;\n\n&quot;, port);
		printf(&quot;Press any key to exit.&quot;);
		_getch();
		return(-1);
	}
	else
		printf(&quot;\nPort &lt; %s &gt; opened \n\n&quot;, port);	

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/158193/createfile-in-visualstudio2005-express</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 16:07:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158193.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 Sep 2006 15:04:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CreateFile in VisualStudio2005 Express on Sat, 02 Sep 2006 15:04:30 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>hoffe dies ist das korrekte Board für meine Frage.</p>
<p>Nachfolgender Code ist ein Ausschnitt eines laufenden Programm das ich unter<br />
&quot;Pelle C&quot; geschrieben habe.<br />
Aus Kompatibilitätsgründen möchte ich dieses Programm auf VSC++ lauffähig machen.</p>
<p>Unter VSC++ scheine ich jedoch irgendetwas zu übersehen.<br />
Habe vorerst die Express-Version2005 und das SDK entsprechend der MS- Anleitung installiert.</p>
<p>Das ganze ist als Win32 Consolenprojekt angelegt.<br />
Der Code wird fehlerfrei compiliert. Es wird jedoch immer ein ungültiger Handle<br />
also 0xffff geliefert. Sehe meinen Fehler einfach nicht.</p>
<p>Gruss<br />
Jürgen</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;

HANDLE	ComHandle;
int openComPort(char *port);

int main(int argc, char* argv[])
{
	char		port[15];

	memset(port,0,sizeof(port));	
	strcpy_s(port,sizeof(port),&quot;\\\\.\\COM1&quot;);

	if(openComPort(port))
		exit(-1);
}

int openComPort(char *port)
{   
	ComHandle =	CreateFile((LPCTSTR) port, GENERIC_READ | GENERIC_WRITE,	
				0,     // exclusive access
				NULL,  // no security attributes
				OPEN_EXISTING,
				FILE_ATTRIBUTE_NORMAL,
				NULL); 

	if(ComHandle == INVALID_HANDLE_VALUE)
	{
		printf(&quot;\nUnable to open &lt; %s &gt;\n\n&quot;, port);
		printf(&quot;Press any key to exit.&quot;);
		_getch();
		return(-1);
	}
	else
		printf(&quot;\nPort &lt; %s &gt; opened \n\n&quot;, port);	

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1129708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129708</guid><dc:creator><![CDATA[jbr]]></dc:creator><pubDate>Sat, 02 Sep 2006 15:04:30 GMT</pubDate></item><item><title><![CDATA[Reply to CreateFile in VisualStudio2005 Express on Sat, 02 Sep 2006 15:13:40 GMT]]></title><description><![CDATA[<p>Wenn Du casten musst, ist es eigentlich immer sehr verdächtig!!!</p>
<p>Also: Der Grund ist dass bei einem neuen Projekt die Projekteinstellungen auf UNICODE stehen! Somit erwartet &quot;CreateFile&quot; ein UNICODE-String und keinen ANSI-String. Deshalb kam da auch ein Compiler-Fehler (den Du aber schön weggecastet hast <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ).</p>
<p>Also, es gibt die folgenden Lösungen:<br />
- übergib einen UNICODE-String<br />
oder<br />
- verwende &quot;CreateFileA&quot;<br />
oder<br />
- stelle den Zeichensatz von &quot;UNICODE&quot; zurück nach &quot;ANSI / MBCS&quot; (Project|Properties|General|CHaracter Set: &quot;Not Set&quot;)</p>
<p>PS: Für serielle Kommunikation Rate ich Dir zu fertigen Klassen:<br />
<a href="http://www.codeproject.com/system/serial.asp" rel="nofollow">http://www.codeproject.com/system/serial.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1129710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129710</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 02 Sep 2006 15:13:40 GMT</pubDate></item><item><title><![CDATA[Reply to CreateFile in VisualStudio2005 Express on Sat, 02 Sep 2006 17:07:02 GMT]]></title><description><![CDATA[<p>Hallo Jochen,</p>
<p>herzlichen Dank für Deine Antwort. Windows ist für mich leider eine recht unbekannte System-Umgebung <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="🙂"
    /> War mir garnicht bewusst das Unicode hier inzwischen der Standard ist. Hätte allerdings auch die Beschreibung zu CreateFile bis zum Ende lesen sollen. Da steht schliesslich das es sowohl CreateFileW(Unicode) als auch CreateFileA(ANSI) gibt.</p>
<p>Entsprechende Klassenbibliotheken möchte ich nicht verwenden da wesentliche Codeteile (natürlich kein WinAPI) in einer embedded-Umgebung nur als reiner C-Code verwendet werden. Das macht sonst doppelte Mühe.</p>
<p>Nochmals vielen Dank</p>
<p>Gruss<br />
Jürgen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1129782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129782</guid><dc:creator><![CDATA[jbr]]></dc:creator><pubDate>Sat, 02 Sep 2006 17:07:02 GMT</pubDate></item><item><title><![CDATA[Reply to CreateFile in VisualStudio2005 Express on Sat, 02 Sep 2006 17:53:03 GMT]]></title><description><![CDATA[<p>jbr schrieb:</p>
<blockquote>
<p>herzlichen Dank für Deine Antwort.</p>
</blockquote>
<p>Gern geschehen!</p>
<p>jbr schrieb:</p>
<blockquote>
<p>Windows ist für mich leider eine recht unbekannte System-Umgebung <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="🙂"
    /> War mir garnicht bewusst das Unicode hier inzwischen der Standard ist.</p>
</blockquote>
<p>Wer im internationalen Markt bestehen will, der muss Unicode verwenden; alles andere macht gar keinen Sinn. Das ist bei Windows aber schon seit NT so (also über 12 Jahre).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1129815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129815</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 02 Sep 2006 17:53:03 GMT</pubDate></item></channel></rss>