我正在使用 JNAerator 解析 Windows API 头文件,以便可以从 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.
我认为如果 wtypes.h 引用了类型(IUnkown、AsynIUnkown 或 IClassFactory),则需要这些前向定义,但我在 wtypes.h 或 wtypes.h 引用的其他标头中找不到对这些类型的任何引用。那么为什么需要前向声明(或者我错过了什么)?