dword(uint)を書き出すためにポインターを必要とするネイティブメソッドがあります。
ここで、(Int)ポインターから実際のuint値を取得する必要がありますが、Marshalクラスには、(符号付き)整数を読み取るための便利なメソッドしかありません。
ポインタからuint値を取得するにはどうすればよいですか?
質問(およびGoogle)を検索しましたが、必要なものが本当に見つかりませんでした。
サンプル(機能していない)コード:
IntPtr pdwSetting = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(uint)));
try
{
// I'm trying to read the screen contrast here
NativeMethods.JidaVgaGetContrast(_handleJida, pdwSetting);
// this is not what I want, but close
var contrast = Marshal.ReadInt32(pdwSetting);
}
finally
{
Marshal.FreeHGlobal(pdwSetting);
}
ネイティブ関数からの戻り値は、0から255までのdwordであり、255は完全に対照的です。