0

我在 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

4

1 回答 1

1

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

x64 适用于 64 位指针...

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

 struct A
  {
   int data;
   A* next;
  }
于 2013-02-06T11:41:53.587 回答