0

JNAeratorを使用してWindowsAPIヘッダーファイルを解析しているので、JVMからそれらを参照できます。ただし、他の言語ほどC / C ++に慣れていませんが、正しく解析する前に、これらのヘッダーファイルを理解する必要があります。

私は特にUnkwn.hを見ています、そしてそれは基本的に含まれています

#include "rpc.h"
#include "rpcndr.h"

#ifndef COM_NO_WINDOWS_H
  #include "windows.h"
  #include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/


//Some forward declarations
typedef interface IUnknown IUnknown;
typedef interface AsyncIUnknown AsyncIUnknown;
typedef interface IClassFactory IClassFactory;

#include "wtypes.h"

//followed by the full declarations for the interfaces IUnkown, AsyncIUnkown and IClassFactory and their methods, but no actual implementations of course. 

タイプ(IUnkown、AsynIUnkown、またはIClassFactory)がwtypes.hによって参照されている場合、これらの前方定義が必要になると思いますが、wtypes.hまたはwtypes.hが参照する他のヘッダーでこれらのタイプへの参照を見つけることができません。では、なぜ前方宣言が必要なのですか(または何かを見逃したのですか)?

4

1 に答える 1

0

これらは前方宣言ではありません。これらは型定義であり、インターフェースのデータ型を定義します。もちろん、これはMicrosoftの拡張機能です。定義が行うことは、IUnknown(たとえば)その名前のインターフェースを参照していることを確認することです。

于 2012-11-17T03:34:01.783 に答える