質問: c++/c#間での構造体の引き渡し方法に関して 現在、c++で作成したクラスを、 c#から呼び出し実行しようとしております。 引数として、構造体を利用したいので、 c++側、c#側でそれぞれ下記のように 構造体を定義しました。 【c++】 typedef struct _msg { ulong code; ulong sessionid; }msg; 【c#】 [structlayout(layoutkind.sequential)] public struct msg { public uint code; public uint sessionid; } そして、下記のようにc++側で定義したクラスを c#側で呼び出そうとしたのですが、 「msg*から_msg*に変換できません」という コンパイルエラーが発生してしまいました。 構造体の定義は同じものになっていると思うのですが、 この原因は何だと考えられるでしょうか。 よろしくお願いいたします。 【c++】 ulong wrap::api( msg* sample_msg ) { return 1; } 【c#】 msg sample_msg; wrap.api(&sample_msg);
回答: c++のstructとc#のstructはまったくの別物てことをふまえての質問でしょうか?