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?
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.