许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Catia二次开发资料汇总

Catia二次开发资料汇总

阅读数 4
点赞 0
article_banner

Catia 二次开发

CATIA V5在开发之初就遵循面向对象的设计思想(OO),构建了完全基于组件的体系结构(PPR: Products,Process,Resource),有效地解决了维护、管理、扩展的困难,并大量使用了最新的计算机技术和标准以及软件工程技术,其中包括基于组件架构思想的JAVA BEAN 、COM/OLE、CORBA 技术和Web技术、C++语言、Visual Basic Journaling 、STEP-SDAI、XML、OpenGL等,这使CATIA V5具有与众不同的鲜明的特点:数据结构单一,各个模块全相关,某些模块之间还是双向相关;端到端的集成系统,拥有强大的专业应用扩展能力。

    1.软件组件结构(SCI: Software Component Infrastructure)的基本概念

    软件组件结构(SCI)是软件工程继过程模型和面向对象模型的下一代逻辑模型。面向对象技术已在许多重要应用中取得成功。

    但是,随着更多面向对象解决方法的开发和使用,很显然的是,单单采用面向对象技术难以与软件日益增长的复杂性抗衡。因为,对象只构成应用程序的一部分。它完全不能把握应用程序的结构(控制流)。只能通过重用类库里有的类来实现有限的重用。但实际情况是,大量应用程序,特别是同一领域(DOMAIN)中的应用程序,分享相似的结构。不同的程序员使用不同的技术去把握和实现这些相似的结构。结果,这些结构并没有经过通常的面向对象技术而被重用。

    面向对象技术只能通过重用类库已有的类来实现有限的重用,而软件组件结构(SCI)提供了最高层次的代码重用。

    软件组件结构(SCI:Software Component Infrastructure)有三个基本的概念:框架(FRAMEWORK)、组件(Component)和对象总线(Products Bus)。

    组件(Component):是软件的基本量子(单元)。组件既应当足够小,以便于维护;又应足够大,可具备相当的功能,可以被打包和插用。由于传统的客户/服务器应用不能应付软件应用日益增加的复杂性。它们不能加入到即插即用的环境之中。组件的特征提供了将一个应用程序分成若干个组件的机制。每个组件提供了一个相当专门的功能,它向框架的其余部分描述自己,以便别的组件能够访问它的功能。描述是通过说明性语言如IDL实现的,它本质上是把组件的接口与实现分离开来。由于组件是可单独维护、升级的,因此,组件不直接与别的组件通信是至关重要的。它必须通过使用框架或对象总线来实现组件之间的交互。

    框架(FRAMEWORK):框架提供对所有应用程序有用的功能(如接口、存储)。它提供了统一的总设计。框架是对相似应用程序集合的一个部分(统一但不完整)解决方案。开发者的任务是用这不完整的解决方案加上必要的代码建立完整的应用。在领域(DOMAIN)内的一个应用包括不变部分和可变部分。不变部分由框架把握,一般可占到80%,可变部分由开发者把握,一般可占到20% 。开发者通过向框架添加变化部分的代码把握其动作,而形成新的特定应用。框架根据是否针对特殊领域还是若干领域,可分为水平框架、垂直框架、复合文挡框架。

    对象总线:对象总线是基本的中间件。它允许成千上万能够相互理解接口定义语言IDL的对象相互发生作用。这种作用对对象来说是完全透明的。对象总线把组件和框架的能力扩展到开放网络和其它伙伴应用程序。它使成千上万独立的软件单元在由不同操作系统、语言、硬件平台和编译工具组成的环境下互相无缝地交互运作。对象总线不仅提供对象之间的连接,它还提供对在总线上所有对象都有用的核心服务集(对象服务)。如:生命周期服务程序、安全性、持久性、命名等。 通过组件构造/修改软件,用框架把握软件结构,用对象总线连接事务,支持即插即用(Plug & Play)功能的扩展。 2.CATIA V5体系结构(Architecture Infrastructure) CATIA V5的体系结构(Architecture Infrastructure)是一种面向行业应用的垂直框架体系结构,组件是CAD/CAM系统的各种几何特征和管理、分析单元。框架是一些应用如:2D/3D建模、分析、混合建模、制图、数控加工等,CATIA V5也称为领域(DOMAIN)或应用(APPLICATION)。并通过3D PLM PPR(PRODUCTS,PROCESS, RESOURCE)HUB产品总线连接起来。

