0

ファイルをマップし、dll 全体で使用したいと考えています。dll は、相互にリンクされた複数のクラスで構成されています。

たとえば、startclass.someclass.someotherclass など

someotherclass もマップされたファイルにアクセスできる必要があります。ファイルを「startclass」にマップします。

「someotherclass」内からもマップされたファイルにアクセスするために、「global.cpp」という名前の新しいクラスをプロジェクトに追加しました。

「global.h」で私は述べました

    HANDLE                  m_hVoiceData;
    void*                   m_pVoiceData;

「someotherclass」で、マップされたファイルにアクセスしたいと思います。だから私は言った

#include "global.h"

しかし、「someotherclass」内から次のことをしようとすると...

memcpy(nEncodedBytes,(void*)m_pVoiceData[iFirstByteToRead], iLenCompressedBytes);

....コンパイラは、「式は完成したオブジェクト型へのポインタである必要がある」と教えてくれます。

どこが間違っていたのか、またはそれを修正する方法を誰かに教えてもらえますか?

4

2 に答える 2

3

に索引付けすることはできませんvoid *。代わりに、データがマップされている場所の代わりにchar *m_pVoiceData(および aを使用する必要があります。m_pVoiceData = reinterpret_cast<char *>(stuff);m_pVoiceData = stuff;

于 2013-04-03T13:04:18.077 に答える