Forum: PC Hard- und Software Windows-Programm erstellen (Anfänger)


von Micha (michael_schwaer)


Lesenswert?

Hallo,

ich habe vor ca. 12 Jahren ein paar kleine Windows Programme mit Visual 
Studio erstellt.

Nun hätte ich wieder eine Aufgabe:

Empfang von Daten und Speichern in Dateien. Das Fenster soll folgende 
Felder haben:
* Auswahl COM-Schnittstelle
* Auswahl Baudrate
* Checksumme ja/nein
* Auswahl Pfad, in dem die Dateien gespeichert werden sollen
* Button Start/Stopp
* Tabelle, in dem die Empfangsdateien aufgelistet werden, mit folgenden 
Spalten:
  - Dateiname
  - Übertragungsfortschritt als Balken
  - Status (z.B. Fehlermeldungen)

(wenn das mit Tabelle zu aufwändig wird, würde auch das Ganze mit einer 
Zeile reichen -> der aktuelle Datensatz, der übertragen wird)

Ich würde nach und nach Daten über die Schnittstelle an das Programm 
senden. Der Aufbau des Datenstreams wäre wie folgt:
1. Header mit Dateiname, Datenlänge, Checksumme des Headers
2. Daten (die in der Datei gespeichert werden sollen)
3. Ende-Kennung mit Checksumme über die Daten. Eventuell noch 
Rückmeldung an den Sender, ob es geklappt hat.
4. nächstes Datenpaket, beginnend wie 1

Das Ganze soll mindestens auf Windows 10 laufen. Ich würde Visual Studio 
2022 verwenden. Wäre es sinnvoll, das mit Visual Basic zu realisieren? 
Oder gibt es auch "einfachere" Möglichkeiten? Ich habe bisher nur 
Erfahrung in Programmierung mit C (nicht C++). Und etwas Visual Basic.

von Rbx (rcx)


Lesenswert?

Nimm lieber C und besorg dir ein passendes Buch vom Charles Petzold.

von Micha (michael_schwaer)


Lesenswert?

Rbx schrieb:
> Nimm lieber C und besorg dir ein passendes Buch vom Charles Petzold.

Aber bei C kann man doch die Fenster nicht mit Drag&Drop gestalten, 
oder?

von 900ss (900ss)


Lesenswert?

Micha schrieb:
> Wäre es sinnvoll, das mit Visual Basic zu realisieren?

Das würde ich zu 100% mit "ja" beantworten. Ich habe ein paar Jahre VB 
programmiert und dafür ist es sehr gut geeignet. Und es nimmt einem sehr 
viel Arbeit ab.
Die Empfehlung von "C" ist eher ein schlechter Scherz. Kann nur Ironie 
gewesen sein. Geht ja, aber.....
Wenn dann C#, wäre auch gut geeignet.

: Bearbeitet durch User
von Gunnar F. (gufi36)


Lesenswert?

Micha schrieb:
> Das Ganze soll mindestens auf Windows 10 laufen. Ich würde Visual Studio
> 2022 verwenden. Wäre es sinnvoll, das mit Visual Basic zu realisieren?

Ich programmiere seit Jahren in C# und für Windows ist für mich die 
erste Wahl. Wenn Du C kannst, kommst Du in die Sprache schnell rein. OOP 
ist noch ein anderer Schnack. "Alte Hasen" haben damit eher mehr 
Probleme als Junge, die direkt damit anfangen.

Aber bei C# stehst Du vor der Entscheidung für Windows Forms (lange 
veraltet, aber schnell und leicht verständlich) oder WPF mit XAML. Ich 
habe mich lange gegen letzteres gewehrt, ist eher schwieriger, mehr 
Lernaufwand und manchmal "Pain in the ass...". Halt hübscher für 
Klicki-Bunti.

Bin gespannt auf die Empfehlungen der anderen, aber wenn es für mich 
schnell gehen muß, nehme ich immer noch die Winforms.

Bedenke, dass Du das COM-Control von Hand nachinstallieren musst. Es ist 
nicht von Haus aus im C#-Workload enthalten.

Viel Spaß dabei!

von Micha (michael_schwaer)



Lesenswert?

900ss schrieb:
> Das würde ich zu 100% mit "ja" beantworten.

Ich werde es mal probieren. Ich habe aber nun das Problem, dass beim 
Erstellen von Visual Basic nichts zur Auswahl erscheint (siehe Bild). 
Was muss ich bei dem Link dann zum Installieren auswählen? Ich babe da 
auf die Schnelle nichts mit "Visual Basic" gesehen.

von Franko S. (frank_s866)


Lesenswert?

Micha schrieb:
> Ich babe da auf die Schnelle nichts mit "Visual Basic" gesehen.
Dann schau mal genau hin.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Micha schrieb:
> Aber bei C kann man doch die Fenster nicht mit Drag&Drop gestalten

Doch, im Visual Studio Dialog Editor.

Micha schrieb:
> Wäre es sinnvoll, das mit Visual Basic zu realisieren?

Nein da du C kannst.

ChatGPT verwendet keinen Dialogeditor und schlägt vor:


Um ein solches Windows-Programm in C mit Visual Studio zu erstellen, 
kannst du die Windows API oder MFC (Microsoft Foundation Classes) 
verwenden. Alternativ kannst du auch WinForms in C++/CLI nutzen, falls 
du ein Framework suchst. Hier ist eine allgemeine Anleitung zur 
Umsetzung des Projekts mit Windows API:


---

1. Projekt einrichten

1. Starte Visual Studio und erstelle ein neues Projekt.


2. Wähle Win32 Project oder Windows Desktop Application aus.


3. Stelle sicher, dass du keine vorkonfigurierte Konsole benötigst, 
sondern eine Windows-Anwendung erstellst.




---

2. Hauptkomponenten

Das Programm benötigt folgende Hauptfunktionen:

1. GUI erstellen (Dialogfelder und Buttons).


2. COM-Port ansprechen (z. B. über CreateFile und ReadFile).


3. Dateien speichern (z. B. über fopen oder ofstream).


4. Tabelle aktualisieren (für den Fortschrittsbalken und Status).




---

3. GUI-Design mit Windows API

Die Oberfläche wird mit CreateWindow und den zugehörigen Steuerelementen 
(Controls) aufgebaut. Du kannst folgende Steuerelemente verwenden:

