我在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
答案 0 :(得分:1)
__ pt32将指针限制为仅适用于x86的32位指针。
x64适用于64位指针...
只需删除大小约束并像常规指针一样使用它:
struct A
{
int data;
A* next;
}