0

C#でOHMを機能させる方法の例はほとんど見つかりませんでした

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenHardwareMonitor.Hardware;

namespace OpenHardwareMonitorReport
{

    class Program
    {

        static void Main(string[] args)
        {
            Computer computer = new Computer();
            computer.Open();

            var temps = new List<decimal>();
            foreach (var hardware in computer.Hardware)
            {
                if (hardware.HardwareType != HardwareType.CPU)
                    continue;
                hardware.Update();
                foreach (var sensor in hardware.Sensors)
                {
                    if (sensor.SensorType != SensorType.Temperature)
                    {
                        if (sensor.Value != null)
                            temps.Add((decimal)sensor.Value);
                    }
                }
            }

            foreach (decimal temp in temps)
            {
                Console.WriteLine(temp);
            }
            Console.ReadLine();
        }
    }
}

これにより、いくつかのセンサーデータが表示されますが、実行すると次のエラーが発生します。

Managed Debugging Assistant'PInvokeStackImbalance'は、'C:\ Users \ Josh \ Desktop \ DLLTutorial \ HardwareMonitor \ HardwareMonitor \ bin \ Debug\HardwareMonitor.vshost.exe'で問題を検出しました。追加情報:PInvoke関数'PInvokeDelegateFactoryInternalAssembly!PInvokeDelegateFactoryInternalWrapperType13 :: ADL_Main_Control_Create'の呼び出しにより、スタックのバランスが崩れました。これは、マネージドPInvokeシグニチャがアンマネージドターゲットシグニチャと一致しないことが原因である可能性があります。PInvokeシグニチャの呼び出し規約とパラメータがターゲットのアンマネージドシグニチャと一致することを確認してください。

OHM svnから.dllをダウンロードし、プロジェクトに配置し、参照を追加すると、「computer.Open();」という行でクラッシュします。私が上に投稿したそのエラーで。

助けてください!

4

1 に答える 1

1

どうやらそれは私の設定に問題があります。他のシステムでは失敗しません...それが起こったときにあなたはそれを嫌いではありませんか。

于 2012-07-23T21:00:12.050 に答える