Forum: PC-Programmierung COM Schnittstelle von Visual C++ (.Net) zu anderer Software


von An D. (deinbesta)


Angehängte Dateien:

Lesenswert?

Hallo,
ich bin ein totaler Anfänger und möchte wissen, wie man mit Visual C++ 
Express 2010 eine COM SCHNITTSTELLE zu einer Software beliebigen namens 
XYZ herstellen kann.

Mein Vorhaben:
Ich will mit Visual C++ Express 2010 eine GUI mit einem Button 
herstellen, womit ich bei einer externen Software ein Button 
aktiviere/deaktiviere.

Meine Vorgehensweise:
-- Ich erstelle ein Visual C++ Express 2010 Projekt und gehe unter 
CLR----> Windows Forms-Anwendung.
Nachdem ich meiner GUI ein Button hinzugefügt habe, sieht meine GUI so 
aus [ANHANG 02].
-- Meinem Projekt tue ich noch die COM SCHNITTSTELLE unter Visual C++ 
Express 2010 verweisen auf folgende Art.
''''''''''''''''''''''''''''''''''''''''''
Ich gehe auf Projektmappen-Explorer->CONNECTOR [siehe Abbildung 
02]->rechte Maus->Verweise...->Neuen Verweis hinzufügen...CAN_MonitorApp
Das ganze schließ ich dann alles mit OK ab. Es sieht dann folgendermaßen 
aus [Abbildung 01].
'''''''''''''''''''''''''''''''''''''''''''
Jetzt ist meine Frage, wie ich die bestehenden folgenden beiden C++ 
Codes ergänzen soll, damit das Programm funktionsfähig wird.

Der Code der Windows-Forms-Anwendungs-GUI sieht folgendermaßen aus:
###########################################################
#######_ANFANG_FORM1.h_####################################
#pragma once

namespace ANWENDUNG {

  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Collections;
  using namespace System::Windows::Forms;
  using namespace System::Data;
  using namespace System::Drawing;

  /// <summary>
  /// Zusammenfassung für Form1
  /// </summary>
  public ref class Form1 : public System::Windows::Forms::Form
  {
  public:
    Form1(void)
    {
      InitializeComponent();
      //
      //TODO: Konstruktorcode hier hinzufügen.
      //
    }

  protected:
    /// <summary>
    /// Verwendete Ressourcen bereinigen.
    /// </summary>
    ~Form1()
    {
      if (components)
      {
        delete components;
      }
    }
  private: System::Windows::Forms::Button^  button1;
  protected:

  private:
    /// <summary>
    /// Erforderliche Designervariable.
    /// </summary>
    System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
    /// <summary>
    /// Erforderliche Methode für die Designerunterstützung.
    /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert 
werden.
    /// </summary>
    void InitializeComponent(void)
    {
      this->button1 = (gcnew System::Windows::Forms::Button());
      this->SuspendLayout();
      //
      // button1
      //
      this->button1->Location = System::Drawing::Point(119, 54);
      this->button1->Name = L"button1";
      this->button1->Size = System::Drawing::Size(75, 23);
      this->button1->TabIndex = 0;
      this->button1->Text = L"button1";
      this->button1->UseVisualStyleBackColor = true;
      this->button1->Click += gcnew System::EventHandler(this, 
&Form1::button1_Click);
      //
      // Form1
      //
      this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);
      this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
      this->ClientSize = System::Drawing::Size(282, 255);
      this->Controls->Add(this->button1);
      this->Name = L"Form1";
      this->Text = L"Form1";
      this->ResumeLayout(false);

    }
#pragma endregion
  private: System::Void button1_Click(System::Object^  sender, 
System::EventArgs^  e) {
       }
  };
}
##############ENDE__FORM1.h_#############################
#########################################################
Die main-Datei sieht folgendermaßen aus:
#########################################################
######_ANFANG_Hauptprojektdatei_#########################
// ANWENDUNG.cpp: Hauptprojektdatei.

#include "stdafx.h"
#include "Form1.h"

using namespace ANWENDUNG;

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
  // Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente 
erstellt werden
  Application::EnableVisualStyles();
  Application::SetCompatibleTextRenderingDefault(false);

  // Hauptfenster erstellen und ausführen
  Application::Run(gcnew Form1());
  return 0;
}
############_ENDE_Hauptprojektdatei_#####################
#########################################################

Ich weiß, dass ich jetzt auf die COM-Schnittstelle die COM-Schnittstelle 
CAN_MonitorApp verweise und ich weiß, dass ich noch die folgenden Sachen 
irgendwie den oberen Codes hinzufügen muss:
'''''''''''''''''
CoInitialize(); oder auch CoInitialize(NULL);
'''''''''''''''''
CoUninitialize();
'''''''''''''''''
HResult hr;
hr = ::CoCreateInstance(CLSID_Application, NULL, CLSCTX_LOCAL_SERVER,
IID_IApplication, (void**)&m_IApplication);
if(SUCCEEDED(hr)){
if (m_IApplication) {
m_IApplication->Connect ( 1 ); //Mit Connect (1) wird der Button
                               //aktiviert, wie ich verstanden habe.
                    }
                  }
'''''''''''''''''

Bei weiteren Details oder Fragen, stehe ich gerne zur Verfügung.

Würde mich sehr über konstruktive Hilfe bedanken.

----

Gebrülle (Großbuchstaben) aus Überschrift entfernt, Hinweis auf .Net 
angebracht.

-rufus

von Peter II (Gast)


Lesenswert?

Das ist kein C++!
1
int main(array<System::String ^> ^args)

Das hier ist aber C++
1
HResult hr;
2
hr = ::CoCreateInstance(CLSID_Application, NULL, CLSCTX_LOCAL_SERVER,
3
IID_IApplication, (void**)&m_IApplication);

du musst dich also erstmal für die Sprache entscheiden.

von An D. (deinbesta)


Lesenswert?

Hallo,
aber wie kann das sein, dass das nicht C++ ist?
Ich habe ja alles in Visual C++ Express 2010 bearbeitet?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

An Dre schrieb:
> aber wie kann das sein, dass das nicht C++ ist?

Das ist "C++/CLI". Heißt zwar irgendwie so wie C++, ist aber keines, 
sondern eine Microsoft-Sprache für .Net.


Der Begriff "COM Schnittstelle" ist übrigens ungeschickt, da damit 
üblicherweise serielle Schnittstellen gemeint werden.

Du willst ein Programm per Automation steuern. Das ist das Stichwort, 
nach dem Du suchen solltest.

Für das Anklicken von Knöpfen in beliebiger Fremdsoftware ist das aber 
der falsche Ansatz, bei weitem nicht jedes Programm ist per Automation 
steuerbar, und wenn ein Programm so steuerbar ist, dann nicht seine GUI, 
sondern vom Entwickler des Programmes festgelegte Funktionen.

Um Knöpfe anzuklicken, brauchst Du nur das Fensterhandle des Knopfes 
bzw. des den Knopf enthaltenen Fensters und musst mit PostMessage bzw. 
SendMessage eine WM_BUTTONDOWN-Nachricht senden.

Wenn das Fenster seine Knöpfe selbermalt, musst Du hingegen 
Mausbewegungen und Mausklicks simulieren -- das machen Anwendungen wie 
z.B. AutoIt.


Ach ja:
Wir mögen hier kein Herumgebrülle. Texte in Versalien (Großbuchstaben) 
werden als Gebrülle wahrgenommen.

von An D. (deinbesta)


Lesenswert?

Ohjee,
tut mir Leid, wegen des Herumgebrüllens. Es war mehr als ein ausrufen 
gemeint, um Aufmerksamkeit zu erwecken.

