-3

私はメモリ リーダー/ライター クラスに取り組んでいますが、それに固執しています。私の問題は、構造体ポインターを使用して他のプロセスのメモリ値を変更したいということです。私はC++でそれを行う方法を知っていますが、C#では知りません

私の現在のコードは次のとおりです。

class CModifier
{
    struct Data
    {
        int iMember;
        float fMember;
    }

    public CModifier()
    {
        Data data[62];
        *data = 0x123456;

        // use them to modify values etc.
        data.fMember = 1.2345f;
    }
}
4

2 に答える 2

-2

C++ の専門家は、正しい技術用語を使用していないという理由で私の投稿を激しく非難するように感じますが、まあまあです。

C# には、ポインター調整コードを作成するために使用できる 'unsafe' 修飾子がありますが、別の場所にある構造体を変更するためのより良いオプションは 'ref' キーワードです。

あなたが達成しようとしていることがC#でできるとは正確には言えません(C ++で理解できるかどうかはわかりません)が、あなたがしたように、私はそれを行う方法を示します説明された。

void ChangeMyStruct(ref Data etc) {
  data.fMember = 1.2345f;
}

void mainMethod() {
  ChangeMyStruct(ref dataOne);
}
于 2013-09-07T15:22:08.437 に答える