Forum: PC-Programmierung Visual Studio Express 2005 & Schnittstellen?


von max (Gast)


Lesenswert?

Hey leute,

studiere eigentlich technische informatik, deswegen habe ich kaum 
erfahrungen mit oberflächenprogrammierung und mit C++ auch kaum. Muss 
jetzt eine anwendung programmieren in C++, die halt gut aussieht(von der 
oberfläche her) in WinXP.

Das programm soll unter anderem über die COM-Schnittstelle kommunizieren 
können.

Habe mir bereits VisualStudioExpress2005 und 2008 runtergeladen.

Kann man damit die com-schnittstellen ansprechen? (habe gelesen , dass 
bei express packete fehlen wie ATL).

oder reichen da die Express versionen nicht aus?

MFG M.Fisch

von Matthias (Gast)


Lesenswert?

Sollte eigentlich gehen. In C# Express2008 jedenfalls ist COM verwendung 
kein Problem.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Selbstverständlich kann man auch mit den Expressversionen serielle 
Schnittstellen ansprechen, denn auch mit den Expressversionen kann man 
Win32-API-Funktionen aufrufen.

Welche das sind, wurde hier bereits ad nauseam diskutiert - angefangen 
mit CreateFile, ReadFile, WriteFile etc. bis hin zu CloseHandle.

von Johnny (Gast)


Lesenswert?

Selbstverständlich ist auch in den Express Versionen ab 2005 die 
"SerialPort" Komponente enthalten.
Das direkte Ansprechen der Win32-API ist somit Pipifax und nicht nötig.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die "SerialPort-Komponente" lässt sich sicherlich auch /völlig 
problemlos/ mit C++ nutzen - nämlich gar nicht.

Der Threadstarter aber will weder "managed C++" noch "C#" verwenden, 
sondern C++.

von Johnny (Gast)


Lesenswert?

Hat er aber nicht geschrieben, dass es unmanaged C++ sein soll.

von Christian R. (supachris)


Lesenswert?

Grafische Oberfläche in der Express Version geht doch dann eh nur mit 
dieser managed perversion und .NET oder? MFC ist ja da nicht 
dabei....für C++ gibts das hier: 
http://www.codeguru.com/Cpp/I-N/network/serialcommunications/article.php/c2483

von max (Gast)


Lesenswert?

hm....
also ich würde einfach gerne VisualC++ express benutzen, da ich hier die 
oberflächen leich zusammen klicken kann.

habe zum gerät, das ich ansprechen soll ein beispielcode, allerdings ist 
im code
#include "atlstr.h"
#include "atltime.h"
drin.

VisualC++ 2008 Express sagt, dass es atlstr.h, atltime.h nicht gibt.
diese dateien gibt es auch nicht(habe die efstplatte durchsucht)!

habe versucht sie im Internet zu finden, das ergebnis war, dass diese 
wohl zur WTL(windows template library) gehören, aber in der WTL 
8.0/7.0-7.5 sind diese dateien auch nicht drin ?

kennst sich da einer aus? was macht WTL, ist das eine funktionen 
sammlung, damit man leicher die windows-oberfläche ansprechen kann?

sorry habe echt keine ahnung, das googeln hat auch nicht viel gebracht.
und die forums von msdn sind fast ausgestorben, so kommt es mir 
jedenfalls vor im gegensatz zur linux foren.

mfg

von max (Gast)


Lesenswert?

verstehe ich das richtig-->

Win32-API ist die Microsoft bibliothek um die schnittstellen 
anzusprechen, ist aber schon alt und nicht objektorientiert

MFC (Microsoft Foundation Classes) --> eine grosse Microsoft bibliothek 
, wobei hiermit man die schnittstellen objektorientiert ansprechen kann

WTL -> ist die gekürzte/kastrierte MFC

ATL -> weiter enwicklung von Win32-API ist in MFC drin und ein teil in 
WTL ?

Also wenn mein beispielcode die funktionen aus MFC benutzt und MFC ist 
aber nicht in Visual express versionen drin, dann habe ich pech und muss 
neue programmieren oder PRO version kaufen ? Richtig?

danke für die zahlreiche antworten MFG

von JojoS (Gast)


Lesenswert?

ATL war eine Lib für vereinfachte COM Programmierung und wurde 
irgendwann mal mit der MFC verheiratet weil da vieles doppelt war und 
untereinander nicht passte. Die MFC ist aber ziemlich 'fett' geworden 
und da wurde im ATL Stil noch GUI Programmierung reingepackt und die WTL 
draus.
Im Pro Paket sind die Files im ../VC/atlmfc Verzeichniss, ob das jetzt 
in einem seperaten Download vom Plattform SDK oder WTL drin ist weiss 
ich leider auch nicht, aber SDK würde ich mal probieren.

von JojoS (Gast)


Lesenswert?

SDK Download kannst du doch sparen, ATL/MFC sind in den Express 
Versionen nicht drin: 
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2429697&SiteID=1
im letzten Post steht aber ein Workaround der noch funktionieren könnte.

von max (Gast)


Lesenswert?

danke für die erklärung JojoS. leider kann ich so ein "workaround" nicht 
nutzen, da das programm (wenn es entstehen sollte ;) ) auf einer 
öffentlichen messe laufen soll.

von Christian R. (supachris)


Lesenswert?

Muss es C++ sein? Sonst könntest du mit der C# Express Edition und den 
Windows Forms was mordernes und ansehnliches programmieren.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Win32-API ist die Microsoft bibliothek um die schnittstellen
> anzusprechen, ist aber schon alt und nicht objektorientiert

Das ist keine Bibliothek, sondern die grundlegende Schnittstelle, mit 
der jedes Programm, egal in welcher Programmiersprache geschrieben, 
mit Windows kommuniziert.

ATL, MFC, .Net und was auch immer, all diese Bibliotheken kommunizieren 
letztlich über die Win32-API mit Windows.

MFC ist eine ziemlich alte und nicht sonderlich beliebte 
C++-Klassenbibliothek, die nicht im Lieferumfang von Visual C++ 
Express enthalten ist.

Du kannst mit den Express-Versionen nur Klassenbibliotheken nutzen, die 
bei den Express-Versionen dabei sind, aber um mit der seriellen 
Schnittstelle zu kommunizieren, braucht es nun wirklich keiner 
C++-Klassenbibliothek.

Du kannst aber auch mit anständigen C++-Klassenbibliotheken arbeiten, 
wxWidgets kann mit Visual C++ Express verwendet werden, ist frei 
verfügbar und es gibt dafür eine anständige Komponente für den Gebrauch 
serieller Schnittstellen. Das sogenannte "Terminalprogramm" von Tobi 
(hterm) ist damit geschrieben.

von Johnny (Gast)


Lesenswert?

Max, Du hast geschrieben, dass es in C++ programmiert sein muss. Falls 
es managed C++ sein kann, dann wirst Du mit .NET, WinForms und der 
SerialPort Komponente innerhalb kürzester Zeit was lauffähiges 
hinbekommen und alles benötigte ist im Visual Studio Express Edition 
bereits integriert.

Falls es native C++ sein muss, also unmanaged, dann wird es eine 
kompliziertere Geschichte, wie bereits von den Anderen geschildert 
wurde.

von max (Gast)


Lesenswert?

danke allen für so viele anregungen. werde mich jetzt mal ran setzen und 
mir alles mal noch genauer angucken :)

mfg

von MegaMAX (Gast)


Lesenswert?

wxWidgets + CTB serial library

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.