Beispiel für die GUI-Komponenten:

HWND hComboCOM, hComboBaud, hCheckSum, hEditPath, hBtnStartStop, 
hListView;

// COM-Schnittstelle auswählen
hComboCOM = CreateWindow("COMBOBOX", NULL, WS_CHILD | WS_VISIBLE | 
CBS_DROPDOWN,
    10, 10, 200, 300, hwnd, NULL, hInst, NULL);
SendMessage(hComboCOM, CB_ADDSTRING, 0, (LPARAM)"COM1");
SendMessage(hComboCOM, CB_ADDSTRING, 0, (LPARAM)"COM2");

// Baudrate auswählen
hComboBaud = CreateWindow("COMBOBOX", NULL, WS_CHILD | WS_VISIBLE | 
CBS_DROPDOWN,
    10, 50, 200, 300, hwnd, NULL, hInst, NULL);
SendMessage(hComboBaud, CB_ADDSTRING, 0, (LPARAM)"9600");
SendMessage(hComboBaud, CB_ADDSTRING, 0, (LPARAM)"19200");

// Checkbox für Checksumme
hCheckSum = CreateWindow("BUTTON", "Checksumme aktivieren", WS_CHILD | 
WS_VISIBLE | BS_CHECKBOX,
    10, 90, 200, 30, hwnd, NULL, hInst, NULL);

// Edit-Feld für den Pfad
hEditPath = CreateWindow("EDIT", NULL, WS_CHILD | WS_VISIBLE | 
WS_BORDER,
    10, 130, 300, 20, hwnd, NULL, hInst, NULL);

// Start/Stopp Button
hBtnStartStop = CreateWindow("BUTTON", "Start", WS_CHILD | WS_VISIBLE | 
BS_PUSHBUTTON,
    10, 160, 100, 30, hwnd, (HMENU)ID_BTN_START, hInst, NULL);

// Tabelle für Dateien
hListView = CreateWindow(WC_LISTVIEW, "", WS_CHILD | WS_VISIBLE | 
LVS_REPORT,
    10, 200, 400, 200, hwnd, NULL, hInst, NULL);


---

4. COM-Port ansprechen

Verwende die Windows API, um die serielle Schnittstelle zu 
konfigurieren. Beispiel für den Zugriff auf einen COM-Port:

HANDLE hComm;
DCB dcbSerialParams = { 0 };
hComm = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, 
OPEN_EXISTING, 0, NULL);
if (hComm == INVALID_HANDLE_VALUE) {
    MessageBox(NULL, "Fehler beim Öffnen des COM-Ports", "Error", 
MB_OK);
} else {
    dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
    GetCommState(hComm, &dcbSerialParams);
    dcbSerialParams.BaudRate = CBR_9600;  // Beispiel-Baudrate
    dcbSerialParams.ByteSize = 8;
    dcbSerialParams.StopBits = ONESTOPBIT;
    dcbSerialParams.Parity = NOPARITY;
    SetCommState(hComm, &dcbSerialParams);
}


---

5. Dateien speichern

Die empfangenen Daten kannst du direkt in eine Datei schreiben. 
Beispiel:

FILE *file;
file = fopen("output.txt", "w");
if (file) {
    fwrite(buffer, sizeof(char), bytesRead, file);
    fclose(file);
}


---

6. Tabelle aktualisieren

Verwende eine ListView, um die Dateien anzuzeigen. Die 
Fortschrittsbalken können durch den Fortschritt der Übertragung 
aktualisiert werden.

Hinzufügen eines ListView-Elements:

LVITEM lvItem;
lvItem.mask = LVIF_TEXT;
lvItem.iItem = 0; // Index
lvItem.iSubItem = 0; // Spalte
lvItem.pszText = "Dateiname.txt"; // Text
ListView_InsertItem(hListView, &lvItem);

Aktualisieren eines Fortschrittsbalkens:

HWND hProgressBar = CreateWindow(PROGRESS_CLASS, NULL, WS_CHILD | 
WS_VISIBLE,
    10, 220, 300, 20, hwnd, NULL, hInst, NULL);
SendMessage(hProgressBar, PBM_SETPOS, (WPARAM)progress, 0);


---

7. Event-Handling

Im Window-Procedure (WndProc) behandelst du die Events:

Button-Klicks

Auswahländerungen in den ComboBoxen

Empfang von Daten und Fortschrittsaktualisierung.


Beispiel:

switch (message) {
    case WM_COMMAND:
        if (LOWORD(wParam) == ID_BTN_START) {
            // Empfang starten
        }
        break;
}


---

Zusammenfassung

Mit den oben beschriebenen Schritten kannst du das Programm erstellen. 
Die genaue Implementierung hängt von den Anforderungen ab (z. B. 
Empfangsprotokoll, Dateiformate, usw.). Für eine vollständige Lösung 
könntest du auch Bibliotheken wie Boost.Asio in Betracht ziehen, falls 
du später zu C++ wechseln möchtest.

von Micha (michael_schwaer)


Lesenswert?

Franko S. schrieb:
> Micha schrieb:
>> Ich babe da auf die Schnelle nichts mit "Visual Basic" gesehen.
> Dann schau mal genau hin.

Jetzt habe ich es gesehen. Manchmal sieht man den Wald vor lauter Bäumen 
nicht. Nun geht es.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Ich würde auch dazu raten, bei C zu bleiben, denn das kennst du und 
Windows wurde selbst ebenfalls in C geschrieben. Du kannst also alle 
Windows Funktionen direkt ohne Schnickschnack aufrufen und du eirst die 
Programmierbeispiele verstehen.

Falls du Lust auf objektorientierte Franeworks hast, dann würde ich eher 
C# als C++ empfehlen, weil C# sich ernsthaft darum bemüht, einfacher und 
besser zu sein. Microsoft scheint diese Sprache auch zu bevorzugen.

von Geli⚡ (Gast)


Lesenswert?

Lazarus hier hier DAS Mittel der Wahl
https://www.lazarus-ide.org/

https://frank-kaden.hier-im-netz.de/homepage/Inter3/info18b.html

Deine Programme können damit unter Windows UND Linux usw. laufen, du 
hast eine vernünftige GUI/RAD bekommt unendlich viel gute Hilfe in den 
Foren(Im Gegensatz zu C(++ wo dir immer nur empfohlen wird dich damit zu 
beschäftigen etc)
Und es dauert nur Minuten, das erste Grundgerüst stehen zu haben inkl 
Oberfläche!

Und wenn du später doch unbedingt C lernen willst(brauchst du nicht, wen 
du es nicht beruflich benötigst) hast du alle Grunderfahrungen bereits 
in Pascal gesammelt und der Umstieg ist dann einfach.
ICh nutze bis heute PAscal programmiere damit auch AVR und ARM(Mikroe 
Compiler z.B.) ist aber auch mit FreePascal möglich

von 900ss (900ss)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Ich würde auch dazu raten, bei C zu bleiben, denn das kennst du und
> Windows wurde selbst ebenfalls in C geschrieben.

Hmmm..... hast du schonmal ein C-Programm für Windows geschrieben? Das 
mach ich nie wieder. Umständlicher weil recht low-level geht es nicht.
Wenn dann C#, da braucht man sich um vieles nicht mehr kümmern weil es 
einem einfach abgenommen wird.

C hat in meinen Augen nichts mehr in der Anwendungsprogrammierung zu 
suchen. Dafür gibt es inzwischen Sprachen, die dafür wesentlich besser 
geeignet sind. C nur für embedded.

C#, VB, Python, was weiß ich. Vieles ist besser geeignet als C.

Für solch ein kleines Programm wie der TO sich programmieren möchte, 
würde ich sogar Purebasic nutzen da es z.B. nur ein standalone 
Executable erstellt und das dann weiter keine Abhängigkeiten hat. Und 
man kann es ohne Probleme auf Linux portieren. Purebasic läuft auch 
unter Linux. Und es hat eine hilfreiche IDE auch zum Fenster designen.

von Geli⚡ (Gast)


Lesenswert?

Lazarus Pascal und Basic nehmen sich hier nicht.
Wobei die GUI von lazarus wohl eine der besten überhaupt ist
und auch der Vorteil das man alles in eine exe packen kann(geht bei C 
wohl auch) aber ist bei Lazraus pascal und Basic ja eigentlich Standard.

Python ist für den Zweck blöd, also klar geht ees auch, ist aber immer 
ein Umweg...mit Pascal, Basic oder C# hat das eher Hand und Fuß:-)
Klar, einfach ist Python natürlich auch

Und Lazarus funktioniert out of the Boxn, wie # und Basic ebenfalls, 
keine Fummelei, keine Einrichtung, nichts, runterladen, installieren, 
benutzen

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

900ss schrieb:
> hast du schonmal ein C-Programm für Windows geschrieben?

Ja, vor langer Zeit.

> Wenn dann C#

Sage ich ja. OOP ist aber nicht jedermanns Sache. Gerade hier im Forum 
sind auffällig viele, die OOP Sprachen ablehnen.

Ich bin bei dir: C# vereinfacht vieles erheblich, wenn man denn bereit 
ist, sich mit OOP zu beschäftigen.

: Bearbeitet durch User
von Geli⚡ (Gast)


Lesenswert?

Und hat es Spaß gemacht? Oftmals führt sowas in C /++ eher zu Frust, 
Pascal, und Basic bzw Python machen aber eher Spaß und die erstgenannten 
sind auch sehr vielseitig einsetzbar, stehen C bzw C++ in nichts nach, 
zumindest PAscal, wie sich Bsic über die Jahre weiterentwickelt hat, 
weiß ich nicht genau

von Nerd 8. (nerd81)


Lesenswert?

PureBasic ist dein Freund :-)

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Geli schrieb:
> Und hat es Spaß gemacht?

(Du meinst das Programmieren einer Windows Anwendung in C, nehme ich 
an.)

In meinem Fall war es ein Empfänger für eine IR Fernbedienung für 
Multimedia Wiedergabe. Das war sehr Systemnah mit rekativ wenig GUI. Ja, 
es hat Spaß gemacht. Ich würde es heute aber nicht mehr so machen, weil 
ich OOP in diesem Umfeld bevorzuge.

von Udo K. (udok)


Angehängte Dateien:

Lesenswert?

Micha schrieb:
> ich habe vor ca. 12 Jahren ein paar kleine Windows Programme mit Visual
> Studio erstellt.
>
> Nun hätte ich wieder eine Aufgabe:
>
>
> Das Ganze soll mindestens auf Windows 10 laufen. Ich würde Visual Studio
> 2022 verwenden. Wäre es sinnvoll, das mit Visual Basic zu realisieren?

Wenn du VB kannst, dann nimm VB.  Wenn du C kannst, dann nimm das.
Sinnvoll ist die Sprache, die du verstehst.
Bleib bei deinem alten Visual Studio, die neueren sind nicht unbedingt 
besser.

> Oder gibt es auch "einfachere" Möglichkeiten? Ich habe bisher nur
> Erfahrung in Programmierung mit C (nicht C++). Und etwas Visual Basic.
Einfacher als VB oder C/C# wird es nicht werden.

Ich habe mir den Spass gemacht, und deine Anwendungsbeschreibung
mit dem Visual Studio C# GUI Editor umzusetzen.
Für 10 Minuten Aufwand und für mein erstes C# Programm ist das Ergebnis
gar nicht so schlecht - siehe zip File :-)

Auf meinem 4k Monitor schaut das Programm allerdings nicht besonders gut 
aus - die Fonts sind viel zu klein.
Ich muss die DPI Kompatibilitätsssettings händisch auf "Application" 
setzen, damit alles passt.

Als Vergleich habe ich dir ein 250 Zeilen C Programm angehängt, dass ich 
vor einiger Zeit hier mal veröffentlicht hatte.  Das kannst du relativ 
leicht mit dem Visual Studio GUI Designer anpassen.

Gruss Udo

von Udo K. (udok)


Lesenswert?

Geli schrieb:
> Und hat es Spaß gemacht? Oftmals führt sowas in C /++ eher zu Frust,
> Pascal, und Basic bzw Python machen aber eher Spaß und die erstgenannten
> sind auch sehr vielseitig einsetzbar, stehen C bzw C++ in nichts nach,
> zumindest PAscal, wie sich Bsic über die Jahre weiterentwickelt hat,
> weiß ich nicht genau

