Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.10.2012, 12:18
Сергей77 Сергей77 вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 31
Репутация: 10
По умолчанию Передача массива из DLL в основную программу

В DLL у меня происходят вычисления и в основную программу передается массив записей.
Но, почему то после успешной отработки DLL я не могу работать с возвращенными данными

Собственно код...

Код:
Общий класс основной программы и DLL
...
type
  TKoef = Record
    name: PChar;
    abbr: PChar;
    val_bgn: real;
    val_end: real;
    delta: real;
    criterion: boolean;
    cr_min: real;
    cr_max: real;
    dev_bgn: boolean;
    dev_end: boolean;
    dev_bgn_val: real;
    dev_end_val: real;
    info: PChar;
    valid: boolean;
  end;

Основная программа
...
type
  TArr = array of TKoef;
  TPArr = ^TArr;
...
procedure TfMain.mModuleCalcClick(Sender: TObject);
var
  Arr: TArr;
  PArr: TPArr;
begin
    try
      try
        hDLL := LoadLibrary(PAnsiChar(FN));
        @GetModuleData := nil;
        if hDLL >= 32 then begin
          @GetModuleData := GetProcAddress(hDLL,'GetModuleData');
          if (@GetModuleData<>nil) then begin
            SetLength(Arr,5);
            PArr := Addr(Arr);
            if GetModuleData(ORG, PArr) then begin
---> вот здесь я пытаюсь работать с Arr, но вылетают ошибки
            end;
          end;
        end;
      finally
        @GetModuleData := nil;
        FreeLibrary(hDLL);
      end;
    except
    end;
end;
...

DLL
...
const
  KOEF_CLOUNT = 5;

type
  TArr = array[1..KOEF_CLOUNT] of TKoef;
  TPArr = ^TArr;
...
function GetModuleData(dllORG: TOrganization; aPArr:TPArr): Boolean; stdcall;
begin
  with aPArr^[1] do begin
  ...
  end;
  ...
  with aPArr^[5] do begin
  ...
  end;
end;
...
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter