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 に答える