Wie dem auch sei.
Dieses Programm ist aber per Automation steuerbar. Ich habe es bereits 
mit Visual Basic kinderleicht geschafft, nur möchte ich viel lieber mit 
C++ das Programm steuern. Hintergrund ist, dass ich in dem zu steuernden 
Programm auch C++ benutzen muss und von daher gleich die Steuerung 
dieses Programms mit C++ vornehme, damit ich nicht verschiedene Sprachen 
lernen muss.

Und es ist auch richtig, dass vom Entwickler festgelegte Funktionen 
vorgegeben sind. Diese Funktionen der Software XYZ muss ich von außen 
mittels Visual C++ oder Visual Basic steuern können.

Mein oberster Ansatz muss schon irgendwie funktionieren. Nur, weiß ich 
nicht, wo ich genau das mit dem Hresult, etc. hin tun muss.

von Peter II (Gast)


Lesenswert?

An Dre schrieb:
> Dieses Programm ist aber per Automation steuerbar. Ich habe es bereits
> mit Visual Basic kinderleicht geschafft, nur möchte ich viel lieber mit
> C++ das Programm steuern.

dann musst du halt noch mal neu einfangen und wirklich ein C++ programm 
anlegen wenn es c++ sein soll.

Wenn nicht, dann kannst du auch gleich bei VB bleiben - es kommt am ende 
dann die gleiche exe raus. (Wenn es schon vb.net ist)

von An D. (deinbesta)


Lesenswert?

hmm, verstehe.
Und wie kann ich dann ein reines C++ entwickeln mit Visual C++?
Ich kannte bisher das Visual C++/CLI (.NET) nicht.
Sind da die Unterschiede markant?

Ist das MFC (Visual C++) das "reinere" C++? Ich verstehe nicht, wie ich 
das MFC in meiner Version starten kann? Muss ich das Visual C++ Express 
2010 updaten oder so, damit da ein Asssistant vorhanden ist, womit man 
MFC Projekte anlegen kann?

Und Guck, ich habe ja einfach Projekt gestartet und über den Button in 
der Abbildung 02.jpg (Siehe Anhang) einfach per Doppelklick auf den 
Button einen Code generieren lassen. Viel geschrieben habe ich da noch 
nicht.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

An Dre schrieb:
> Ist das MFC (Visual C++) das "reinere" C++?

MFC ist eine Klassenbibliothek, die einen "echten" C++-Compiler 
voraussetzt. Allerdings kannst Du mit "Visual Studio Express" keine 
MFC-Anwendungen entwickeln, weil MS die dafür nötige Unterstützung 
entfernt hat. Der Compiler passt zwar, aber die Headerdateien, Libraries 
und App- und Classwizards fehlen alle.

Das macht aber nichts, Du kannst anstelle der MFC auch wxWidgets oder Qt 
verwenden.

von An D. (deinbesta)


Lesenswert?

laut wiki:http://de.wikipedia.org:
"Die kostenlose Visual C++ 2010 Express Edition kann direkt von 
Microsofts Webseite heruntergeladen und installiert werden. Diese 
Version bietet keine Unterstützung für die MFC-Klassenbibliothek und 
stellt laut Hersteller ein Werkzeug für den Hobby- und Einsteigerbereich 
dar."

Ich informiere mich mal etwas über wxWidgets & Qt.

Mir hat der Gedanke gefallen, dass ich nicht viel von ObjektOrientierter 
Programmierung (OOP) verstehen brauche und kinderleicht mit Visual 
einfach so GUIs erstellen kann und per Doppelklick ein Code entsteht, 
den man weiter bearbeiten braucht.

von Peter II (Gast)


Lesenswert?

An Dre schrieb:
> Sind da die Unterschiede markant?
ja, die Frage ist warum es denn C++ sein soll. Wenn es keinen wirklichen 
Grund gibt dann mach es mit C# dort geht es so ähnlich wie in VB und ist 
die "echte" .net Sprache.

> Ist das MFC (Visual C++) das "reinere" C++? Ich verstehe nicht, wie ich
> das MFC in meiner Version starten kann? Muss ich das Visual C++ Express
> 2010 updaten oder so, damit da ein Asssistant vorhanden ist, womit man
> MFC Projekte anlegen kann?

