Einzelnen Beitrag anzeigen

wschrabi

Registriert seit: 16. Jan 2005
437 Beiträge
 
#7

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

  Alt 11. Apr 2017, 13: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.
Miniaturansicht angehängter Grafiken
null_array.jpg   nonull_array_by_call.jpg  

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