Mir macht es Spass Windows in C/C++ zu programmieren.  Ich gebe aber zu, 
dass ich da keinen Ergebnisdruck habe, ist ein Hobby.  Ist auch egal, 
welche Sprache man verwendet, man muss sich damit gut auskennen, und vor 
allem muss das GUI Framework gut sein.  Der Aufwand in so ein Framework 
reinzukommen ist viel grösser, als die Sprache zu lernen.
Ich habe auch schon mit Tk/Tcl GUIs gemacht, und das war beeindruckend 
einfach.  Ein guter Startpunkt für C/C++ und Windows GUI ist auch das 
Win32++ Projekt auf Sourceforge.  Das ist eine Open Source GUI Lib 
ähnlich wie Microsoft Foundation Class. MFC ist für technische 
Anwendungen mit vielen Fenstern und komplizierten Dialogen immer noch 
sehr gut geeignet.  Wobei der kommerzielle Ableger 
https://codejock.com/downloads/samples/ heute empfehlenswerter ist.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Udo K. schrieb:
> Wenn du C kannst, dann nimm das.

Für Windows-GUI-Programmierung ist das allerdings 'ne sehr harte Nummer.
Ja, man kann mit der Win32-API in reinem C auch GUI-Programme schreiben, 
aber die Lernkurve ist hier sehr steil, weil man das nachrichtenbasierte 
Konzept von Windows verstehen muss, d.h. man muss verstehen, wie man 
Nachrichtenschleifen schreibt, und eben auch, daß so ein Programm nicht 
einen klar vorgegebenen Ablauf hat, sondern immer nur auf Ereignisse 
reagiert und dann auf das nächste Ereignis wartet.

Wenn man bislang nur herkömmliche Konsolenprogramme geschrieben hat, 
dann ist bereits das ein sehr harter Umstellungsprozess.

Das ganze in C++ mit einer Klassenbibliothek zu machen, versteckt viel 
von dem nötigen Code, hilft aber auch nicht beim Verständnis.

Und das ganze noch in zusätzliche Abstraktionsebenen zu verpacken, wie 
es manche plattformunabhängige GUI-Toolkits machen, macht die Sache noch 
schwieriger bzw. entfernt "die Denke" noch viel weiter von dem, was man 
mit C mal gelernt hat.

Für den Gelegenheitsprogrammierer ist es an dieser Stelle im Grunde 
genommen egal, ob er sich dann auch gleich 'ne andere Programmiersprache 
aneignet, das ist dann nur noch etwas syntaktischer Zucker auf einem 
großen Berg Neuland.

Wenn das Ziel das Schaffen von Grundlagenwissen ist, auf dem man die 
nächsten Jahre aufbauen kann, halte ich die Wahl eines 
plattformunabhängigen Ansatzes für nicht so besonders schlecht, denn 
vielleicht möchte man sich ja auch mal mit was anderem als Windows 
beschäftigen. Und damit sind die ganzen .Net-Varianten 'raus. Zwar gibt 
es für die auch Portierungen auf andere Betriebssysteme, aber das ist 
eher nur ein angeflanschter Stummel mit reduziertem Umfang.
Wird schon Gründe haben, warum kaum jemand freiwillig .Net jenseits von 
Windows verwendet und man in freier Wildbahn auch nicht über 
entsprechende Projekte stolpert.

Wenn es nur um ein jetzt-mal-benötigtes Programm geht, und keine sehr 
langfristige Perspektive dahintersteckt, dann ist der Weg des geringsten 
Widerstandes zu wählen. Dann kann man sich auch irgendwas mit dem 
Visual-Studio-Moloch zusammenklicken.

Achtung: Nicht miteinander verwechseln, "Visual Studio" und "Visual 
Studio Code" sind zwei komplett unterschiedliche Dinge.

"Visual Studio Code" ist ein universell erweiterbarer Editor, hilft hier 
aber (ohne viele zusätzliche Dinge) überhaupt nicht.

Wenn, dann "Visual Studio" in Form der "Community Edition". Das gibts 
für lau, und enthält je nachdem, welche Checkboxen man bei der 
Installation setzt, alles mögliche und noch viel mehr.

von Harald K. (kirnbichler)


Lesenswert?

Udo K. schrieb:
> Wobei der kommerzielle Ableger
> https://codejock.com/downloads/samples/ heute empfehlenswerter ist.

Das ist kein "kommerzieller Ableger" der MFC, sondern ein kommerzielles 
auf der MFC aufbauendes Toolkit.
Andere ebenfalls auf der MFC aufbauende kommerzielle Toolkits sind 
https://bcgsoft.com/Products/Bcgcontrolbarpro und 
https://www.perforce.com/products/stingray