kann ich leider nicht sage, habe nicht die Express version installiert.

von An D. (deinbesta)


Lesenswert?

OK, die oben genannten Stichwörter sind gerade das, was ich vielleicht 
suche. Sind also komplett andere Software werkzeuge, mit denen ich jetzt 
GUIs anfertigen kann.

Nur habe ich da noch überhaupt kein schimmer von.

Die Software QT Project ist sogar von dieser eigentlich zu steuernden 
Software explicit genannt worden, als Werkzeug zur Herstellung der 
GUIs...

Heisst es also, ich kann mit dieseen oben genannten Softwares eine Gui 
erstellen und die Software ist dann im Stande ein C++ Code zu erstellen, 
welchen ich so ergänzen muss, damit über eine Schnittstelle die 
Fremdsoftware angesteuert werden kann?

von An D. (deinbesta)


Lesenswert?

> ja, die Frage ist warum es denn C++ sein soll. Wenn es keinen wirklichen
> Grund gibt dann mach es mit C# dort geht es so ähnlich wie in VB und ist
> die "echte" .net Sprache.

Wie gesagt, ich muss in der zu steuernden Software auch mit C++ arbeiten 
und wollte mich jetzt nicht in zig Sprachen einarbeiten. Alles 
einheitlich mit C++ zu bearbeiten wäre mir einfach lieber.

von An D. (deinbesta)


Lesenswert?

Heißt es eigentlich, dass die obere Datei in
#######_ANFANG_FORM1.h_####################################
keine C++ ist?

Und dass das mit dem Hresult als Ergänzung hier nicht möglich ist?

von Peter II (Gast)


Lesenswert?

An Dre schrieb:
> Wie gesagt, ich muss in der zu steuernden Software auch mit C++ arbeiten
> und wollte mich jetzt nicht in zig Sprachen einarbeiten. Alles
> einheitlich mit C++ zu bearbeiten wäre mir einfach lieber.

Was heist "ich muss in der zu steuernden Software auch mit C++ 
arbeiten"?

Aus .net kann man auch dlls aufrufen, es könnte also durchaus sinn 
machen die Gui mit c# zu machen und den Teil den du zwingen mit C++ 
machen musst in einer DLL auszulagern.

Und wenn du bis jetzt "nur" VB gemacht hast, dann ist es nicht mal 
schnell auf C++ umgelernt. Ich will es dir nicht ausreden aber man kann 
sehr viele fehler in C/C++ machen wo man stunden lang mit fehlersuche 
verbingt. (speicher überschreiber, speicher nicht freigeben)

von Peter II (Gast)


Lesenswert?

An Dre schrieb:
> Heißt es eigentlich, dass die obere Datei in
> #######_ANFANG_FORM1.h_####################################
> keine C++ ist?

using namespace System;

ist schon mal kein C / C++

von An D. (deinbesta)


Lesenswert?

> Was heist "ich muss in der zu steuernden Software auch mit C++
> arbeiten"?

Es ist so, dass die zu steuernde Software XYZ Simulationen anstellt uund 
für diese Simulationen muss ich sogenannte Knoten mit C++ entwerfen.

Von Außerhalb - z.B. mittels einer GUI - will ich ebend über Button auf 
diese Simulation einwirken.

von Peter II (Gast)


Lesenswert?

An Dre schrieb:
> Es ist so, dass die zu steuernde Software XYZ Simulationen anstellt uund
> für diese Simulationen muss ich sogenannte Knoten mit C++ entwerfen.

du weiss noch nich mal was C++ ist und musst irgendwelche dinge zwingend 
in dieser sprache machen? Wird bei euch gewürfelt wer was macht?

von An D. (deinbesta)


Lesenswert?

Ich muss ja nicht komplett anfangen, 1000 Seiten C++ Code zu schreiben. 
Es sind nur einige elementare Funktionen, die ich versuche in C++ zu 
schreiben. Ist mehr so eine Art Machbarkeitsstudie...
D.h. dass auch der Aufwand für eine Machbarkeit bewertet werden soll....

