Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Types IDL中的可移植地址偏移参数_Types_64 Bit_Porting_Idl_Midl - Fatal编程技术网

Types IDL中的可移植地址偏移参数

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位系统中中断 我应

我正在将一个旧的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值中呢