Я создаю сервер ActiveX в Delphi для замены собственной библиотеки DLL, созданной в Delphi, чтобы ее можно было вызывать в .NET.(Я новичок в Delphi и больше из C #)
Прототип процедуры в исходном источнике DLL:
procedure Log(Device: byte); StdCall;
Используя панель дизайна в Delphi, я получаю.REDL, который расширяет IUnkown этого:
interface IDelphiCom: IUnknown
{
[id(0x00000065)]
HRESULT _stdcall Log([in] byte Device);
};
Для реализации у меня есть это:
interface
type
TTestCom = class(TTypedComObject, IDelphiCom)
protected
function Log(Device: byte ): HResult; StdCall;
end;
implementation
function TTestCom.Log(Device: byte): HRESULT; StdCall;
begin
result:=0;
end;
Я пробовал много разных комбинаций типа данных в .ridl и реализации,но всегда появляется сообщение об ошибке, что функция Log не реализована:
[ошибка dcc32] Unit1.pas (12): E2291 Отсутствует реализация метода интерфейса IDelphiCom.Log
Есть ли комбинация, которая работает, или какой-то другой способ решить эту проблему?У кого-нибудь есть таблица, которая перекрестно ссылается на типы данных IUnkown к типам данных Delphi?Есть ли какое-то дополнение для Delphi / Rad Studio, такое как ReSharper, которое бы реализовывало заглушки элементов интерфейса?Я уже выяснил несколько преобразований типов данных, но я застрял на простейшем байте.