AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C++ Programm nach Delphi übersetzen
Thema durchsuchen
Ansicht
Themen-Optionen

C++ Programm nach Delphi übersetzen

Ein Thema von 100nF · begonnen am 12. Jul 2010 · letzter Beitrag vom 27. Jul 2010
Antwort Antwort
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#1

AW: C++ Programm nach Delphi übersetzen

  Alt 16. Jul 2010, 17:53
*push*

kann mir denn keiner helfen
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#2

AW: C++ Programm nach Delphi übersetzen

  Alt 27. Jul 2010, 15:15
Also ich hab mich nochmal bemüht soviel rauszufinden wie ich nur kann.

Hier die vermutlich wichtigsten Codeschnipsel aus dem Beispielprogramm (C++):
Code:
class CMach4 : public COleDispatchDriver
{
public:
   CMach4(){} // Calls COleDispatchDriver default constructor
   CMach4(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
   CMach4(const CMach4& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
   // Attributes
public:
   // Operations
public:
   // IMach4 methods
public:
   void LoadGCodeFile(LPCTSTR FileName)
   {
      static BYTE parms[] = VTS_BSTR ;
      InvokeHelper(0x1, DISPATCH_METHOD, VT_EMPTY, NULL, parms, FileName);
   }

   void CloseFile()
   {
      InvokeHelper(0x2, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
   }

   LPDISPATCH GetScriptDispatch()
   {
      LPDISPATCH result;
      InvokeHelper(0x3, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, NULL);
      return result;
   }

   void ShutDown()
   {
      InvokeHelper(0x4, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
   }

   // IMach4 properties

public:
};
Die Funktion Shutdown() ist z.B. verantwortlich dafür, dass das Programm Mach3.exe (welches ich mit Delphi ansprechen will) sich selber beendet. Hier sieht man nun auch, dass die ganze Kommunikation irgendwie per "COleDispatch" oder so ähnlich funktioniert. Nur habe ich davon leider Null Ahnung.
Per InvokeHelper() wird dann ja schlussendlich einen Befehl an Mach3.exe gesendet. Genau dies möchte ich nun mit einem Delphi-Programm auch tun.

Dann habe ich noch ein Codeschnipsel gefunden, welcher für das Connecten und Disconnecten verantwortlich ist:
Code:
void CMachRemoteDlg::OnBnClickedConnect()
{
   LPUNKNOWN lpUnk;
   LPDISPATCH lpDispatch;
   COleException e;
   HRESULT res;

   if (CLSIDFromProgID(OLESTR("Mach4.Document"), &clsid) != NOERROR)
   {
      return;
   }

    if (res = GetActiveObject( clsid, NULL, &lpUnk) == NOERROR)
   {
      HRESULT hr = lpUnk->QueryInterface(IID_IDispatch,
         (LPVOID*)&lpDispatch);
      lpUnk->Release();

      if (hr == NOERROR)
      {
         mach4.AttachDispatch(lpDispatch, TRUE);
         lpDispatch = mach4.GetScriptDispatch();
         scripter.AttachDispatch(lpDispatch, TRUE);
      }

           connected = true;
           m_Status = "Connected to Mach3.";
      UpdateData(false);
      SetTimer( 1, 200, NULL );
      return ;
   }

   m_Status = "No Connection to Mach3.";
   UpdateData(false);
}

//this disconnects from Mach3.
void CMachRemoteDlg::OnBnClickedDisconnect()
{
   scripter.DetachDispatch(); //detach the scripter object
        mach4.ShutDown(); //then shutdown MAch3's interface..    <---- Hier das oben genannte ShutDown()
   m_Status = "No Connection to Mach3.";
   connected = false;
}
Es wird also irgendwie mit "Mach4.Document" verbunden wenn ich das richtig verstehe (?).

Brauche ich nun noch mehr Informationen, damit ich erfolgreich mit Mach3.exe kommunizieren kann, oder ist in den beiden Codeschnipsel alles enthalten was ich brauche?

Wie muss ich nun genau vorgehen?

Für Antworten wäre ich extrem dankbar.

mfg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz