Einzelnen Beitrag anzeigen

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