Danke für deine Antwort!
Zitat von
Flocke:
Wieso sieht die Deklaration in VB denn auf einmal so anders aus als vorher (ByVal), hast du sie einfach umgestellt (das geht nicht) oder hast du sie vorher nicht richtig abgeschrieben? Funktioniert das Ganze denn in VBA, also z.B. in Word?
Die erste Variante habe ich aus der Dokumentation des
SDK. Und die zweite Variante ist direkt aus dem VBA-Code kopiert. Und diese zweite Variante funktioniert ja auch so in Word.
Zitat von
Flocke:
Mein Prototyp für deine ursprüngliche Funktion wäre:
Delphi-Quellcode:
function MTXFormEqn(var src, srcFmt: SmallInt; var srcData: PChar; var srcDataLen: LongInt;
var dst, dstFmt: SmallInt; var dstData: PChar; var dstDataLen: LongInt;
var dstPath: PChar; var dims: MTAPI_DIMS):LongInt; stdcall; external 'MathPage.wll';
Wenn jedoch deine zweite Variante richtig ist, dann musst du das "var" vor "dstData" wegmachen.
Sofern du nicht über das Clipboard gehst, muss du den Inhalt von "dstData" natürlich vorher z.B. mit AllocMem holen und nachher mit FreeMem wieder freigeben. Wieviele Bytes du alloziiert hast, musst du in dstDataLen angeben.
Ich probiere mal deinen Prototyp (minus var vor dstData - ich nehme den Weg übers Clipboard).
Edit: Hm, aufgrund des ByVal wäre es doch richtiger, die ganzen var wegzulassen, oder nicht?
aeno