1、Application window和document window类似于mfc中的CMainFrame和CView的关系

2、workshop是workbench的一个集合

3、CATIWorkbenchTransition interface

4、CATApplicationFrame

5、CATFrmEditor 类起检索按钮是否可用的功能等

6、In Short

    The CAA V5 application window includes commands which are common to all documents in menus and in the standard toolbar. Each document type is associated with a workshop which includes commands arranged in menus and toolbars which are added to the common menus and to the standard toolbar. Changing the active document to another document changes the active workshop if the new active document's type is different from the type of the previous document. A workshop can include workbenches to gather commands dedicated to specific tasks to structure the end user interface. One workbench only can be active at a time.

7、The application layout is provided by the non-exposed CATApplicationDocument class

8、The main methods of the CATApplicationFrame class are:

GetFrame This static method returns the unique instance of this class.

    SetMessage To set a message in the status bar.

    GetApplicationDocument This method returns the CATApplicationDocument class instance

    GetMainWindow This method returns:

9、CATIDocumentEdit interface is used to create the default window to display the document

10、The CATFrmLayout Class

    This class manages all the windows created. It

11、The CATFrmLayout class enables you to activate a new window

12、You have to respect only one rule: all the dialog objects must be inside a frame created by the CATFrmWindow class:

13、HRESULT CAAEMyInterface::CreateWindow()

    {

    1/ Creating the new window

    2/ Managing the base name

    3/ Declaring the window as current

    }

    ...

14、In Short

    This article enables you to understand the role of the main objects defining or managing the V5 interactive application.

CATApplicationFrame

    This class has only one instance during the session. You essentially use it to retrieve the dialog parent of your dialog box.

CATFrmLayout

    This class has only one instance during the session. Its role is to manage all the document windows. You use it to retrieve windows and to define the current one.

CATFrmEditor

    This class controls the visualization and the interactivity of the document. It is the C, in the MVC paradigm, where M is the document and V the window.

CATFrmWindow

    It is the base class of all the classes defining a window to display a document.

15、The CATApplicationFrame class

    This CATApplicationDocument class instance is built by the CATApplicationFrame class instance.

The main methods of the CATApplicationFrame class are:

GetFrame This static method returns the unique instance of this class.

    SetMessage To set a message in the status bar.

    GetApplicationDocument This method returns the CATApplicationDocument class instance

    GetMainWindow This method returns:

MyDialogBox will be automatically hidden when the editor will be deactivated. Therefore if you need a dialog box always visible, and independent of the life of the document, its parent must be the CATApplicationDocument class instance returned by the GetApplicationDocument method. You can also read the "Defining Headers in CATIAfrGeneralWksAddin Implementations" section in the technical article about the command headers

A property sheet is a tabbed dialog box, each tab containing a property page

This CATEditorManager object is used by the application to create and manage property pages

The CSO contents is retrieved and passed to the ExtractFromSelection method of each property editor

These methods are those of the CATIEditProperties interface and are either pure virtual or empty in their CATEditor implementation. You should provide their body to make them play the following role:

ExtractFromSelection returns the list of objects found in the Current Set of Objects (CSO) that implement the property interface

    GetEditorTitle returns the property page title

    SetEditorSize lets you request which size you need to accommodate your property page, among the possible values: small, medium, or large

    BuildEditor instantiates the associated dialog class

    SetPropertyValue sets the values and options in the property page dialog from the objects

    CommitModification applies to the selected objects the modifications made to values and options in the property page dialog.

    CancelModification is empty, but exists and could be used to delete temporary objects that could possibly be allocated in previous methods

    CloseWindowFromEditor is called whenever the end user selects another property page.

    The methods ExtractFromSelection, GetEditorTitle, SetEditorSize, BuildEditor, and SetPropertyValue are executed in this order when instantiating the property page.

When the end user clicks:

OK, the CommitModification method is executed and the window is closed

    Apply, the CommitModification method is executed, but the window is not closed

    Cancel, the CancelModification method is executed and the window is closed

    Close, the window is closed.

    SetPropertyValue, CommitModification, and CancelModification call in turn the methods with the same name of the associated dialog class.

Current Set of Objects (CSO),

In memory the setting file is represented by a setting repository, an instance of the CATSettingRepository class

A property page divided in sections

    This dialog is a class that derives from CATDlgFrame

Creating a property page for the Tools/Options menu implies to create a property page editor factory, a property page editor class instantiated by this factory, and to supply a property page dialog class gathering the controls to access the parameters and values you let the end user access and modify.