von Peter II (Gast)


Lesenswert?

An Dre schrieb:
> Ich muss ja nicht komplett anfangen, 1000 Seiten C++ Code zu schreiben.
> Es sind nur einige elementare Funktionen, die ich versuche in C++ zu
> schreiben. Ist mehr so eine Art Machbarkeitsstudie...
> D.h. dass auch der Aufwand für eine Machbarkeit bewertet werden soll....

das spricht doch alles dafür das man schnell in VB oder c# zu machen. 
Für eine Test C++ zu lernen ist ein wenig sinnlos. C++ ist nun mal nicht 
die sprache für Gui erstellung. C++ kennt keine gui. du musst dich also 
in WX, QT oder MFC einarbeiten und in C++.

von An D. (deinbesta)


Lesenswert?

> in dieser sprache machen? Wird bei euch gewürfelt wer was macht?
Übrigens, der war guuut, hab mich weggelacht^^

von Arc N. (arc)


Lesenswert?

Peter II schrieb:
> An Dre schrieb:
>> Heißt es eigentlich, dass die obere Datei in
>> #######_ANFANG_FORM1.h_####################################
>> keine C++ ist?
>
> using namespace System;
>
> ist schon mal kein C / C++

Wenn es den angegebenen Namespace gibt, ist es Ansi C++ (7.3.4
Using directive, scnr)...

Damit alle wissen um was es anscheinend geht
http://rbei-etas.github.com/busmaster/

Ansonsten: COM ist mit den .NET-Sprachen wie C# oder VB bzw. dank COM 
Interop imo etwas "angenehmer"
http://msdn.microsoft.com/en-us/library/6bw51z5z(v=vs.100).aspx

von An D. (deinbesta)


Lesenswert?

> das spricht doch alles dafür das man schnell in VB oder c# zu machen.

Ok, hört sich sehr weise an.
Weil ich das mit VB schonmal kurz hingekriegt habe, werde ich dann dies 
weiter verfolgen.

Wollte halt nur mit C++ alles einheitlich machen.
Anscheinend ist es garnicht mal so einfach mit C++ eine GUI herzustellen 
und mit dieser über ein ein COM Interface eine Verbindung zu einer 
anderen Software herzustellen.

Bei der zu steuernden Software wurde im Handbuch ebenfalls von Visual 
Basic, C++, und QT Designer gesprochen.

Ich werde jetzt den Weg weiter verfolgen, mittels VB eine GUI zu 
erstellen, und mittels C++ die Knoten in der zu steuernden Software zu 
programmieren.

Vielen Dank für die rege Teilnahme, wart eine seeeehr große Hilfe ;-)

von Peter II (Gast)


Lesenswert?

Arc Net schrieb:
> Peter II schrieb:
>> An Dre schrieb:
>>> Heißt es eigentlich, dass die obere Datei in
>>> #######_ANFANG_FORM1.h_####################################
>>> keine C++ ist?
>>
>> using namespace System;
>>
>> ist schon mal kein C / C++
>
> Wenn es den angegebenen Namespace gibt, ist es Ansi C++ (7.3.4
> Using directive, scnr)...

oh mist, da war wohl die falsche zeile in der zwischenablage

public ref class Form1 : public System::Windows::Forms::Form

ist aber kein C++ außer man defined ref weg.

von An D. (deinbesta)


Lesenswert?

> Damit alle wissen um was es anscheinend geht
> http://rbei-etas.github.com/busmaster/

In der Tat handelt es sich um die Opensource Software RBEI BUSMASTER!!!

von An D. (deinbesta)


Angehängte Dateien:

Lesenswert?

Hallo,

habe es jetzt endlich geschafft mit Visual C++ Express 2010 eine GUI zu 
erstellen, mit der man einen Button einer externen Software betätigen 
bzw. an und ausschalten kann.

