Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

aus c++ auf einen record in einer Pascal dll zugreiffen

pyranha / 5 Antworten / Flachansicht Nickles

Hi
Ich habe eine in Pascal geschriebene DLL, in der sich ein record befindet. Auf diesen Record möchte ich aus meiner C++ Applikation zugreifen. Ist das überhaupt möglich? Bisher hab ich es nur fertiggebracht, in der dll einen Pointer auf eine Struktur von meiner C++ Applikation zu erstellen.


Ich währe auch schon über ein Buchtip zu diesem Thema dankbar, da ich nichts schlaues gefunden habe.


Danke und Gruss
pyranha

bei Antwort benachrichtigen
pyranha Nachtrag zu: „Abend! Für die Pascal DLL verwende ich den doch mitlerweile schon ziehmlich in...“
Optionen

Vielleicht gibts ja noch jemand der mir helfen könnte. Ich hab jetzt folgende 2 Strukturen:

in Pascal:

type
Tteststrukt = record
iVar : Integer; { 4 Byte }
dVar : double; { 8 Byte }
bVar : bool; { 1 Byte }
sVar : Array[1..50] of char; { n * 1 Byte }
end;

In C++:

typedef struct Ttest{
int iVar; // 4 Byte
double dVar; // 8 Byte
bool bVar; // 1 Byte
char sVar [50]; // n * 1 Byte
}Tteststrukt;

So wie ich das sehe müsste es doch jetzt funktionieren? Tuts aber leider nicht. Die Struktur wird mit folgender Funktion aus der DLL "geholt":

Tteststrukt getStrukt()
{
getStruktDLL * pGetStrukt;
Tteststrukt result;
HINSTANCE h = LoadLibrary("Test1.dll");
if(h != 0)
pGetStrukt = (getStruktDLL*)GetProcAddress(h, "_getStrukt");
if(getStrukt != NULL)
result = pGetStrukt();
FreeLibrary(h);
return result;
}

bei Antwort benachrichtigen