0

Ogre Character サンプルを見ていると、次のように宣言されているクラスがあります。

class _OgreSampleClassExport Sample_Character : public SdkSample

クラス識別子は Sample_Character で、SdkSample クラスから派生しています。_OgreSampleClassExport とは何ですか?

4

2 に答える 2

3

Windows プラットフォーム_OgreSampleClassExportでは、クラスのメンバーの DLL リンケージを指定するために使用されるマクロです。マクロ__declspec(dllimport)が外部 DLL に存在するメンバーに展開される場合、インポートする必要があります。ビルド中の DLL に存在するメンバに展開すると__declspec(dllexport)、エクスポートされます。マクロが空白の場合、メンバーは静的にリンクされ、DLL で終了しません。

他のプラットフォームでもほぼ同じように機能します。Linux で GCC を使用してコンパイルすると、マクロは__attribute__ ((visibility("???")))"???" に展開されます。to で使用されるのと同様の方法でリンケージを指定し__declspec()ます。

于 2013-05-21T21:37:22.337 に答える
1

この投稿は関連があるようです - class キーワードの後のマクロ変数

基本的に、動的にリンクされたライブラリをサポートするためにクラスをエクスポートできます。

于 2013-05-21T21:35:43.743 に答える