我们有一个导出属性的 32 位 C++ OCX:
LPITEMIDLIST CMyClass::GetCurrentPIDL()
在 32 位二进制中,LPITEMIDLIST
当然是 32 位指针。
32 位 C++ 客户端应用程序#import
用于导入 OCX。生成的 .TLH 文件包含以下内容:
__declspec(property(get=GetCurrentPIDL,put=PutCurrentPIDL))
__int64 CurrentPIDL;
客户端无法在没有类型转换的情况下访问该属性,因为编译器抱怨它无法将 an 转换__int64
为LPITEMIDLIST
.
一切正常,但我仍然想知道为什么 OCX 将属性导出__int64
为LPITEMIDLIST
. 看来我不应该投它。
我在 OCX 代码中做错了什么,还是就是这样?
TIA