Не могу решить задачку.
Пишу Длл-ку на Delphi:
...
- Код: Выделить всё
type
MyArrN=array[0..4] of byte;
procedure Proba(var mass:MyArrN);stdcall;
var j:byte;
begin
for j:=0 to 4 do messagedlg(inttostr(j)+' '+inttostr(mass[j]),mtInformation, [mbOk], 0);
//выдаются числа не соответствующие реальности :(
for j:=0 to 4 do mass[j]:=10;
//переменная вроде var, а передаваться не хочет :(
end;
exports Proba;
...
Объявляю её в VB:
- Код: Выделить всё
Private Declare Sub Proba Lib "d:\prj.dll" (ByRef mass() As Byte)
...
Dim mm(5) As Byte
For j = 0 To 5: mm(j) = j: Next [j]
Proba mm
For j = 0 To 5: MsgBox Str(j) & " " & Str(mm(j)), vbInformation, "Привет от VB": Next [j]
при передаче массив приобретает неожиданные значения,
при возврате ничего не изменяется