Forum: PC-Programmierung RS232: welche library


von frkifrov (Gast)


Lesenswert?

hallo,

für ein Projekt soll ich vom FPGA Daten an den PC senden und dann dort 
weiterverarbeiten und in eine Datei speichern.
ich benutze dafür visual studio2008 auf eine windows xp-rechner. die 
sprache ist c++

wie ich die daten weiterverarbeite und in eine datei speicher, das weiß 
ich, nur die schnittstellenprogrammierung macht mir jetzt paar gedanken, 
da meine c++ eher gering sind.

nach längeren googlen habe ich auch mehrere möglichkeiten gefunden, die 
man für die schnittstelle benutzen kann.

einmal ist es die cserial-library, die man extra downloaden müsste, 
davon halte ich eher weniger.

dann ist es serial communications in Win32
http://msdn.microsoft.com/en-us/library/ms810467.aspx

und als letztes hätte ich noch die klasse system.io.ports
http://msdn.microsoft.com/de-de/library/system.io.ports.serialport.aspx

meine frage ist jetzt welche quelle wäre am besten für mein projekt, 
meine c++-programme hatte ich bis jetzt nur mit win32-konsolenanwendung 
geschrieben.

mir hat jemand erzählt, dass bei system.io.ports die library als clr 
schon verfügung steht, da habe ich aber bis jetzt noch nie mit 
gearbeitet

wo liegen denn die unterschiede?
und was muss ich bei den unterschiedlichen projekttypen beachten?

wichtig ist mir auch, das später mein programm auch ohne visual studio 
auf jeden rechner gestartet werden kann.

von Gast (Gast)


Lesenswert?

Sieh Dir mal wxwidgets an und dort die CTB Library. dort gibt es 
vorcompiliertes Projekt mit allen Sourcen direkt zum Starten und 
Bearbeiten. Da hast Du sofrt alles am Laufen.

von Severino R. (severino)


Lesenswert?

Um die Klasse System.Io.Ports.SerialPort zu nutzen, musst Du ein .NET 
Projekt erstellen. Das kann sowohl eine Konsolen- als auch eine 
Windows-Anwendung sein.
Dafür muss auf dem Target-Rechner aber das .NET Framework installiert 
werden (ist kein Problem).

Falls Du aber eine Win32- oder eine MFC- (oder...?) Anwendung erstellen 
willst, musst Du entweder mit CreateFile() (Dein erster Link) etc. 
arbeiten oder eine (andere) fertige Klasse verwenden.

von frkifrov (Gast)


Lesenswert?

danke schön!

wenn ich visual studio 2008 (standart) auf dem rechner installiere, wird 
da nicht auch automatisch .NET-Framework mit installiert?

von Severino R. (severino)


Lesenswert?

frkifrov wrote:
> danke schön!
>
> wenn ich visual studio 2008 (standart) auf dem rechner installiere, wird
> da nicht auch automatisch .NET-Framework mit installiert?

Ja, aber Du hast nach der Lauffähigkeit Deines Programms auf "jedem 
Rechner" gefragt. Dort muss das .NET Framework installiert werden, was 
aber kein Problem ist und z.B. über Windows Update geht.

von frkifrov (Gast)


Lesenswert?

hab im internet jetzt mal ein vernünftiges beispiel gefunden

schreibe mein programm in eine win32-konsolenanwendung (projekt)
jetzt krieg ich folgende Fehlermeldung

1>c:\documents and settings\a124368\my documents\visual studio 
2008\projects\schnittstellentest\schnittstellentest\schnittstelle.cpp(43 
)  : error C2664: 'CreateFileW': Konvertierung des Parameters 1 von 
'const char *' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die 
Konvertierung erfordert einen reinterpret_cast-Operator oder eine 
Typumwandlung im C- oder Funktionsformat.

kann mir hier jemand weiterhelfen, verwende ja visual studio 2008

von Severino R. (severino)


Lesenswert?

@ frkifrov

Ich will Dir zwei Tipps geben:
1. Poste doch bitte auch den Sourcecode dazu, damit man sieht, was Du 
geschrieben hast. Idealerweise auf's Minimum reduziert.

2. Da Du ja jetzt eine Library ausgesucht hast, macht es Sinn, für Deine 
neue Frage auch einen neuen Thread zu eröffnen mit einem 
aussagekräftigen Titel wie z.B.:
"VS2008 C++ Win32 CreateFile Fehlermeldung"

von ich (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.