Hinweis:
Wenn man das Projekt herunterlädt und es startet, könnte es sein, dass 
der nötige Verweis zu der COM Schnittstelle noch nicht existiert.
Dies kann auf folgende Art nachrtäglich geschehen:
Siehe aller ersten Beitrag oben Datum: 12.02.2013 15:50 und zugehöriges 
Bild 01.jpg.

Bin happy, dass ich dies hingekriegt habe. Auch danke ich allen 
Beteiligten für alle Hinweise. Zwar habe ich dies hingekriegt, jedoch 
weiß ich jetzt aus oberen Beiträgen, dass es sich bei Visual C++ Express 
2010 nicht um das reine C++ handelt sondern um C++/CLI. Was mein 
Vorhaben nur mit reinem C++ eine GUI zu kreieren nur mangelhaft 
befriedigt.

von Borislav B. (boris_b)


Lesenswert?

An Dre schrieb:
> dass es sich bei Visual C++ Express
> 2010 nicht um das reine C++ handelt sondern um C++/CLI.

Visual C++ ist eine IDE, keine Sprache. Entwickeln kannst du damit 
sowohl C++ als auch C++/CLI.

von An D. (deinbesta)


Lesenswert?

Boris B. schrieb:
> An Dre schrieb:
>> dass es sich bei Visual C++ Express
>> 2010 nicht um das reine C++ handelt sondern um C++/CLI.
>
> Visual C++ ist eine IDE, keine Sprache. Entwickeln kannst du damit
> sowohl C++ als auch C++/CLI.

Aber alleine die Zeile mit
//
public ref class Form1 : public System::Windows::Forms::Form
//
ist ja schon kein reines C++. Das ist ja das, was mich ärgert.

von An D. (deinbesta)


Lesenswert?

Wohingegen QT Creator das reinere C++ ist, nehm ich an (bin da jetzt 
auch kein Experte in Programmiersprachen)

von Borislav B. (boris_b)


Lesenswert?

An Dre schrieb:
> public ref class Form1 : public System::Windows::Forms::Form

Ich weiß jetzt nicht wo du diese Zeile her hast, aber das hat doch mit 
der IDE nichts zu tun? Scheint mir einfach ein C++/CLI Projekt zu 
sein...

von An D. (deinbesta)


Lesenswert?

Naja, ich bin so vorgegangen, dass ich bei Visual C++ Express 2010 
einfach ein neues Projekt geöffnet habe und dann weiter auf CLR und dann 
weiter eine Windows-Forms Anwendung gestartet habe.

Bei dieser Windows Forms Anwendung konnte ich dann einfach Buttons etc 
auf ein freies GUI-Fenster per Drag&Drop ziehen und so meinen Code 
(nehme an C++/CLI) automatisch erzeugen lassen.

Jedesmal, wenn ich andere Projekte als CLR startete und dann eine Form 
einbinde, dann sagt mir Visual C++, dass ein CLR Projekt eingebunden 
wird bzw werden muss. Also, dass anscheinend ein C++/CLI Code 
geschrieben wird, welcher sich dann von dem reinen C++ Code 
unterscheidet.

von Borislav B. (boris_b)


Lesenswert?

OK, wenn du ein C++/CLI Projekt anlegst bekommst du natürlich auch 
C++/CLI Code ;-)
Versuch's mal mit einem neuen Projekt vom Typ "Win 32". Dann hast du 
klassisches C++.

von Peter II (Gast)


Lesenswert?

Boris B. schrieb:
> Versuch's mal mit einem neuen Projekt vom Typ "Win 32". Dann hast du
> klassisches C++.

dann hat er aber kein MVC weil er nur die Express version hat und wie 
soll er dann seine GUI machen?

von Borislav B. (boris_b)


Lesenswert?

Peter II schrieb:
> dann hat er aber kein MVC weil er nur die Express version hat und wie
> soll er dann seine GUI machen?

MVC? Ist doch nur ein Pattern, und vom Framework weitestgehend 
unabhängig.
Seine GUI kann er dann z.B. mit Win32, MFC, wxWidgets, Qt etc. machen...

