1

我曾尝试在 MATLAB 中使用 ETABS dll 文件。该文档解释了如何在 .net 语言中使用 dll 文件。通过更改代码,我可以在 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?

4

1 回答 1

0

我不认为cast做你想做的事。它仅适用于内置数据类型。

我也不认为你可以ETABS2013.cOAPI使用任何技术。抽象类是抽象的;您不能拥有该类型的对象。

于 2013-09-16T20:36:59.867 回答