查一下MSDNPDH_STATUS PdhOpenQuery(
  LPCTSTR szDataSource,  
  DWORD_PTR dwUserData,  
  HQUERY *phQuery        
);PDH_STATUS PdhAddCounter(
  HQUERY hQuery,              
  LPCTSTR szFullCounterPath,  
  DWORD_PTR dwUserData,           
  HCOUNTER *phCounter         
);PDH_STATUS PdhCollectQueryData(
  HQUERY hQuery  
);PDH_STATUS PdhGetFormattedCounterValue(
  HCOUNTER hCounter,            
  DWORD dwFormat,               
  LPDWORD lpdwType,             
  PPDH_FMT_COUNTERVALUE pValue  
);PDH_STATUS PdhCloseQuery(
  HQUERY hQuery  
);pdhAddCounterA和pdhAddCounterW
表示了函数中字符是ASCII形式还是WORD形式的,主要是对于操作系统而言的

解决方案 »

  1.   

    使用dll小例
    unit _use;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      PTForm =^TForm;
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    Procedure  hh(S:PChar; Ii: PInteger); stdcall; Stdcall; external 'Project1.DLL';
    procedure _style_xpstyle(AWOner:PTForm;bSet:boolean=true); Stdcall; external 'Project1.DLL';
    procedure InserAR(Name:PChar;age:integer); Stdcall;external 'Project1.DLL';var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
        i:  integer;
        S:  array [0..1023] of char;
    begin
        _style_xpstyle(@self);
    end;end.
      

  2.   

    pdhAddCounter函数会根据你的输入自动选择采用哪个函数,所以不用担心,看一些其它类似函数的定义就知道,真正进行处理的是pdhAddCounterA和pdhAddCounterW,pdhAddCounter只是根据系统信息的一个define