von An D. (deinbesta)


Lesenswert?

ich gebe Peter recht:

Autor: Peter II (Gast)
Datum: 18.02.2013 12:59

Aber dein letzter Beitrag ist auch interessant.

Ich verstehe das so, dass ich eine GUI mit den oben genannten Werkzeugen 
anlege und diese dann irgenwie zu meiner Express Verion einbinde.
PROBLEM:
Ich bin kein Experte und würde mir den Kopf zerbrechen, irgendwie zwei 
getrennte Softwarewerkzeuge miteinander verschmelzen zu lassen.

Bequemer will ichs haben, indem ich per drag&drop buttons etc einwerfe 
und mir der Code automatisch generiert wird und ich nicht weiter viel 
nahcdenken muss...

Oder wie meinst du das mit
//
>Win32, MFC, wxWidgets, Qt
//
Wenn ich ein Win32-Projekt beginne, und eine Gui einbinden will, dann 
ist es wieder ein CLR Projekt. Da komm ich doch nicht drum rum....

von Borislav B. (boris_b)


Lesenswert?

An Dre schrieb:
> Wenn ich ein Win32-Projekt beginne, und eine Gui einbinden will, dann
> ist es wieder ein CLR Projekt. Da komm ich doch nicht drum rum....

Das Einbinden einer GUI ändert nichts an deinem Projekttyp oder der 
Programmiersprache die dein Projekt verwendet.
Wenn du die GUI per Drag & Drop bauen willst, musst du ein GUI Framework 
verwenden, für dass es einen entsprechenden Designer gibt. Da ist es 
unter C++ natürlich eher schwierig (Qt wäre eine Möglichkeit).

Sinnvoller wäre es aber, eine andere Sprache zu verwenden. Wer GUIs 
bauen möchte, sollte nicht in erster Linie an C++ denken. Da gibt es 
weitaus geeignetere Möglichkeiten: C#, VB, Delphi usw.
Wenn du einen Nagel in die Wand hauen willst greifst du ja auch nicht 
zur Rohrzange (geht zwar, ginge aber auch wesentlich besser)...

von An D. (deinbesta)


Lesenswert?

Ich habe bereits eine kleine GUI in VB VC++ hingekriegt.

Bleibt nur noch die QT Variante übrig. Am Ende wird ausgesiebt und dann 
entscheide ich mich für die komfortableste Variante.

Jedoch habe ich gerade bei der QT Variante noch etwas zu kämpfen 
(Absturzmeldung).
Beitrag "Re: QT Creator 5.0.1 cl error"

von An D. (deinbesta)


Lesenswert?

Erwähnen muss ich, dass der Code in QT mir etwas mehr sagt, als der von 
VC++ 2010 express.

von Bernd E. (berecke)


Lesenswert?


von Jonas T. (ones)


Lesenswert?

Guten Tag zusammen!

Ich beschäftige mich zur Zeit ebenfalls mit dem Thema BUSMASTER v3.0.0 
in Verbindung mit einer GUI u.a. über Visual Studio Community 2015. 
Leider schaffe ich es einfach nicht überhaupt eine Kommunikation zu 
erstellen (weder in VB, C++ oder C#). Das Hauptproblem scheint zu sein, 
dass ich den Verweis zur CAN_MonitorApp nicht einfügen kann, da dieser 
Verweis nicht vorhanden ist.

An D. schrieb:
> Ich gehe auf Projektmappen-Explorer->CONNECTOR [siehe Abbildung
> 02]->rechte Maus->Verweise...->Neuen Verweis hinzufügen...CAN_MonitorApp
> Das ganze schließ ich dann alles mit OK ab. Es sieht dann folgendermaßen
> aus [Abbildung 01].

Ich kann diese Datei einfach nicht finden oder erzeugen. Ich habe schon 
verschiedene VS Versionen durchprobiert aber kam nicht zum Erfolg.

Ich freue mich über jede Information!

Grüsse, Jonas

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.