Eine Alternative zur MFC selbst hingegen ist wxWidgets 
(https://www.wxwidgets.org/), das ist gerade für Umsteiger von der MFC 
ganz gut geeignet, weil die grundlegende Architektur ähnlich ist. Das 
ist Open Source und plattformunabhängig; ein bekanntes 
Open-Source-Projekt, das wxWidgets verwendet, ist der Audio-Editor 
Audacity.

Für wxWidgets gibt es auch "language bindings" für andere 
Programmiersprachen, das lässt sich beispielsweise mit Ruby oder Python 
verwenden.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Harald K. schrieb:
> weil man das nachrichtenbasierte Konzept von Windows verstehen muss

Ich denke, das gehört unabhängig von der Programmiersprache zu den 
Grundlagen, weil das ganze Windows Systen darauf beruht. Selbst mit 
einem abstrahierenden Framework sollte man verstehen, wie es 
funktioniert.

> Wenn man bislang nur herkömmliche Konsolenprogramme geschrieben hat, dann ist 
bereits das ein sehr harter Umstellungsprozess.

Ja, aber ein notwendiger.

: Bearbeitet durch User
von Udo K. (udok)


Lesenswert?

Harald K. schrieb:
>> Wenn du C kannst, dann nimm das.
>
> Für Windows-GUI-Programmierung ist das allerdings 'ne sehr harte Nummer.
> Ja, man kann mit der Win32-API in reinem C auch GUI-Programme schreiben,
> aber die Lernkurve ist hier sehr steil, weil man das nachrichtenbasierte
> Konzept von Windows verstehen muss, d.h. man muss verstehen, wie man
> Nachrichtenschleifen schreibt, und eben auch, daß so ein Programm nicht
> einen klar vorgegebenen Ablauf hat, sondern immer nur auf Ereignisse
> reagiert und dann auf das nächste Ereignis wartet.

Das geht erstaunlich einfach über die Bühne.  Zumindest solange man nur 
ein Haupt-Fenster oder Dialog mit einem Menu hat, wie es bei Micha der 
Fall ist.
Das GUI macht der Visual Studio Grafik Editor, da kommt eine Resource 
Datei raus mit einem Programmgerüst.  Die Resource Datei enthält die 
Grafikelemente und deren Position, die kann man auch händisch editieren.
Die Dummy Funktionen muss man dann noch mit was sinnvollem ausfüllen. 
Die RS232 Schnittstelle ist dann auch kein Hexenwerk.
Das Programmgerüst ist etwas umständlich geschrieben, das kann man 
selber kompakter und verständlicher machen.
Das Nachrichtenkonzept muss man nicht im Detail verstehen.  Man muss nur 
wissen, dass bei einem Mausklick oder einem Knopfdruck eine Funktion 
aufgerufen wird.  Wenn man an dieser Nachricht interessiert ist, muss 
man eine Funktion dafür bereitstellen.
In der Praxis läuft das dann auf ein grosses Switch-Statement raus - am 
Beispiel unten für das RS232CMD Programm muss man nur mehr
die OnSendButton() und die OnCommandButton() Funktionen erstellen, wo 
die eigentliche Arbeit stattfindet.
1
/*
2
 * Windows Prozedur für den Dialog.
3
 * Bearbeitet die Windows Nachrichten der Prozedur.
4
 */
5
INT_PTR CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
6
{
7
    switch(uMsg)
8
    {
9
        // Dialog wird erzeugt, ist aber noch nicht sichtbar
10
        case WM_INITDIALOG:
11
        {
12
            return TRUE;
13
        }
14
15
        // Button-ID
16
        case WM_COMMAND:
17
        {
18
            INT id = LOWORD(wParam);
19
20
            if (id == IDCANCEL || id == IDM_EXIT)
21
            {
22
                // Beende den Dialog mit WM_CLOSE
23
                SendMessage(hDlg, WM_CLOSE, 0, 0);
24
                return TRUE;
25
            }
26
27
            if (id == IDC_SEND)
28
            {
29
                // Der SEND Button wurde gedrückt - mach was damit
30
                OnSendButton(hDlg);
31
            }
32
33
            if (id >= IDC_BUTTON1 && id <= IDC_BUTTON32)
34
            {
35
                // Einer der 32 Kommand Buttons wurde gedrückt - mach was damit
36
                OnCommandButton(hDlg, id - IDC_BUTTON1);
37
            }
38
39
            if (id == IDM_HELP)
40
            {
41
                // Zeige den Hilfe Dialog an
42
                DialogBox(g_hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hDlg, AboutProc);
43
            }
44
45
            break;
46
        }
47
48
        // Anwender hat den Close Button gedrückt
49
        case WM_CLOSE:
50
        {
51
            if (MessageBox(hDlg, _T("Program beenden?"), _T("Exit"), MB_ICONQUESTION | MB_YESNO) == IDYES)
52
            {
53
                DestroyWindow(hDlg);
54
            }
55
            return TRUE;
56
        }
57
58
        // Dialog wird zerstört, kommt nach WM_CLOSE
59
        case WM_DESTROY:
60
        {
61
            // Beende das Programm
62
            PostQuitMessage(0);
63
            return TRUE;
64
        }
65
    }
66
67
    return FALSE;
68
}

: Bearbeitet durch User
von Udo K. (udok)


Lesenswert?

Harald K. schrieb:
> Eine Alternative zur MFC selbst hingegen ist wxWidgets
> (https://www.wxwidgets.org/), das ist gerade für Umsteiger von der MFC
> ganz gut geeignet, weil die grundlegende Architektur ähnlich ist. Das
> ist Open Source und plattformunabhängig; ein bekanntes
> Open-Source-Projekt, das wxWidgets verwendet, ist der Audio-Editor
> Audacity.

wxWidgets ist übel. Da ist alles nur halbherzig implementiert.  Ja, man 
kann damit optisch ansprechende Programme schreiben, aber nur mit 
wirklich viel Durchhaltevermögen.  Das einzige Open Source Framework, 
mit dem man out of the box ansprechende Windows GUIs hinbekommt ist Qt. 
Das ist aber ein richtiger Moloch.

von Joachim B. (jar)


Lesenswert?

https://lcc-win32.services.net/
damit habe ich erste WindowsProgramme erstellt.

Aber Programmieren muß man trotzdem lernen.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Aus meiner Sicht ein lästiges Problem: Programme mit C#, .net, Visual 
Irgendwas oder Java brauchen allesamt eine zusätzlich installierte 
Laufzeitbibliothek ...

Ich verwende seit über 10 Jahren Xojo, früher mal "RealBasic", später 
"Real Studio", aktuell "Xojo".

Ok, das ist nicht kostenlos, aber seitdem kann ich völlig problemlos 
Programme für Windows, MacOS und Linux (X86 und Raspi) aus ein und dem 
selben Quellcode per Knopfdruck erstellen. GUI-Designer in der IDE 
inklusive.

Mobilgeräte unter Android und iOS sind mit etwas mehr Aufwand ebenso zu 
bedienen.

Es gibt nichts was nicht geht: Grafik, Netzwerk, Datenbanken, Hardware, 
Schnittstellen ...

Aber immer: Beim Compilieren entsteht ein Ordner, in dem alles drin ist, 
was nötig. Keine zusätzliche "Installation", einfach kopieren, 
Doppelklick ... läuft.

https://www.xojo.com/

: Bearbeitet durch User
von Hmmm (hmmm)


Lesenswert?

Frank E. schrieb:
> Aus meiner Sicht ein lästiges Problem: Programme mit C#, .net, Visual
> Irgendwas oder Java brauchen allesamt eine zusätzlich installierte
> Laufzeitbibliothek ...

Visual C++ kann auch statisch linken, und .NET ist schon länger beim 
Betriebssystem dabei.

von Michael B. (laberkopp)


Lesenswert?

Hmmm schrieb:
> Frank E. schrieb:
>> Aus meiner Sicht ein lästiges Problem: Programme mit C#, .net, Visual
>> Irgendwas oder Java brauchen allesamt eine zusätzlich installierte
>> Laufzeitbibliothek ...
>
> Visual C++ kann auch statisch linken

Hmm, hast du rein gar nicht verstanden wovon Frank schreibt ?

von Geli⚡ (Gast)


Angehängte Dateien:

Lesenswert?

Die Lazraus Freepascal Oberfläche dürfte eine der besten überhaupt nach 
Visuall C von MS sein bzw Delphi
Und keinerlei Einschränkungen, auch wenn du was verkaufen willst etc. 
Absolut keine

So sähe ein Programm z.B. in Lazarus (Freepascal) aus
program SerialReceive;
1
program SerialReceive;
2
{$mode objfpc}{$H+}
3
4
uses
5
  Classes, SysUtils, synaser;
6
7
var
8
  Serial: TBlockSerial;
9
  ReceivedString: string;
10
begin
11
  // Serielle Schnittstelle initialisieren
12
  Serial := TBlockSerial.Create;
13
  try
14
    Serial.Connect('/dev/ttyS0'); // Ersetze mit dem richtigen Port (z. B. COM1 unter Windows)
15
    Serial.Config(9600, 8, 'N', SB1, False, False); // 9600 Baud, 8 Datenbits, keine Parität, 1 Stoppbit
16
17
    Writeln('Warte auf Daten von der seriellen Schnittstelle...');
18
19
    // Daten empfangen
20
    while True do
21
    begin
22
      if Serial.CanRead(1000) then // 1000 ms Timeout
23
      begin
24
        ReceivedString := Serial.RecvString(1000); // String empfangen
25
        if ReceivedString <> '' then
26
        begin
27
          Writeln('Empfangen: ', ReceivedString);
28
        end;
29
      end;
30
    end;
31
  finally
32
    Serial.Free;
33
  end;
34
end.

von Harald K. (kirnbichler)


Lesenswert?

Michael B. schrieb:
> Hmm, hast du rein gar nicht verstanden wovon Frank schreibt ?

Mit Visual Studio (was man als "Visual irgendwas" begreifen könnte), 
kann man sehr wohl statisch gelinkte Programme erstellen - 
vorausgesetzt, man verwendet C oder C++, aber nicht eine der 
.Net-Sprachen, zu denen auch C++/CLI oder "Managed C++" gehört.

Nutzt man die MFC, so ist das echtes C++, also keine .Net-Sprache, und 
MFC-Anwendungen kann man statisch linken, wie auch andere C++- und erst 
recht C-Programme auch.

Dann ist noch nicht mal "vcredist" in irgendeiner seiner aktuellen 
Versionen nötig.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Micha schrieb:

> Das Ganze soll mindestens auf Windows 10 laufen. Ich würde Visual Studio
> 2022 verwenden. Wäre es sinnvoll, das mit Visual Basic zu realisieren?

Natürlich. Könnte man genausogut auch in C# machen, aber wenn du VB 
(.net) wenigstens schon etwas kennst, ist es natürlich in VB leichter 
für dich.

> Oder gibt es auch "einfachere" Möglichkeiten?

Eher nein. Was könnte einfacher sein als ein .Net-Programm? Das ist 
managed code, der dir deine Fehler (meistens) völlig unverblümt und mit 
genauem Fehlerort präsentiert.

Schon zur Entwurfszeit wirst du mit Komfort geradezu zugeschissen. Er 
bemeckert jeden Fehler, der hier bereits erkennbar ist.

Keine u.b.-Scheiße wie bei C oder C++, wo du selbst dahinter kommen 
musst, wo du den Mist gebaut hast, weil der Compiler zu blöd ist, dir 
das zu melden. Aber nicht zu bescheuert, um trotzdem ein Programm zu 
generieren. Manchmal sogar eins, was ohne Laufzeitfehler läuft. Es macht 
dann halt nur nix sinnvolles, zumindest aber nicht das Gewünschte...

Naja, inzwischen gibt es wenigstens meistens Warnungen. Aber oft auch 
nicht sehr hilfreich. Die Texte der Warnungen weisen oft nicht auf das 
eigentliche Problem hin.

Also, ich kann dir nur empfehlen: .net. Macht vieles um vieles 
einfacher.

von Rbx (rcx)


Lesenswert?

Je nachdem, was einem liegt, oder mehr entgegen kommt, oder was man 
aktuell zusammenbekommt. Python ist ja so gesehen auch gar nicht so 
schlecht.

Viele Experten damals hatten sehr zuverlässige Windows-Programme in c 
und asm geschrieben.
So manche Visual Basic - Programme von Ingenieuren waren aber oft 
fehlerhaft oder wirkten unprofessionell.

Die Pascal-Programmierpackete waren auch toll, und auch super 
dokumentiert, und das lcc-Win Compilerpacket hatte wohl auch gute 
Windows-Programmierdoku und -Bib dazu, bzw. ein wichtiges Help-File.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Frank E. schrieb:
> Aus meiner Sicht ein lästiges Problem: Programme mit C#, .net, Visual
> Irgendwas oder Java brauchen allesamt eine zusätzlich installierte
> Laufzeitbibliothek ...
>
> Ich verwende seit über 10 Jahren Xojo, früher mal "RealBasic", später
> "Real Studio", aktuell "Xojo".

Braucht mit Sicherheit ebenfalls irgendwelche Laufzeit-Bibliotheken. Es 
gibt praktisch keine Anwendung für irgendein OS, die keine braucht.

Der Punkt ist einfach: das OS bringt diese Bibliotheken mit. 
Hoffentlich. Wenn nicht, müssen sie halt nachinstalliert werden.

Laß' doch einfach mal eins deiner tollen Xojo-Programme testweise mal 
unter WindowsXP laufen. Geht das? In vollem Umfang? Falls ja: wie groß 
ist der Umfang, was tut das Programm?

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Harald K. schrieb:

> Dann ist noch nicht mal "vcredist" in irgendeiner seiner aktuellen
> Versionen nötig.

Aber immer noch "kompatible" Versionen der grundlegenden OS-Libraries.

Da sind zwar (was Windows betrifft) fast durchgängig abwärtskompatibel, 
aber nur eingeschränkt auch aufwärtskompatibel.

Schöner Test ist also immer: Laß' das stolze Produkt auch mal unter 
unter einem "frischen" WindowsXP laufen...

von Ein T. (ein_typ)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Ich würde auch dazu raten, bei C zu bleiben, denn das kennst du und
> Windows wurde selbst ebenfalls in C geschrieben.

Trotz dieser starken Argumente entwickelt Microsoft seine Flaggschiffe 
Word, Excel und Powerpoint laut Wikipedia alle in C++. Warum nur?

von Ein T. (ein_typ)


Lesenswert?

Geli schrieb:
> Python ist für den Zweck blöd, [...]

Warum? Für mich wären Python mit Tix (oder Flask, Jinja2 und eventuell 
Svelte) gerade für solchen Kleckerkram die erste Wahl.

von Geli⚡ (Gast)


Lesenswert?

stimmt schon, aber ich selber mag immer richtige EXE Files:-) Und mi 
Lazarus Pascal geht das nicht schwieriger als mit Python
ISt halt Geschmackssache.
Und PAscal Programme starten so schön schnell:-)
Keine Ahnung, wie das bei Python ist

