「ライブラリの基礎 - C++DLL」の版間の差分
ナビゲーションに移動
検索に移動
→サンプルコード
279行目: | 279行目: | ||
SampleFunc04(structHoge); | SampleFunc04(structHoge); | ||
// SampleStruct2構造体のサイズを取得する | |||
// 指定サイズ分だけメモリ領域を確保して、その先頭アドレスをstructPiyoに格納する | |||
var structPiyo = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SampleStruct2))); | var structPiyo = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SampleStruct2))); | ||
try | try | ||
{ | { | ||
SampleFunc05(structPiyo); | SampleFunc05(structPiyo); | ||
// 受け取ったstructPiyoからSampleStruct2構造体の情報に構築し直す | |||
var structFuga = (SampleStruct2)Marshal.PtrToStructure(structPiyo, typeof(SampleStruct2)); | var structFuga = (SampleStruct2)Marshal.PtrToStructure(structPiyo, typeof(SampleStruct2)); | ||
for (int i = 0; i < structFuga.length; i++) | for (int i = 0; i < structFuga.length; i++) |