0

クライアント プロセスは、サーバーから送信されたパケットからデータにアクセスしようとすると、「アクセス違反読み取り場所 0x00000004」エラーを受け取ります。

パケットは問題なく受け入れられ、それに応じて処理されます。しかし、パケット内にあるダブル ポインターにアクセスしようとすると、エラーが発生します。

ここにポインタがあります:

CGameObject **playerListImage;

エラーがスローされる場所は次のとおりです。

void CObjectManager::SetPlayerList(CGameObject **updatedList)
{
  for(int i=0; i < m_nPlayerCount; i++)
      m_pPlayerList[i] = updatedList[i];
}

それほど多くのことはありませんが、基本的な要約を次に示します。

サーバーが私にパケットを送信します。それに応じてパケットを処理します。また、二重ポインターを除いて、パケット内のすべてのデータは問題ありません。

ただし、サーバースレッドと同じプロセスで実行されているクライアントスレッドがあり、そのクライアントはダブルポインターで問題が発生することはありません。

問題は、別のプロセスにあることに関係していると思います。しかし、私は途方に暮れています。

前もって感謝します。

4

1 に答える 1

2

問題のように思えますが、「ワイヤーを介して」ポインターを送信しようとしています。それはできません。あるプロセスのポインターは別のプロセスでは有効ではありません。

プレイヤーのリストを送信しているように見えるので。すべてのプレイヤーにポインターを送信しようとするのではなく、各プレイヤーを個別に送信する以外に選択肢はないと思います。

于 2012-10-18T06:51:34.313 に答える