• 本当は、田舎に庵を建てて隠遁生活したいけど、先立つものも無いので自宅で..。

C#から固定長の配列をAPIに渡す

タイトルがわかりにくいけど、C#からCで作ったdllに固定長の配列を渡す方法。 ここでは無理やりunsafeを使ってやったけど、もう少しスマートな方法。

構造体をこんな風に書く。

こうすると、SerNoは64バイトに固定されるみたい。

この構造体を参照渡しで渡してやると、正常に動く。

Cで書かれたサンプルでは、DeviceT構造体の配列を渡しているけど、今回の方法ではDeviceTの配列のサイズを求めようとMarshal.SizeOfを使うと例外が発生してうまくいかない。

実際には、複数のSDRPlayが複数接続されることはないので、とりあえずこのまま進める。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA