<?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[Com Port Ansteuerungs Problem]]></title><description><![CDATA[<p>Hallo,<br />
ich habe von einem Projekt die ComPort-Ansteuerung übernommen. Bei mir Funktioniert sie leider nicht mehr egal ob ich ein Objekt in der Klasse erstelle oder ob ich mit new immer ein neues pro klick erzeuge. Kann mir jemand weiterhelfen? oder mir den Fehler im Programm verraten ( ;</p>
<p>In dem alten Projekt wird sie so verwendet:</p>
<p>Button1:</p>
<pre><code>CComp* port= new CComp();
	port-&gt;putchar('2');
	delete port;
</code></pre>
<p>Comp.h:</p>
<pre><code>// Comp.h: Schnittstelle für die Klasse CComp.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_COMP_H__28679F38_7391_4954_A7CF_9356AD1AB01D__INCLUDED_)
#define AFX_COMP_H__28679F38_7391_4954_A7CF_9356AD1AB01D__INCLUDED_

#if _MSC_VER &gt; 1000
#pragma once
#endif // _MSC_VER &gt; 1000

class CComp  
{
public:
	unsigned char getchar();
	void putchar(unsigned char befehl);
	void close();
	BOOLEAN setting();
	void open();
	CComp();
	virtual ~CComp();
	HANDLE comport;
	BOOL m_bPortReady  ;
};

#endif // !defined(AFX_COMP_H__28679F38_7391_4954_A7CF_9356AD1AB01D__INCLUDED_)
</code></pre>
<p>Comp.cpp</p>
<pre><code>// Comp.cpp: Implementierung der Klasse CComp.
//
//////////////////////////////////////////////////////////////////////

#include &quot;stdafx.h&quot;
#include &quot;stdafx.h&quot;
#include &quot;Comp.h&quot;

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

CComp::CComp()
{

setting();
open();

}

CComp::~CComp()
{
close();
}

void CComp::close()
{
CloseHandle(comport);
}

BOOLEAN CComp::setting()
{
	DCB dcb;

   FillMemory(&amp;dcb, sizeof(dcb), 0);			//FileHandle für den Comport wird erstellt
   dcb.DCBlength = sizeof(dcb);
   if (!BuildCommDCB(&quot;baud=9600 parity=N data=8 stop=1&quot;, &amp;dcb)) {   //Parameter gesetzt

   }

   return TRUE;
}

void CComp::open()

{

CString gszPort =&quot;COM2&quot;;   // der Wert dieser Varible bestimmt den zu verwendenen ComPort

   comport = CreateFile( gszPort,  
                    GENERIC_READ | GENERIC_WRITE, 
                    0, 
                    NULL, 
                    OPEN_EXISTING,
                    0,
                    NULL);   
	if (comport != INVALID_HANDLE_VALUE)
	{
		m_bPortReady = SetupComm(comport, 8, 8);

	}
}

void CComp::putchar(unsigned char befehl)		//sendet 1 Byte (entspricht hier einem Befehl) 
{												//zum µController
	if(m_bPortReady) 
	{
		DWORD byteswritten;
		WriteFile(comport,(LPCVOID)&amp;befehl, 1, (LPDWORD)&amp;byteswritten, NULL);
		if(byteswritten == 1); //hier kann kontrolliert werden,
							   // ob das Byte komplett geschrieben worden ist
	}
}

unsigned char CComp::getchar()					//wenn diese Funktion aufgerufen wird muss man beachten,
{												//dass solange an dieser Stelle gewartet wird bis ein Zeichen
	unsigned char result = '\0';				//empfangen ist
	DWORD bytesread;
	ReadFile(comport, (LPVOID)&amp;result,1,(LPDWORD)&amp;bytesread,NULL);
	if(bytesread == 1)
		return result;
	else
		return '\0';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/203938/com-port-ansteuerungs-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 03:25:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203938.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Jan 2008 12:56:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Com Port Ansteuerungs Problem on Mon, 28 Jan 2008 12:56:53 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe von einem Projekt die ComPort-Ansteuerung übernommen. Bei mir Funktioniert sie leider nicht mehr egal ob ich ein Objekt in der Klasse erstelle oder ob ich mit new immer ein neues pro klick erzeuge. Kann mir jemand weiterhelfen? oder mir den Fehler im Programm verraten ( ;</p>
<p>In dem alten Projekt wird sie so verwendet:</p>
<p>Button1:</p>
<pre><code>CComp* port= new CComp();
	port-&gt;putchar('2');
	delete port;
</code></pre>
<p>Comp.h:</p>
<pre><code>// Comp.h: Schnittstelle für die Klasse CComp.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_COMP_H__28679F38_7391_4954_A7CF_9356AD1AB01D__INCLUDED_)
#define AFX_COMP_H__28679F38_7391_4954_A7CF_9356AD1AB01D__INCLUDED_

#if _MSC_VER &gt; 1000
#pragma once
#endif // _MSC_VER &gt; 1000

class CComp  
{
public:
	unsigned char getchar();
	void putchar(unsigned char befehl);
	void close();
	BOOLEAN setting();
	void open();
	CComp();
	virtual ~CComp();
	HANDLE comport;
	BOOL m_bPortReady  ;
};

#endif // !defined(AFX_COMP_H__28679F38_7391_4954_A7CF_9356AD1AB01D__INCLUDED_)
</code></pre>
<p>Comp.cpp</p>
<pre><code>// Comp.cpp: Implementierung der Klasse CComp.
//
//////////////////////////////////////////////////////////////////////

#include &quot;stdafx.h&quot;
#include &quot;stdafx.h&quot;
#include &quot;Comp.h&quot;

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

CComp::CComp()
{

setting();
open();

}

CComp::~CComp()
{
close();
}

void CComp::close()
{
CloseHandle(comport);
}

BOOLEAN CComp::setting()
{
	DCB dcb;

   FillMemory(&amp;dcb, sizeof(dcb), 0);			//FileHandle für den Comport wird erstellt
   dcb.DCBlength = sizeof(dcb);
   if (!BuildCommDCB(&quot;baud=9600 parity=N data=8 stop=1&quot;, &amp;dcb)) {   //Parameter gesetzt

   }

   return TRUE;
}

void CComp::open()

{

CString gszPort =&quot;COM2&quot;;   // der Wert dieser Varible bestimmt den zu verwendenen ComPort

   comport = CreateFile( gszPort,  
                    GENERIC_READ | GENERIC_WRITE, 
                    0, 
                    NULL, 
                    OPEN_EXISTING,
                    0,
                    NULL);   
	if (comport != INVALID_HANDLE_VALUE)
	{
		m_bPortReady = SetupComm(comport, 8, 8);

	}
}

void CComp::putchar(unsigned char befehl)		//sendet 1 Byte (entspricht hier einem Befehl) 
{												//zum µController
	if(m_bPortReady) 
	{
		DWORD byteswritten;
		WriteFile(comport,(LPCVOID)&amp;befehl, 1, (LPDWORD)&amp;byteswritten, NULL);
		if(byteswritten == 1); //hier kann kontrolliert werden,
							   // ob das Byte komplett geschrieben worden ist
	}
}

unsigned char CComp::getchar()					//wenn diese Funktion aufgerufen wird muss man beachten,
{												//dass solange an dieser Stelle gewartet wird bis ein Zeichen
	unsigned char result = '\0';				//empfangen ist
	DWORD bytesread;
	ReadFile(comport, (LPVOID)&amp;result,1,(LPDWORD)&amp;bytesread,NULL);
	if(bytesread == 1)
		return result;
	else
		return '\0';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1445042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445042</guid><dc:creator><![CDATA[FranzDieter]]></dc:creator><pubDate>Mon, 28 Jan 2008 12:56:53 GMT</pubDate></item><item><title><![CDATA[Reply to Com Port Ansteuerungs Problem on Mon, 28 Jan 2008 13:09:56 GMT]]></title><description><![CDATA[<blockquote>
<p>Bei mir Funktioniert sie leider nicht mehr</p>
</blockquote>
<p>Ahja... und was funktioniert nicht mehr?<br />
Hast Du gedebuggt?<br />
Gibts Fehler Meldungen?<br />
Luafzeit oder Kompilierzeit Fehler?<br />
...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445056</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Mon, 28 Jan 2008 13:09:56 GMT</pubDate></item><item><title><![CDATA[Reply to Com Port Ansteuerungs Problem on Mon, 28 Jan 2008 15:06:58 GMT]]></title><description><![CDATA[<p>also ich bekomm keine komp. fehler er sendet nur nichts auf dem comport</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445145</guid><dc:creator><![CDATA[FranzDieter]]></dc:creator><pubDate>Mon, 28 Jan 2008 15:06:58 GMT</pubDate></item><item><title><![CDATA[Reply to Com Port Ansteuerungs Problem on Mon, 28 Jan 2008 15:11:17 GMT]]></title><description><![CDATA[<p>ok laeuft mein atmega hat nur nicht reagiert da der nicht die 2 in char umgewandelt hat sondern 2 als char sendete<br />
danke trozdem</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445149</guid><dc:creator><![CDATA[FranzDieter]]></dc:creator><pubDate>Mon, 28 Jan 2008 15:11:17 GMT</pubDate></item><item><title><![CDATA[Reply to Com Port Ansteuerungs Problem on Wed, 30 Jan 2008 19:12:52 GMT]]></title><description><![CDATA[<p>mh so einfach wars wohl doch nicht ... ich hab einfach mal 2 pcs verbunden und nach einem neustart des sende pc's sowie des programms bekomme ich nur 00000000 am empfangs pc(simulation für atmega) nachdem ich ein terminal programm gestartet habe und ein zeichen gesendet habe(danach schließen des terminal programms) funktioniert auch mein programm .... hat jemand ne idee woran das liegen kann ? der code ist der gleiche</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1446589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1446589</guid><dc:creator><![CDATA[FranzDieter]]></dc:creator><pubDate>Wed, 30 Jan 2008 19:12:52 GMT</pubDate></item></channel></rss>