von Andreas H. (drbo)


Angehängte Dateien:

Lesenswert?

Ich war dieses Jahr auch auf Suche nach einer neuen IDE, ich habe lang 
Delphi benutzt aber inzwischen keine Lizenz mehr. Delphi wäre mir 
persönlich zu teuer gewesen. Ich habe einige IDE's durchgetestet - auch 
Freeware in Verbindung mit wxWidgets aber ich möchte Anwendungen 
erstellen und nicht Stunden lang versuchen eine lauffähige 
Entwicklungsumgebung aufzusetzen.

Ich bin bei C# gelandet und mit der Rider IDE von Jetbrains wunschlos 
glücklich. Die IDE ist bei Nicht-Kommerzieller Nutzung kostenlos, 
ansonsten kostet diese 177€/Jahr für Einzelpersonen.

Top IDE, einwandfreier Debugger und tatsächlich sinnvolle Vorschläge zur 
Autovervollständig.

Eines meiner ersten Projekte damit war auch ein Datenlogger. Allerdings 
mit tcp/ip und der Speicherung in einer SQLite Datenbank - mit der 
Möglichkeit die Daten anschließend graphisch anzeigen zu lassen.

von Geli⚡ (Gast)


Lesenswert?

Wie sieht es mit Mono aus? hast du da Erfahrungen?
Sonst ist man so auf Windows beschränkt und muss bald wieder umsteigen, 
deshalb bevorzuge ich Lazarus als langfristige Alternative

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Geli schrieb:
> Wie sieht es mit Mono aus?

