__ptr32到pin_ptr在x64配置上给出了编译错误

时间:2013-02-06 11:36:14

标签: c++-cli 32bit-64bit

我在C ++ / CLI中包装了一个dll(c ++)方法。我正在使用带有Vc ++ 2010的x86 windows-xp机器。

我的c ++ / CLI项目中有x86和x64配置。

我只在x64中遇到编译错误。这是代码片段

struct A
{
    int data;
    A *__ptr32 next;
}

pin_ptr<A *>pinned = &obj->next; // A obj

以上行仅在x86配置中编译。 在x64中,我收到编译错误:can't convert A * to pin_ptr <Type>

编译器选项:/ clr

1 个答案:

答案 0 :(得分:1)

__ pt32将指针限制为仅适用于x86的32位指针。

x64适用于64位指针...

只需删除大小约束并像常规指针一样使用它:

 struct A
  {
   int data;
   A* next;
  }