C EConvertError разобрался, его можно добавить в список, что и сделал "Окружение->Настройки отладчика"
Теперь вылезла проблема с DLL, при загрузке прога проверяет доступные плагины (DLL) извлекает из них Icon и Caption главных окон (потом создаёт на панели кнопки с этими иконками и в Hint кнопок добавляет Caption плагинов) Естественно в Delphi всё работает и уже 2-й год
И так, код:
type
TPluginCreateForm = procedure (var _CommList:TCommList;
var _Application:TApplication;
var _BaseProperty: TBaseProperty;
var ViewPanel: TTablePanel01);stdcall;
TPluginGetMainIcon = function (var MainIcon:Graphics.TBitMap):shortstring;stdcall;
type
PPluginInfo = ^TPluginInfo;
TPluginInfo = record
DLLName: string;
LibHandle: HModule;
PluginCreateForm: TPluginCreateForm;
PluginGetMainIcon: TPluginGetMainIcon;
PanelButton: TSpeedButton;//в плугине кроме картинки должен хранится хинт для кнопки
end;
var
p:PPluginInfo;
...
begin
...//ищу DLL создаю список плагинов
...//теперь по одному их извлекаю чтоб добыть их них инфу (иконку и описание)
p:=FPluginsList[i];//p cуществует, и с ним проблем быть не может
....
BitMap:=Graphics.TBitMap.Create;
_Hint:=p.PluginGetMainIcon(BitMap); \\тут падает! PluginGetMainIcon находится в DLL
в DLL (естественно работает не один год)
function PluginGetMainIcon(var MainIcon:TBitMap):shortstring;stdcall;
begin
try
MainIcon.LoadFromResourceName(hinstance,'MAINBMP');
except
MainIcon.ReleaseHandle;//освобождаем картинку
end;
PluginGetMainIcon:='Настройка синхронизации';
end;
ИМХО DLL тоже нужно Лазарем скомпилить, чтобы типы TBitMap совпадали