Scheint gestorben zu sein.

von Harald K. (kirnbichler)


Lesenswert?

Ein T. schrieb:
> rotz dieser starken Argumente entwickelt Microsoft seine Flaggschiffe
> Word, Excel und Powerpoint laut Wikipedia alle in C++. Warum nur?

Weil die von Leuten entwickelt werden, die damit Geld verdienen, und 
ständig damit arbeiten.

Hier will jemand, der nur einige sehr alte C-Kenntnisse hat, sich selbst 
ein Programm basteln.

> Ich habe bisher nur Erfahrung in Programmierung
> mit C (nicht C++).

Davon, daß er groß "in die Programmierung einsteigen" will, war nicht 
die Rede, auch nicht, daß er sich eine Karriere als Softwareentwickler 
erträumt.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Harald K. schrieb:
> Weil die von Leuten entwickelt werden, die damit Geld verdienen, und
> ständig damit arbeiten.

Ich würde eher sagen, weil sie in C++ entwickelt wurden und das nun 
niemand mehr komplett neu schreibt.

von Ein T. (ein_typ)


Lesenswert?

Geli schrieb:
> stimmt schon, aber ich selber mag immer richtige EXE Files:-) Und mi
> Lazarus Pascal geht das nicht schwieriger als mit Python
> ISt halt Geschmackssache.
> Und PAscal Programme starten so schön schnell:-)
> Keine Ahnung, wie das bei Python ist

Das hängt davon ab, wie man es macht. Man kann Python ja auch in 
Executables übersetzen oder verpacken, und je nachdem, wie es dabei 
gewünscht ist, auch standalone, so daß der Interpreter ins Executable 
eingebettet ist und nicht separat installiert werden muß. Allerdings: 
auch wenn das mit Python möglich ist, erhöht es die Entwicklungszeit und 
invalidiert damit genau das, weswegen man eine Skriptsprache benutzen 
möchte.

Andererseits habe ich lange gezögert, ob ich dem TO für seine Aufgabe 
Python empfehlen möchte, und mich dann bewußt dagegen entschieden. Denn 
der TO hat zwar Erfahrungen mit C und VisualBasic, jedoch keine mit 
Python oder Pascal. Ich würde niemandem, der in zeitlich sehr großen 
Abständen was anderes als C braucht, empfehlen, eine neue Sprache zu 
lernen. Da ist die Kosten-Nutzen-Relation IMHO einfach viel zu schlecht.

Ich ganz persönlich würde die Aufgabe des TO allerdings heutzutage 
ohnehin anders lösen und, vermutlich mit Golang, eine Websoftware 
schreiben. Dies hätte einige interessante Vorteile: Golang läßt sich 
sehr einfach in ein einfaches Executable mit eingebetteten Ressourcen 
(Templates, CSS, SVGs, ECMAScript, Grafiken) übersetzen, das standalone 
überall läuft -- und das gleichzeitig auch sofort netzwerk- (und sogar 
mobil-)fähig gemacht werden kann. Das Admintool PgAdmin4 für PostgreSQL 
machen es vor. Sowas finde ich persönlich ausgesprochen schick und 
nützlich.

von Ein T. (ein_typ)


Lesenswert?

Harald K. schrieb:
> Ein T. schrieb:
>> rotz dieser starken Argumente entwickelt Microsoft seine Flaggschiffe
>> Word, Excel und Powerpoint laut Wikipedia alle in C++. Warum nur?
>
> Weil die von Leuten entwickelt werden, die damit Geld verdienen, und
> ständig damit arbeiten.

Dasselbe wäre allerdings der Fall, wenn sie diese Programme in C 
entwickeln würden, das hier im Thread ja mehrmals empfohlen worden ist.

> Davon, daß er groß "in die Programmierung einsteigen" will, war nicht
> die Rede, auch nicht, daß er sich eine Karriere als Softwareentwickler
> erträumt.

Das ist mir ebenso bekannt wie bewußt. Dennoch paßt die 
Objektorientierung besser zur Entwicklung von GUIs als irgendein anderes 
Paradigma. Das sieht recht schön beim GTK, das ziemliche Klimmzüge 
unternimmt, um C mit so etwas Ähnlichem wie OO-Features aufzupeppen. Ich 
würde vermuten, daß das bisschen Objektorientierung von C++ für einen 
erfahrenen C-Entwickler einfacher zu lernen ist, als wenn er sich 
gleichzeitig eine neue Sprache aneignen muß.

von Michael B. (laberkopp)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Ich würde eher sagen, weil sie in C++ entwickelt wurden und das nun
> niemand mehr komplett neu schreibt.

Oh, so was wurde schon gemacht, das beliebte PaintShopPro in C wurde als 
Paint.Net in C# neu geschrieben.

Neuer besser moderner - and it sucks, ist gross, langsam und braucht 
halt DotNET.

von Ein T. (ein_typ)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Harald K. schrieb:
>> Weil die von Leuten entwickelt werden, die damit Geld verdienen, und
>> ständig damit arbeiten.
>
> Ich würde eher sagen, weil sie in C++ entwickelt wurden und das nun
> niemand mehr komplett neu schreibt.

Okay, Kontext... meine Frage zielte darauf ab, warum sie in C++ 
geschrieben worden sind, obwohl die Entwickler das doch auch in dem 
damals ebenfalls zur Auswahl stehenden C hätten tun können, wenn ich den 
Argumenten in diesem Thread einmal konsequent folgen möchte. :-)

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Ein T. schrieb:
> meine Frage zielte darauf ab, warum sie in C++ geschrieben worden sind,
> obwohl die Entwickler das doch auch in dem damals ebenfalls zur Auswahl
> stehenden C hätten tun können

Weil C++ OOP hinzugefügt hat, welches zum besseren Strukturieren 
komplexer Programme erfunden wurde. Vererbung passt wie die Faust auf's 
Auge zu GUI Elementen.

: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Geli⚡ schrieb:

> Wie sieht es mit Mono aus? hast du da Erfahrungen?

Mono gibt es für alle verbreiteteten Distributionen. Und es 
funktioniert. Solange du ein reines .Net-Programm hast (und dieses 
sauber programmiert ist), wird es auch unter Mono laufen, ggf. 
allerdings mit leichten Einschänkungen, die aus der unterschiedlichen 
Infrastruktur resultieren.

Sobald darin allerdings in irgendeiner Form auf nativen, 
plattformspezifischen  Code zugegriffen wird, wird es schwierig.

> deshalb bevorzuge ich Lazarus als langfristige Alternative

Das Problem mit dem Zugriff auf nativen, plattformspezifischen Code hast 
du da allerdings genauso.

von Ein T. (ein_typ)


Lesenswert?

Michael B. schrieb:
> Oh, so was wurde schon gemacht, das beliebte PaintShopPro in C wurde als
> Paint.Net in C# neu geschrieben.

Nein.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Michael B. schrieb:

> Oh, so was wurde schon gemacht, das beliebte PaintShopPro in C wurde als
> Paint.Net in C# neu geschrieben.

So ein Unsinn. Allenfalls mutet das GUI (ein ganz klein wenig) ähnlich 
an. Aber nicht viel ähnlicher als z.B. das GUI von GIMP. Die 
Ähnlichkeiten dürften also vor allem aus der gemeinsamen Aufgabe 
jeglichen Programms zu Bildbearbeitung resultieren.

Der Code hat mit dem von PaintShopPro auf jeden Fall absolut nix gemein.

von Harald K. (kirnbichler)


Lesenswert?

Ein T. schrieb:
> Okay, Kontext... meine Frage zielte darauf ab, warum sie in C++
> geschrieben worden sind, obwohl die Entwickler das doch auch in dem
> damals ebenfalls zur Auswahl stehenden C hätten tun können, wenn ich den
> Argumenten in diesem Thread einmal konsequent folgen möchte. :-)

Diesen Unfug hast Du in Aussagen hineininterpretiert, die Du einfach 
nicht verstanden hast oder verstehen wolltest.

von Ein T. (ein_typ)


Lesenswert?

Harald K. schrieb:
> Diesen Unfug hast Du in Aussagen hineininterpretiert,

Nö.

von Harald K. (kirnbichler)


Lesenswert?

Na dann ist ja alles in Butter.

Der Threadstarter scheint übrigens schon vorgestern die Abbiegung in 
Richtung vb.net genommen zu haben.

von Rbx (rcx)


Lesenswert?

Ein T. schrieb:
> Nö.

Doch.

von Joachim B. (jar)


Lesenswert?

Rbx schrieb:
> Ein T. schrieb:
>> Nö.
>
> Doch.

oooh

von Geli⚡ (Gast)


Lesenswert?

Dann hat er doch alles richtig gemacht.
Ich hätte dennoch Lazarus Pascal genommen, aber mit VB macht er sicher 
auch nichts falsch


Harald K. schrieb:
> Na dann ist ja alles in Butter.
>
> Der Threadstarter scheint übrigens schon vorgestern die Abbiegung in
> Richtung vb.net genommen zu haben.

von Jürgen H. (hansmd)


Angehängte Dateien:

Lesenswert?

Morning!

Hier mal ein Beispiel für die Kommunikation mit der RS232-Schnittstelle
und zum Schreiben in eine Datei. Letztere habe ich zum Auslesen eines
EPROMMS (U555) erstellt.

Viel Spass damit
Jürgen

von Jürgen H. (hansmd)


Lesenswert?

Hallo Andreas H.,
keine Lizens für Delphi mehr? Die letzte Version wurde
doch freigestellt, d.h. die Autorisierung veröffentlicht.
Habe die CD von "Delphie für KIDS" installiert und dann
auch freigeschaltet.

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.