AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Übergabe von einem selbdef. Type in C++

Ein Thema von wschrabi · begonnen am 11. Apr 2017 · letzter Beitrag vom 11. Apr 2017
Antwort Antwort
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#1

AW: Übergabe von einem selbdef. Type in C++

  Alt 11. Apr 2017, 14:01
Vielleicht kannst du es dir auch einfacher machen: Wenn die Länge des Arrays fix ist, kannst du ein Pärchen aus Zeiger auf's erste Arrayelement und Arraylänge übergeben.
Naja die Länge wird im Delphi File individual gehalten, die kann sich ändern.
Dann wird das Array der Class übergeben und in C++ bleibt es dann fix.

Bei mir stimmt was noch nicht, es ist immer 5 Elemente lang.

Es wird die SetTTInput Forschleife nicht durchgeführt. Stimmt da was mit dem & nicht?
Code:
void __fastcall TCppClass::SetTTInput(const DynamicArray<int>& Value) {
  for (int i=Value.Low; i<=Value.High; i++)
     {
    m_DVector[i] = Value[i];
   std::wstringstream strMessage;
   strMessage << L"Hello from a C++ class. Set now DVector: DVector[" << std::to_wstring(i)
   << L"] is " << std::to_wstring(m_DVector[i])
      << std::endl
      << L"InputVector contains " << std::to_wstring(m_DVector.Length) << L" elements";

   MessageBox(0, strMessage.str().c_str(), L"Delphi/C++ interaction", 0);
   
   }
}
Interessanterweise klappt in C++ der Call:
Code:
    TCppClass::SetTTInput({1, 2, 3});
Also hier der PAscal call als bild, wo die richtingen Werte drin stehen und der Debug in C++ wo ein NULL Array da ist.
Was ist da falsch?
DANKE HERZLICHST.
Angehängte Grafiken
Dateityp: jpg null_array.jpg (32,4 KB, 4x aufgerufen)
Dateityp: jpg nonull_array_by_call.jpg (33,4 KB, 4x aufgerufen)

Geändert von wschrabi (11. Apr 2017 um 15:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.747 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Übergabe von einem selbdef. Type in C++

  Alt 11. Apr 2017, 16:09
Sorry, ich kann mir jetzt nicht den ganzen Code durchlesen. Bin auch nicht der C++-Builder-Profi.
Die Antworten auf deine Fragen hängen davon ab, was du eigentlich machen willst... Willst du bestehenden C++-Code in Delphi nutzen oder umgedreht? Ist das C++ standardkonform oder darf und soll es C++-Builder sein?
Uli Gerhardt
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.191 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Übergabe von einem selbdef. Type in C++

  Alt 11. Apr 2017, 16:54
Ich habe es jetzt nur kurz überflogen, aber in deiner abstrakten Delphi-Klasse sind die Setter-Methoden "call by value". In der C++-Implementierung haben die Methoden aber konstante Referenzen (dein "const" und "&").
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#4

AW: Übergabe von einem selbdef. Type in C++

  Alt 11. Apr 2017, 17:09
Danke Dir Günther!

Kannst mir sagen was ich da genau ändern müßte. Man lernt nie aus.
Wennst mir die Zeile hier korrigiert zeigt, weiß ich dann genau was Du meinst.
Sorry.


Ich habe es jetzt nur kurz überflogen, aber in deiner abstrakten Delphi-Klasse sind die Setter-Methoden "call by value". In der C++-Implementierung haben die Methoden aber konstante Referenzen (dein "const" und "&").
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#5

AW: Übergabe von einem selbdef. Type in C++

  Alt 11. Apr 2017, 17:32
DANKEEEE ! Ja das wars, einfach const un & weglassen.

Jetzt klappt auch die autom. Erstellung des Files wieder.
Hier das Fertige Resulat.

Angehängte Dateien
Dateityp: zip David Millington - Mixing Delphi and C++_Example_QMC.zip (625,2 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#6

AW: Übergabe von einem selbdef. Type in C++

  Alt 11. Apr 2017, 17:06
GESCHAFFT!

Anbei für Leute die sich auch dafür interessieren.
Wie gesagt bei Neuem Erstellen, muss man die Zeile in AbstractClass.hpp

Zitat:
virtual void __fastcall SetTTInput(const DynamicArray<int>& Value) = 0 ;
nachtraglich korrigieren, weil das File autom. von RAD Studio generiert wird.
Nach dem Korrig. kann man F9 Drücken und mit /ohne Debugger laufen lassen.

Danke an alle die geholfen haben.
Angehängte Dateien
Dateityp: zip David Millington - Mixing Delphi and C++_Example_QMC.zip (624,6 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:34 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 by Thomas Breitkreuz