JNI ::如何用c语言在内部计算hbmcolor

时间:2013-11-11 17:53:59

标签: java c java-native-interface

我使用的是WINDOWS 7 64位机器.JNI

我在我的C代码中使用ICONINFO。其中存储了图标信息。 使用SetByteArrayRegion()方法,我已将iconinfo信息复制到java的字节数组中。 从这个字节数组我需要得到hbmColor。 ICONINFO的结构如下_ ICONINFO { BOOL fIcon; DWORD xHotspot; DWORD yHotspot; HBITMAP hbmMask; HBITMAP hbmColor; }

虽然我可以在C代码中轻松地从ICONINFO获取hbmcolor。 我如何在java中完成。 如何用c语言在内部计算hbmcolor?

1 个答案:

答案 0 :(得分:0)

在64位DLL中,hbmColor位于偏移量24处,即:第一个字节是结构中的第25个字节。 hbmColor长度为8个字节。

方法:

size_t offset = offsetof(struct _ICONINFO, hbmColor);

我不知道你想用Java hbmColor做什么。这是一个Win32 handle。或许最好遵循millimoose的建议。