CAM API
  • CAM API
v20.0.1
Search Results for

    Show / Hide Table of Contents

    Поддержка Delphi в CAMAPI

    Экспортируемая функция

    Native DLL должна экспортировать функцию, которая служит entry point:

    function CreateInstanceOfExtension(PluginID: WideString): NativeUInt;
    begin
        // create instance of your class
        var res: IExtension;
        if SameText(PluginID, TExtensionUtilCommonDll.GetIdent()) then
            res := TExtensionUtilCommonDll.Create() as IExtension
    
        else
            raise Exception.Create('Unknown ID ' + PluginID);
    
        // modify as pointer
        res._AddRef;
        result := NativeUInt(res);
    end;
    

    Логика функции может быть сложнее, однако она должна возвращать указатель на объект с увеличенным reference count.

    Подключение SDK

    SDK поставляется в пакете SprutTechnology.CAMAPI.SDK.bpl.x64. В BuildSystem можно настроить загрузку и распаковку пакета в заданный каталог перед компиляцией. Затем этот каталог необходимо подключить в настройках проекта Delphi.

    В файле build.cs:

    • Добавьте в список ManagerProps:
    new RestorerNugetProps
    {
        Name = "RestorerNuget",
        DepsProp = new List<RestorerDepProp>
        {
            new()
            {
                PackageId = "SprutTechnology.CAMAPI.SDK.bpl.x64",
                Version = "18.2.0",
                OutDir = Path.Combine(RootDirectory.Parent, "SDK")
            }
        }
    }
    
    • Задайте соответствия:
    settings.ManagerNames.Add("restorer", "Debug", "RestorerNuget");
    settings.ManagerNames.Add("restorer", "Release", "RestorerNuget");
    
    • Добавьте восстановление зависимостей перед компиляцией в целевую задачу:
    private Target Compile => _ => _
        .Executes(() =>
        {
            _buildSpace.Projects.Restore(Variant);
            _buildSpace.Projects.Compile(Variant, true);
        });
    

    Таким же способом можно подключить любой другой пакет — аналогично PackageReference в проектах C#.

    In this article