www.mikrocontroller.net

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


Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sollte eigentlich gehen. In C# Express2008 jedenfalls ist COM verwendung 
kein Problem.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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++.

Autor: Johnny (Gast)
Datum:

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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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/serialcomm...

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: JojoS (Gast)
Datum:

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

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: max (Gast)
Datum:

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

mfg

Autor: MegaMAX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wxWidgets + CTB serial library

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.