Не удается заставить OpenHardwareMonitorLib.dll работать
Я нашел очень мало примеров того, как заставить ОМ работать в C#
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();
}
}
}
Это должно отобразить некоторые данные датчика, но когда я запускаю, это дает мне эту ошибку:
Помощник по управляемой отладке "PInvokeStackImbalance" обнаружил проблему в "C:\Users\Josh\Desktop\DLLTutorial\HardwareMonitor\HardwareMonitor\bin\Debug\HardwareMonitor.vshost.exe". Дополнительная информация: вызов функции PInvoke 'PInvokeDelegateFactoryInternalAssembly!PInvokeDelegateFactoryInternalWrapperType13::ADL_Main_Control_Create' разбалансирует стек. Вероятно, это связано с тем, что управляемая подпись PInvoke не совпадает с неуправляемой целевой подписью. Убедитесь, что соглашение о вызовах и параметры подписи PInvoke соответствуют целевой неуправляемой подписи.
Я скачал.dll из OHM svn, поместил его в свой проект, добавил ссылку на него, и он вылетает в строке "computer.Open();" с этой ошибкой я выложил выше.
Пожалуйста помоги!
1 ответ
Видимо это проблема с моей настройкой. Это не терпит неудачу в других системах... Не ненавидите это, когда это происходит.