Использование Aspose.Diagram на других языках программирования
Используйте Aspose.Diagram for .NET via COM-взаимодействие
Информация в этом разделе относится к сценариям, в которых разработчикам требуется использоватьAspose.Diagram for .NET via COM-взаимодействие на любом поддерживаемом языке.
Работа с COM-взаимодействием
Aspose.Diagram for .NET выполняется под управлением .NET Framework, и это называется управляемым кодом. Код, написанный на всех языках, работающих за пределами .NET Framework, называется неуправляемым кодом. Взаимодействие между неуправляемым кодом и Aspose.Diagram происходит via средством .NET, называемым COM-взаимодействием.
Объекты Aspose.Diagram — это объекты .NET, но при использовании via COM-взаимодействия они отображаются как COM-объекты в вашем языке программирования. Поэтому лучше всего убедиться, что вы знаете, как создавать и использовать COM-объекты в вашем языке программирования, прежде чем вы начнете использоватьAspose.Diagram for .NET.
- В мире COM мы различаем COM-сервер и COM-клиент. COM-сервер хранит COM-классы, а COM-клиент запрашивает у COM-сервера экземпляры классов, то есть COM-объекты.
- COM-клиент или просто клиентское приложение может что-то знать о содержимом COM-класса или вообще не знать о его методах и свойствах. Поэтому клиентское приложение может обнаружить структуру класса COM при компиляции/сборке или только во время выполнения. Процесс «открытия» известен как связывание, поэтому мы имеемраннее связывание а такжепозднее связывание.
- вкратце COM-класс подобен черному ящику и для работы с ним нужна библиотека типов, в этом бинарном файле есть описание методов, свойств класса COM и любой язык высокого уровня, который поддерживает работу с COM-объектами, часто имеет синтаксическое выражение для добавления библиотеки типов, для пример это#импорт в C++.
- библиотека типов используется для раннего связывания.
- COM-объект может раскрывать свои методы и свойства двумя способами: с помощьюдиспетчерский интерфейс (dispinterface) и в еговиртуальная таблица (виртуальная таблица функций).
- внутридисп-интерфейс , каждый метод и свойство идентифицируются уникальным членом; этот член является идентификатором отправки функции (илиDispID).
- виртуальная таблица это всего лишь набор указателей на функции, поддерживаемые интерфейсом COM-класса.
- объект, который предоставляет свои методы через оба интерфейса, поддерживаетдвойной интерфейс.
- преимущества есть у обоих типов переплета. Раннее связывание обеспечивает повышенную производительность и проверку синтаксиса во время компиляции. Позднее связывание наиболее выгодно, когда вы пишете клиентов, которые вы собираетесь использовать.совместим с будущими версиями вашего COM-класса. При позднем связывании информация из библиотеки типов не “зашита” в ваш клиент, поэтому вы можете быть более уверены, что ваш клиент сможет работать с будущими версиями класса COM без изменения кода.
- Механизм позднего связывания имеет большое преимущество: если создатель COM-DLL решит выпустить новую версию с другим макетом интерфейса функций, любой код, вызывающий эти методы, не рухнет, если только эти методы больше не будут доступны; даже есливиртуальная таблицаотличается тем, что позднему связыванию удается обнаружить новые DISPID и вызвать соответствующие методы.
Вот темы, которые вам в конечном итоге нужно будет освоить:
- Использование COM-объектов в вашем языке программирования. См. документацию по языку программирования и разделы, относящиеся к конкретному языку, далее в этой документации.
- Работа с COM-объектами, предоставляемыми .NET COM Interop. ВидетьВзаимодействие с неуправляемым кодом а такжеПредоставление компонентов .NET Framework для COM в MSDN.
- Aspose.Diagram Объектная модель документа. ВидетьAspose.Diagram Руководство программиста а такжеAPI Ссылка.
Зарегистрируйте Aspose.Diagram for .NET с COM-взаимодействием
Вам необходимо установить Aspose.Diagram for .NET и убедиться, что он зарегистрирован в COM-взаимодействии (чтобы его можно было вызывать из неуправляемого кода).
Чтобы зарегистрировать Aspose.Diagram for .NET для COM-взаимодействия вручную:
- ОтНачинать меню, выберитеВсе программы , тогдаMicrosoft Visual Studio, Visual Studio Инструменты и наконец,Visual Studio Командная строка. В некоторых операционных системах он также доступен по адресу: “C:\Program Files (x86)\Microsoft SDK\Windows\v7.0A\bin\x64”
- Введите команду для регистрации сборки:
- .NET Framework 2.0 regasm “C:\Program Files\Aspose\Aspose.Diagram for .NET\bin\net2.0\Aspose.Diagram.dll” /codebase
- .NET Framework 3.5 regasm “C:\Program Files\Aspose\Aspose.Diagram for .NET\bin\net3.5\Aspose.Diagram.dll” /codebase
- .NET Framework 4.0 regasm “C:\Program Files\Aspose\Aspose.Diagram for .NET\bin\net4.0\Aspose.Diagram.dll” /codebase
ProgID
ProgID означает «программный идентификатор». Это имя класса COM, который используется для создания объекта. Идентификаторы ProgID состоят из имени библиотеки “Aspose.Diagram” и имени класса.
Библиотека типов
Если ваш язык программирования (например, Visual Basic или Delphi) позволяет ссылаться на библиотеку типов COM, добавьте ссылку на Aspose.Diagram.tlb и просмотрите все Aspose.Diagram for .NET классы, методы, свойства и перечисления в обозревателе объектов.
Чтобы создать файл TLB:
- .NET Framework 2.0 regasm “C:\Program Files\Aspose\Aspose.Diagram for .NET\bin\net2.0\Aspose.Diagram.dll” /tlb: “C:\Program Files\Aspose\Aspose.Diagram for .NET\bin\net2.0\Aspose.Diagram.tlb” /codebase
- .NET Framework 3.5 regasm “C:\Program Files\Aspose\Aspose.Diagram for .NET\bin\net3.5\Aspose.Diagram.dll” /tlb: “C:\Program Files\Aspose\Aspose.Diagram for .NET\bin\net3.5\Aspose.Diagram.tlb” /codebase
- .NET Framework 4.0 regasm “C:\Program Files\Aspose\Aspose.Diagram for .NET\bin\net4.0\Aspose.Diagram.dll” /tlb: “C:\Program Files\Aspose\Aspose.Diagram for .NET\bin\net4.0\Aspose.Diagram.tlb” /codebase
Создание COM-объектов
Создание COM-объекта аналогично созданию обычного объекта .NET. После создания вы можете получить доступ к методам и свойствам объекта, как если бы это был COM-объект.
Некоторые методы имеют перегруженные версии, и COM-взаимодействие будет отображать их с добавленным к ним числовым суффиксом, за исключением самого первого метода, который остается неизменным. Например, перегрузки метода Diagram.Save становятся Diagram.Save, Diagram.Save_2 и т. д.
Aspose.Diagram Ресурсы
Ниже приведены ссылки на некоторые полезные ресурсы, которые могут вам понадобиться для выполнения ваших задач.
- Aspose.Diagram for Java Онлайн-документация
- Aspose.Diagram для Node.js via Java Онлайн-документация
- Aspose.Diagram для Python via Java Онлайн-документация
Создание сборки-оболочки
Если вам нужно использовать многие из Aspose.Diagram for .NET классов, методов и свойств, рассмотрите возможность создания сборки-оболочки (используя C# или любой другой язык программирования .NET). Сборки-оболочки помогают избежать использования Aspose.Diagram for .NET непосредственно из неуправляемого кода.
Хорошим подходом является разработка сборки .NET, которая ссылается на Aspose.Diagram for .NET и выполняет всю работу с ним, предоставляя неуправляемому коду только минимальный набор классов и методов. Тогда ваше приложение должно работать только с вашей библиотекой-оболочкой.
Сокращение количества классов и методов, которые необходимо вызывать via COM-взаимодействие, упрощает проект. Использование .NET классов via COM-взаимодействия часто требует дополнительных навыков.
Создайте пустой чертеж Visio в PHP с помощью COM Interop
Предпосылки
Настройте свой PHP для работы с COM. Видетьhttp://www.php.net/manual/en/ref.com.php . Для получения дополнительной информации, пожалуйста, ознакомьтесь со статьей под названиемИспользуйте Aspose.Diagram for .NET via COM-взаимодействие.
Создание пустого чертежа Visio
Это простое приложение показывает, как создать пустой чертеж Visio, используяAspose.Diagram for .NET в PHP via COM-взаимодействие.
PHP
<?php
echo "<h3>Calling Aspose.Diagram for .NET from PHP using COM Interoperatibility</h3>";
//set license
$lic = new COM("Aspose.Diagram.License");
$lic->SetLicense("D:\ASPOSE\Licences\Aspose.Total licenses\Aspose.Total.lic");
// create a new instance of Diagram object using COM interop
$diagram = new COM("Aspose.Diagram.Diagram");
// Save the Visio drawing in the VDX format
$diagram->Save("d:\diagramtest\MyOutput.vdx", 0);
?>