Setting Attributes versus Parameters

    The setting repository contains setting attributes accessible thanks to the ReadSetting and WriteSetting methods. Using these methods ties the code to the formats and locations of the attributes

Model View Controller (MVC

What Is a CAA Command?

    A CAA command is an instance of a class deriving from the CATCommand class and that supports these interactive mechanisms:

Desactivate is called when a shared command takes the focus from the active command

A command header instance is always an instance of a class deriving from the CATCommandHeader class

To avoid to fill up uselessly the list of CATCommandHeader instances, it is recommended to make the command header instantiation only in the following methods because these methods are called once for each instance of editor: CreateCommands of the workbench implementations [4] CreateCommands of the add-in implementations (*) [5]

To create a standard command header class, you can use the MacDeclareHeader macro. It creates for you a class which derives from CATCommandHeader which is the base class for command headers and should never be directly instantiated.

This Dialog command contains:

The list of current entities. This list is always in this order:

    The workshop defined by the frame application (CATAfrGeneralWks)

    The current workshop (those of the current UI-active object)

    The Add-ins of the current workshop

    The current workbench

    The Add-ins of the current workbench

The Dialog box must manage its life cycle. When the end user clicks the Close button, or the Close/Cancel buttons if they exist, the Dialog box is deleted (by a RequestDelayedDestruction on itself)

command header stands for a command and avoids to load the command when the end user does not require it. A command header is an instance of a command header class. This class can be used for several commands, and can be created either using a macro or explicitly if the command header should manage availability information or customize its representation.

It is possible to re-use command header identifiers, but there are two rules to respect:

In a workbench or in an add-in (workshop/workbench) avoid to use an identifier coming from another workbench or workbench's Add-in.

    In a contextual menu do not use an identifier coming from a workbench or a workbench's Add-in, but only coming from the workshop or an workshop's add-in.

    The "Workshop Exposition" command enables you to retrieve the command header identifiers.

There are two command header resource files:

The resource file containing the title and help messages in the English language, and that can be translated into other languages. It is suffixed using CATNls

    The resource file containing the icons and other resources that should not be translated. It suffixed by CATRsc

In Short

    The command header resources are provided in two files whose names are the command header class, or the name set by the CATImplementHeaderResources macro in the command header cpp file. One file is for those that can be translated and is suffixed CATNls, the other for the icon names or pointer to a help file and is suffixed CATRsc. The resources are provided using keys built with the identifier of the object to which they apply.

In Short

    The workshop resources are provided in two files whose names are the workshop identifier. One file is for those that can be translated and is suffixed CATNls, the other for the icon names and is suffixed CATRsc. The resources are provided using keys built with the identifier of the object to which they apply.

public class CATCommandHeader

Class to create a command header.

    Role: Each command you want to make available in your workshop or workbench must have a command header. It holds the necessary information to load the command, such as the name of the shared library in which the command's executable code is located, the name of the command class, and the data to pass to the command's code when this command becomes the current one.

The command header has resources for each command to display, such as the command name shown to the end user, its ToolTip displayed in a balloon, it help message, and its icon. This enables the workshop or workbench to be displayed, that is loaded in memory, without any of its commands being itself loaded, except the default one, spares memory space, and improves performance. The end user can see the icons in the toolbars, the items in the menu bar, can ask for help on a given command, without the command being loaded. It is only when he/she clicks on the menu item or on the icon that the command code is actually loaded.

You cannot directly instanciate a CATCommandHeader, you must derive this class. The easiest way is using the MacDeclareHeader macro such that:

#include "CATCommandHeader.h"

    MacDeclareHeader(MyHeader);

System Macro CATImplementClass

    Macro CATImplementClass (Class,Typeofclass,Basemeta,Impmeta)

Declares an implementation or extension class.

    Role: Declares that the current class is either an implementation or an extension class. The class must derive from CATBaseUnknown. Use this macro in the class source (.cpp) file in conjunction with CATDeclareClass in the class header file. End it with a semicolon.

System Macro CATDeclareClass

    Macro CATDeclareClass (private)

Declares an implementation or extension class.

    Role: Declares that the current class is either an implementation or an extension class. The class must derive from CATBaseUnknown. Use this macro in the class header file in conjunction with CATImplementClass in the class source (.cpp) file. End it with a semicolon.

    --------------------------------------------------------------------------------

    This object is included in the file: CATMacForIUnknown.h

Catia 二次开发

CATIA V5在开发之初就遵循 面向对象  的设计思想(OO),构建了完全基于组件的体系结构(PPR: Products,Process,Resource),有效地解决了维护、管理、扩展的困难,并大量使用了最新的计算机技术和标准以及软件工程技术,其中包括基于组件架构思想的JAVA BEAN 、COM/OLE、CORBA 技术和Web技术、C++语言、Visual Basic Journaling 、STEP-SDAI、XML、OpenGL等,这使CATIA V5具有与众不同的鲜明的特点:数据结构单一,各个模块全相关,某些模块之间还是双向相关;端到端的集成系统,拥有强大的专业应用扩展能力。

   1.软件组件结构(SCI: Software Component Infrastructure)的基本概念

   软件组件结构(SCI)是软件工程继过程模型和面向对象模型的下一代逻辑模型。面向对象技术已在许多重要应用中取得成功。

   但是,随着更多面向对象解决方法的开发和使用,很显然的是,单单采用面向对象技术难以与软件日益增长的复杂性抗衡。因为,对象只构成应用程序的一部分。它完全不能把握应用程序的结构(控制流)。只能通过重用类库里有的类来实现有限的重用。但实际情况是,大量应用程序,特别是同一领域(DOMAIN)中的应用程序,分享相似的结构。不同的程序员使用不同的技术去把握和实现这些相似的结构。结果,这些结构并没有经过通常的面向对象技术而被重用。

   面向对象技术只能通过重用类库已有的类来实现有限的重用,而软件组件结构(SCI)提供了最高层次的代码重用。

   软件组件结构(SCI:Software Component Infrastructure)有三个基本的概念:框架(FRAMEWORK)、组件(Component)和对象总线(Products Bus)。

   组件(Component):是软件的基本量子(单元)。组件既应当足够小,以便于维护;又应足够大,可具备相当的功能,可以被打包和插用。由于传统的客户/服务器应用不能应付软件应用日益增加的复杂性。它们不能加入到即插即用的环境之中。组件的特征提供了将一个应用程序分成若干个组件的机制。每个组件提供了一个相当专门的功能,它向框架的其余部分描述自己,以便别的组件能够访问它的功能。描述是通过说明性语言如IDL实现的,它本质上是把组件的接口与实现分离开来。由于组件是可单独维护、升级的,因此,组件不直接与别的组件通信是至关重要的。它必须通过使用框架或对象总线来实现组件之间的交互。

   框架(FRAMEWORK):框架提供对所有应用程序有用的功能(如接口、存储)。它提供了统一的总设计。框架是对相似应用程序集合的一个部分(统一但不完整)解决方案。开发者的任务是用这不完整的解决方案加上必要的代码建立完整的应用。在领域(DOMAIN)内的一个应用包括不变部分和可变部分。不变部分由框架把握,一般可占到80%,可变部分由开发者把握,一般可占到20% 。开发者通过向框架添加变化部分的代码把握其动作,而形成新的特定应用。框架根据是否针对特殊领域还是若干领域,可分为水平框架、垂直框架、复合文挡框架。

   对象总线:对象总线是基本的中间件。它允许成千上万能够相互理解接口定义语言IDL的对象相互发生作用。这种作用对对象来说是完全透明的。对象总线把组件和框架的能力扩展到开放网络和其它伙伴应用程序。它使成千上万独立的软件单元在由不同操作系统、语言、硬件平台和编译工具组成的环境下互相无缝地交互运作。对象总线不仅提供对象之间的连接,它还提供对在总线上所有对象都有用的核心服务集(对象服务)。如:生命周期服务程序、安全性、持久性、命名等。 通过组件构造/修改软件,用框架把握软件结构,用对象总线连接事务,支持即插即用(Plug & Play)功能的扩展。 2.CATIA V5体系结构(Architecture Infrastructure) CATIA V5的体系结构(Architecture Infrastructure)是一种面向行业应用的垂直框架体系结构,组件是CAD/CAM系统的各种几何特征和管理、分析单元。框架是一些应用如:2D/3D建模、分析、混合建模、制图、数控加工等,CATIA V5也称为领域(DOMAIN)或应用(APPLICATION)。并通过3D PLM PPR(PRODUCTS,PROCESS, RESOURCE)HUB产品总线连接起来。

1、Application window和document window类似于mfc中的CMainFrame和CView的关系

2、workshop是workbench的一个集合

3、CATIWorkbenchTransition interface

4、CATApplicationFrame

5、CATFrmEditor 类起检索按钮是否可用的功能等

6、In Short

   The CAA V5 application window includes commands which are common to all documents in menus and in the standard toolbar. Each document type   is associated with a workshop which includes commands arranged in menus and toolbars which are added to the common menus and to the standard toolbar. Changing the active document to another document changes the active workshop if the new active document's type is different from the type of the previous document. A workshop can include workbenches to gather commands dedicated to specific tasks to structure the end user interface. One workbench only can be active at a time.

7、The application layout is provided by the non-exposed CATApplicationDocument class

8、The main methods of the CATApplicationFrame class are:

GetFrame This static method returns the unique instance of this class.

   SetMessage To set a message in the status bar.

   GetApplicationDocument This method returns the CATApplicationDocument class instance

   GetMainWindow This method returns:

9、CATIDocumentEdit interface is used to create the default window to display the document

10、The CATFrmLayout Class

   This class manages all the windows   created. It

11、The CATFrmLayout class enables you to activate a new window

12、You have to respect only one rule: all the dialog objects must be inside a frame created by the CATFrmWindow class:

13、HRESULT CAAEMyInterface::CreateWindow()

   {

   1/ Creating the new window

   2/ Managing the base name

   3/ Declaring the window as current

   }

   ...

14、In Short

   This article enables you to understand the role of the main objects defining or managing the V5 interactive application.

CATApplicationFrame

   This class has only one instance during the session. You essentially use it to retrieve the dialog parent of your dialog box.

CATFrmLayout

   This class has only one instance during the session. Its role is to manage all the document windows. You use it to retrieve windows and to define the current one.

CATFrmEditor

   This class controls the visualization and the interactivity of the document. It is the C, in the MVC paradigm, where M is the document and V the window.

CATFrmWindow

   It is the base class of all the classes defining a window to display a document.

15、The CATApplicationFrame class

   This CATApplicationDocument class instance is built by the CATApplicationFrame class instance.

The main methods of the CATApplicationFrame class are:

GetFrame This static method returns the unique instance of this class.

   SetMessage To set a message in the status bar.

   GetApplicationDocument This method returns the CATApplicationDocument class instance

   GetMainWindow This method returns:

MyDialogBox will be automatically hidden when the editor will be deactivated. Therefore if you need a dialog box always visible, and independent of the life of the document, its parent must be the CATApplicationDocument class instance returned by the GetApplicationDocument method. You can also read the "Defining Headers in CATIAfrGeneralWksAddin Implementations" section in the technical article about the command headers

A property sheet is a tabbed dialog box, each tab containing a property page

This CATEditorManager object is used by the application to create and manage property pages

The CSO contents is retrieved and passed to the ExtractFromSelection method of each property editor

These methods are those of the CATIEditProperties interface and are either pure virtual or empty in their CATEditor implementation. You should provide their body to make them play the following role:

ExtractFromSelection returns the list of objects found in the Current Set of Objects (CSO) that implement the property interface

   GetEditorTitle returns the property page title

   SetEditorSize lets you request which size you need to accommodate your property page, among the possible values: small, medium, or large

   BuildEditor instantiates the associated dialog class

   SetPropertyValue sets the values and options in the property page dialog from the objects

   CommitModification applies to the selected objects the modifications made to values and options in the property page dialog.

   CancelModification is empty, but exists and could be used to delete temporary objects that could possibly be allocated in previous methods

   CloseWindowFromEditor is called whenever the end user selects another property page.

   The methods ExtractFromSelection, GetEditorTitle, SetEditorSize, BuildEditor, and SetPropertyValue are executed in this order when instantiating the property page.

When the end user clicks:

OK, the CommitModification method is executed and the window is closed

   Apply, the CommitModification method is executed, but the window is not closed

   Cancel, the CancelModification method is executed and the window is closed

   Close, the window is closed.

   SetPropertyValue, CommitModification, and CancelModification call in turn the methods with the same name of the associated dialog class.

Current Set of Objects (CSO),

In memory the setting file is represented by a setting repository, an instance of the CATSettingRepository class

A property page divided in sections

   This dialog is a class that derives from CATDlgFrame

Creating a property page for the Tools/Options menu implies to create a property page editor factory, a property page editor class instantiated by this factory, and to supply a property page dialog class gathering the controls to access the parameters and values you let the end user access and modify.

Setting Attributes versus Parameters

   The setting repository contains setting attributes accessible thanks to the ReadSetting and WriteSetting methods. Using these methods ties the code to the formats and locations of the attributes

Model View Controller (MVC

What Is a CAA Command?

   A CAA command is an instance of a class deriving from the CATCommand class and that supports these interactive mechanisms:

Desactivate is called when a shared command takes the focus from the active command

A command header instance is always an instance of a class deriving from the CATCommandHeader class

To avoid to fill up uselessly the list of CATCommandHeader instances, it is recommended to make the command header instantiation only in the following methods because these methods are called once for each instance of editor: CreateCommands of the workbench implementations [4] CreateCommands of the add-in implementations (*) [5]

To create a standard command header class, you can use the MacDeclareHeader macro. It creates for you a class which derives from CATCommandHeader which is the base class for command headers and should never be directly instantiated.

This Dialog command contains:

The list of current entities. This list is always in this order:

   The workshop defined by the frame application (CATAfrGeneralWks)

   The current workshop (those of the current UI-active object)

   The Add-ins of the current workshop

   The current workbench

   The Add-ins of the current workbench

The Dialog box must manage its life cycle. When the end user clicks the Close button, or the Close/Cancel buttons if they exist, the Dialog box is deleted (by a RequestDelayedDestruction on itself)

command header stands for a command and avoids to load the command when the end user does not require it. A command header is an instance of a command header class. This class can be used for several commands, and can be created either using a macro or explicitly if the command header should manage availability information or customize its representation.

It is possible to re-use command header identifiers, but there are two rules to respect:

In a workbench or in an add-in (workshop/workbench) avoid to use an identifier coming from another workbench or workbench's Add-in.

   In a contextual menu do not use an identifier coming from a workbench or a workbench's Add-in, but only coming from the workshop or an workshop's add-in.

   The "Workshop Exposition" command enables you to retrieve the command header identifiers.

There are two command header resource files:

The resource file containing the title and help messages in the English language, and that can be translated into other languages. It is suffixed using CATNls

   The resource file containing the icons and other resources that should not be translated. It suffixed by CATRsc

In Short

   The command header resources are provided in two files whose names are the command header class, or the name set by the CATImplementHeaderResources macro in the command header cpp file. One file is for those that can be translated and is suffixed CATNls, the other for the icon names or pointer to a help file and is suffixed CATRsc. The resources are provided using keys built with the identifier of the object to which they apply.

In Short

   The workshop resources are provided in two files whose names are the workshop identifier. One file is for those that can be translated and is suffixed CATNls, the other for the icon names and is suffixed CATRsc. The resources are provided using keys built with the identifier of the object to which they apply.

public class CATCommandHeader

Class to create a command header.

   Role: Each command you want to make available in your workshop or workbench must have a command header. It holds the necessary information to load the command, such as the name of the shared library in which the command's executable code is located, the name of the command class, and the data to pass to the command's code when this command becomes the current one.

The command header has resources for each command to display, such as the command name shown to the end user, its ToolTip displayed in a balloon, it help message, and its icon. This enables the workshop or workbench to be displayed, that is loaded in memory, without any of its commands being itself loaded, except the default one, spares memory space, and improves performance. The end user can see the icons in the toolbars, the items in the menu bar, can ask for help on a given command, without the command being loaded. It is only when he/she clicks on the menu item or on the icon that the command code is actually loaded.

You cannot directly instanciate a CATCommandHeader, you must derive this class. The easiest way is using the MacDeclareHeader macro such that:

#include "CATCommandHeader.h"

   MacDeclareHeader(MyHeader);

System Macro CATImplementClass

   Macro CATImplementClass (Class,Typeofclass,Basemeta,Impmeta)

Declares an implementation or extension class.

   Role: Declares that the current class is either an implementation or an extension class. The class must derive from CATBaseUnknown. Use this macro in the class source (.cpp) file in conjunction with CATDeclareClass in the class header file. End it with a semicolon.

System Macro CATDeclareClass

   Macro CATDeclareClass (private)

Declares an implementation or extension class.

   Role: Declares that the current class is either an implementation or an extension class. The class must derive from CATBaseUnknown. Use this macro in the class header file in conjunction with CATImplementClass in the class source (.cpp) file. End it with a semicolon.

   --------------------------------------------------------------------------------

   This object is included in the file: CATMacForIUnknown.h


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空