2011-12-26 9 views
0

の使用方法を理解しないOpenHardwareMonitorLib.dll私はリファレンスに追加オープンハードウェアモニタのソースコード

は、今私は自分のコードに追加:OpenHardwareMonitor.Hardware;を使用します。

次に、私はトップレベルのレベルで行った:Isensor Sensor;

しかし、私は「新しい」それは私はそれのインスタンスを作成カントができないと私はコンストラクタで、それにはnull例外を取得しています:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.IO; 
using System.Reflection; 
using System.Windows.Forms; 
using OpenHardwareMonitor.Hardware; 


namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     ISensor Sensor; 

     public Form1() 
     { 
      InitializeComponent(); 
      string t = Sensor.Name; 

     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

     } 

     private void label1_Click(object sender, EventArgs e) 
     { 

     } 
    } 
} 

は、抽象クラスのインスタンスまたはインタフェースを作成できませんhttp://code.google.com/p/open-hardware-monitor/source/browse/#svn%2Ftags%2F0.3.2%2FWMI

をしかし、私はすべてこのコードを使用したくない:「OpenHardwareMonitor.Hardware

私はcode.google.comサイトでソースコードに見えるotのみました。私はプログラムOpen Hardware Monitorをダウンロードしましたが、exeファイル以外にはdllファイルがあります。私のプロジェクトで今使っているのは、DLLを使って簡単に使えると確信していました。私が今欲しいのは、ビデオカードGPUの温度を取得することです。

+1

これは明らかですが、あなたのコードライブラリにはそのインタフェースの定義が含まれていますか? –

+0

サメはわからない。しかし、Isensorは存在する。 code.googleサイトからすべてのソースコードをダウンロード/コピーすることは論理的ではありません。もしそうなら、なぜopenhwardwaremonitorlib.dllをプログラムに入れましたか?知りません。 –

+0

私の答えに加えて、あなたはhttp://stackoverflow.com/questions/2843244/how-to-read-gpu-graphic-card-temperature – Amy

答えて

1

まず、newインターフェイスを使用することはできません。 newのコンクリートクラスのみが可能です。

第2に、変数名をSensorからsensor、または_sensorに変更することをお勧めします。 Sensorクラスがあります。混乱を避けるのが最善です。

私が行ったことは、DLLをダウンロードしてILSpyで開封しました。このインターフェイスを実装するクラスを見てみましょう。 ILSpyをダウンロードして自分で試してみることをお勧めします。

結果はILSpy windowです。右下には、インターフェイス上で「分析」を行って、どこに公開されているかを確認しました。 ISensorを返すファクトリメソッドはありません。

最後に、ISensorSensorクラスを実装しているクラスがあります。このクラスには4つのコンストラクタがあります。これらはVisual Studioのインテリセンスで表示されます。または、ILSpyのSensorクラスに移動すると、コンストラクタが表示されます。

最後に何をする必要がありますか?sensor = new Sensor(...);どのコンストラクタを使用するかは、あなた次第です。

+0

を見ているかもしれません。この質問に答える私の目標は、あなたにあなた自身を釣る方法を教えてください。あなたは諺を知っている:「男に魚を与え、あなたは一日彼に餌を与える。魚を釣る人を教え、あなたは一生の間彼に餌を与える。ツールベルトにILSpyを使用すると、必要なものすべてを把握できます。 – Amy

+0

ああ、DLLとOpenHardwareMonitor.EXEファイルの両方を開きます。次に、インタフェースで分析を実行すると、実行可能ファイルでどこで使用されているかを確認できます。私は[ここ](http://openhardwaremonitor.org/downloads/)から実行可能ファイルとDLLを入手しました。どのように使用されているかを見ることができます。 – Amy

+0

Inuyasha私はULSpyを使用しました。Sensorクラスについて解析しましたが、SensorクラスはOpenHardwareMonitor.Hardware.Sensorから来ていますが、OpenHardwareMonitorLib.dllを参照として追加してからOpenHardwareMonitor.Hardwareを使用しました。トップクラスのレベルで私は見ることができませんセンサー私は、私が変数を宣言するコンストラクタの前の領域で意味:センサーと私はIsensorを参照してくださいしかし、私はセンサーを見ることができません。私はクラスのセンサーが表示されるはずですか?ハードウェアのその部分はありませんか? –