Чтобы создать неуправляемый экспорт DLL с помощью Delphi Prism и вызвать его с Delphi 2010, необходимо сделать следующее:
В Delphi Prism:
- Файл | Новый | Проект
- В левом дереве выберите Delphi Prism
- Выбор библиотеки классов Windows
Нажмите ОК.
Это создаст шаблон для библиотеки классов Windows
Щелкните правой кнопкой мыши по проекту «ClassLibraryX» и выберите «Свойства»:
- В разделе «Совместимость» выберите «Разрешить небезопасный код»
- В разделе «Сборка» найдите общий раздел и измените тип процессора на «x86»
- Щелкните правой кнопкой мыши на созданной вкладке «ClassLibraryX» и выберите «Сохранить выбранные элементы»
Это настраивает проект для поддержки UnmanagedExportAttribute .
Тогда в коде вам нужно будет создать метод класса. В приведенном ниже примере я добавил ссылку на System.Windows.Forms.
namespace ClassLibrary2;
interface
type
Class1 = public class
private
protected
public
[UnmanagedExport('ShowMessage')]
class method ShowMessage(aMsg : String);
end;
implementation
class method Class1.ShowMessage(aMsg : String);
begin
System.Windows.Forms.MessageBox.Show(aMsg);
end;
end.
Используя PEViewer, я использовал тот, который поставляется в качестве примера в JCL , вы должны увидеть новый экспорт. В приведенном выше примере "ShowMessage"