value struct VS{};
ref class RC
{
VS vs1;
}
RC rc1;
とある時、
rc1->vs1のポインタVS*を取得するにはどう表現すればよいのでしょう?
初等的な質問かもしれないですが、どなたか教えて頂ければと思います。
&rc1.vs1 じゃなくて?
rc1が参照クラスなので、メンバをポイントは、rc1->vs1;で良いと思うんです。
少し調べたら(&rc1)->*vs1;かもしれないと思われましたが、VS1*を引数にする関数に渡そうとするとコンパイルエラーとなりました。
いやはや・・・。
> コンパイルエラーとなりました。
と書くのではなくて、エラーメッセージを省略せずそのまま掲載するといいだろう。
まあ書き込む前に検索してみるともっといいわけだが。
「ポインタ」という用語は unmanage なものに対して使うのに対して
提示 ref class RC は manage なもの。
マネージオブジェクトのアンマネージポインタは取得できない。
どうしたらいいかは、どうしたいか次第。
value struct VS{};
VS vs0;
ref class RC
{
VS vs1;
};
RC rc1;
void f1(VS*);
と宣言して、
f1(&vs0);
という呼び出しはコンパイル可能、
f1(rc1->vs1);
という呼び出しはコンパイルエラーとなるわけですが、関数f1にrc1のメンバvs1を渡す方法があるか、という質問です。
要領が悪い質問だったようで、お手数をお掛けしております。
その答えは既に書いたとおり「不可能」
代替策はあるが、どの手法をとるべきかは案件次第
その答えは既に書いたとおり「不可能」
代替策はあるが、どの手法をとるべきかは案件次第
ツイート | ![]() |