AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Var Parameter in C++

Ein Thema von NickelM · begonnen am 8. Jul 2011 · letzter Beitrag vom 11. Jul 2011
Antwort Antwort
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#1

Delphi Var Parameter in C++

  Alt 8. Jul 2011, 14:56
Hallo zusammen,

Ich habe eine DLL geschrieben und wollte testen, ob man sie auch in C++ verwenden kann.
Dafür hab ich mir eine C++ IDE (CodeBlocks) geholt und mal versucht das umzusetzten.
Ich muss dazusagen, dass ich mich mit C++ nicht wirklich auskenne und jetzt an ein Problem gekommen bin.
Ich lade meine DLL dynamisch in C++. Die ersten 2 Funktionen konnte ich umsetzten nach langem Probieren.
Nun hab ich nichts zu meinem Problem in google gefunden. (zumindest wusste ich nicht wie ich richtig danach googlen soll..meine versuche sind fehlgeschlagen)

Nun meine Funktion wird so in der DLL in Delphi deklariert
Delphi-Quellcode:
function ReadPackedFileData(PackFileHandle : Integer; DataPos,DataSize : Integer; var Bytes : TBytes): Integer; stdcall;
//Falls jemand fragt : TBytes = array of Byte;
So der Knackpunkt ist das var TBytes (nebenbei was macht var in einer Funktion bei delphi?, ich wies das die funktion dadurch nur variablen annimmt bei delphi, aber was bedeutet das var eigentlich? Also auf der "Speicherbereichsebene" )

Versucht habe ich es so in einer Konsolenanwendung

Code:
typedef int (*TReadPackedFileData) (int ,int ,int, byte* &bytes);

int main()
{
HMODULE hIns;
TReadPackedFileData ReadPackedFileData;
byte* bytes;

hIns=LoadLibrary("E://DLLTestC/pack.dll");
if(hIns > 0)

ReadPackedFileData=(TReadPackedFileData)GetProcAddress(hIns,"ReadPackedFileData");
ReadPackedFileData(Test1->FileHandle,Test2->FileDataPos,Test2->FileSizeCompressed, bytes);
//Test1 und Test2 sind struct Pointer, die auch funken, die Daten hol ich mir mit den 2 anderen Funktionen. Was auch funkt.
}
Danke im vorraus
Gruß NickelM
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi Var Parameter in C++

  Alt 8. Jul 2011, 15:00
Durch das Var kennzeichnest Du einen Call by Reference, d.h. der Funktion wird keine Kopie der Daten übergeben, sondern das Original, womit aus der Funktion auch direkt in die Daten geschrieben werden kann.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Delphi Var Parameter in C++

  Alt 8. Jul 2011, 15:26
hmm okay...gut jetzt hab ich auch was gefunden was mir hilft...gut okay aber wie mach ich dynamischen array in c++?

wenn ich es so mache
Code:
typedef int (*TReadPackedFileData) (int ,int ,int, byte[]&);
bekomm ich den fehler : das der array keine größe hat...
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi Var Parameter in C++

  Alt 8. Jul 2011, 15:31
Tut mir Leid, meine C++-Kenntnisse gehen nahe gegen 0, da kann ich Dir nicht weiterhelfen. Gibt es dort eigentlich dynamische Arrays?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#5

AW: Delphi Var Parameter in C++

  Alt 8. Jul 2011, 15:42
Gibt es dort eigentlich dynamische Arrays?
Im C++ Builder wird auf Delphi Arrays über eine Templateklasse zugegriffen:
http://docwiki.embarcadero.com/VCL/e...m.DynamicArray

D.h. solche Array dürften mit normalem C++ nicht kompatibel sein.
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Delphi Var Parameter in C++

  Alt 8. Jul 2011, 15:57
Hmm okay ich hab mal was gemacht gehabt mit PByte und array of Byte..mal gugen ob das da auch so möglich ist.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  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 06:36 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