USBRHのメモ

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%