0

次の構造体を C++ にマーシャリングする必要があります。

typedef struct _MyType { 
    LPSTR    name1;
    LPSTR    name2;
} MyType;

非常に具体的な方法でマーシャリングする必要があることを除けば、単純に聞こえます。呼び出し元はバイト配列を渡します。文字列を配列の最後に配置し、構造体を最初に配置し、name1 と name2 が配列内の位置を指すようにする必要があります。

たとえば、name1 = "Spaceman" および name2 = "Spiff" の MyType がある場合、配列の最後の 9 バイトは "Spaceman\0" になり、その前に "Spiff\0" が付きます。配列の先頭では、最初のポインターは (配列の末尾のアドレス - 長さ ("Spaceman\0")) を指し、2 番目のポインターは他の文字列を指します。

Marshal.Copy() を使用して配列の最後に文字列を配置できると仮定していますが、最初にポインターを配置するにはどうすればよいですか????

ありがとう、スピフ

4

0 に答える 0