C++ Dll in VB
-
Hi!
Ich habe probleme beim Aufruf einer C++ DLL von VB aus. Der Aufruf von C++ klappt aber perfekt.
Und zwar tritt das problem auf, wenn ich ein Array aus Strukturen für die Funktion übergeben will.Es passiert folgendes. der erste DAtensatz, in meinem Fall last[0] wird übergeben, und alle werte sind korrekt da! last[1] allerdings ist durchgängig 0!
Woran liegt das? ist ein fehler im code?
Also es liegt nicht an der datenausrichtung oder so. habe andere funktionen wo structs oder arrays übergeben werden, und die laufen 1A! Nur nicht die Funktionen wo arrays aus strukturen benutzt werden...Hier zunächst der C++ Code (sind nur auszüge, da die Strukturen und funtktionen alle ziemlich gross sind):
Funktion selber:
int DECLSPEC WINAPI Setpoints( aLast10CoilsDataBlock last)
Dann die Definition der Struktur xLast10CoilsDataBlock und des arrays aus dieser Struktur:
struct xLast10CoilsDataBlock { struct { double deins; // mm double dzwei; // km } UpperWR, LowerWR; char chName[MAX_ID_LEN]; double ddrei; // mm }; typedef xLast10CoilsDataBlock aLast10CoilsDataBlock[10];
So, jetzt noch der VB Code:
Type temp double deins; // mm double dzwei; // km End Type Type xLast10CoilsDataBlock UpperWR As temp LowerWR As temp chName as string * 12 ddrei as double; // mm End Type Declare Function Setpoints Lib "c:\BWG_Model.dll" (ByRef last10 As xLast10CoilsDataBlock) As Long
Und dann der aufruf:
Dim last(9) As xLast10CoilsDataBlock a = Setpoints(last(0))
Kann mir einer von euch helfen?
Danke schonmal im vorraus!
Andy
-
Vielleicht hilft dir dieser Artikel: Calling DLL Functions from Visual Basic Applications