USB温度・湿度計モジュール(完成品) - USBRH-FG - Strawberry
これをWin11で動かそうとしたときのエラー対処
症状:FindUSBでクラッシュする
原因:文字列のマーシャリングに失敗してる
対処:正しいマーシャリングに変更してやる
具体的には戻り値をIntPtrにして、Marshal.PtrToStringAnsiで文字列にする
USB温度・湿度計モジュール関数on · GitHubより引用
[DllImport("USBMeter.dll", CharSet = CharSet.Ansi)]
static public extern IntPtr FindUSB(ref int index);
Marshal.PtrToStringAnsi(SLUSBMeter.FindUSB(ref index));
最初、別情報でCharSet指定なし+PtrToStringAutoにしてみたら盛大に文字化けした
おそらくUnicode判定された?
検索用:USB-RH USB-RH%
コメント