Types IDL中的可移植地址偏移参数
我正在将一个旧的32位COM服务器移植到64位体系结构 许多函数将缓冲区地址和偏移量作为参数,如_int3264和_int3264指针。问题在于,由于接口是IDispatch继承的,并且自动化接口不支持_int3264,因此在x64中,此类型不会自动生成为_int64 对于需要地址的函数,我将把u int3264*替换为void* 偏移参数被设置为_int3264和LONG(在automation+x64中均为32位)。我不能使用hyper(映射为_int64),因为它将在32位系统中中断Types IDL中的可移植地址偏移参数,types,64-bit,porting,idl,midl,Types,64 Bit,Porting,Idl,Midl,我正在将一个旧的32位COM服务器移植到64位体系结构 许多函数将缓冲区地址和偏移量作为参数,如_int3264和_int3264指针。问题在于,由于接口是IDispatch继承的,并且自动化接口不支持_int3264,因此在x64中,此类型不会自动生成为_int64 对于需要地址的函数,我将把u int3264*替换为void* 偏移参数被设置为_int3264和LONG(在automation+x64中均为32位)。我不能使用hyper(映射为_int64),因为它将在32位系统中中断 我应
我应该对所有偏移量/地址参数使用void*,还是有其他方法将这些参数移植到x64 COM服务器 void*只允许在[local]接口中使用-它不能被封送(无法知道void指针的大小或语义) 如果需要多态类型,请使用_int3264。您是对的,它不能与自动化一起使用,因为自动化不支持多态类型 为什么不使用一个_int64并将32位的值放入_int64值中呢