2013-09-16 7 views
0

Я попытался использовать DLL-файл ETABS в MATLAB. В документации объясняется, как использовать файл dll на языках .net. Меняя код, я могу использовать его в matlab, но есть некоторая ошибка.Использование .net-интерфейса в matlab

Мой код:

asm = NET.addAssembly('C:\Program Files\Computers and Structures\ETABS 2013\ETABS2013.dll') 
ETABSAssembly = System.Reflection.Assembly.LoadFrom('C:\Program Files\Computers and Structures\ETABS 2013\ETABS.exe') 
ETABSObject = ETABSAssembly.CreateInstance('CSI.ETABS.API.ETABSObject') 

и выход для последней строки:

ETABSObject = 

    CSI.ETABS.API.ETABSObject handle with no properties. 
    Package: CSI.ETABS.API 

    Methods, Events, Superclasses 


Superclasses for class CSI.ETABS.API.ETABSObject: 

    System.MarshalByRefObject 
    System.Object 
    handle 
    ETABS2013.cOAPI 

после этого я должен преобразовать объект ETABS2013.cOAPI который является абстрактным классом, с помощью оператора произнесения следующим образом:

a = cast(ETABSObject,ETABS2013.cOAPI) 

Но я получаю следующее сообщение об ошибке:

??? Error using ==> ETABS2013.cOAPI 
Creating an instance of the Abstract class 'ETABS2013.cOAPI' is not allowed. 

Как преобразовать объект Etabs в cOAPI?

ответ

0

Не думаю, cast делает то, что вы пытаетесь сделать. Он работает только со встроенными типами данных.

Я также не думаю, что вы можете наложить на ETABS2013.cOAPI с помощью любой техники. Абстрактные классы: abstract; вы не можете иметь объект такого типа.

Смежные вопросы