Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15913] Re:Re:잘되네요. 뭐가 잘못된건가요?
첫눈 [hadugo] 1786 읽음    2017-07-28 09:28
첨부해 주신 파일은 잘 됩니다.
어디가 잘못된건가요?
실행파일만 있어서....


빌더(TWx) 님이 쓰신 글 :
: 첫눈 님이 쓰신 글 :
: : 사용하고 있는 PC에는 그래픽카드가 2개입니다.
: : 하나는 내장그래픽으로 인텔이구요.
: : 나머지 하나는 nvidia GeForce GTX 560 SE입니다.
: :
: : 모니터는 당연히 560SE에 꼽혀있구요.
: :
: : OS는 Windows7 64Bit구요.
: :
: : 그래픽카드 온도를 측정하기 위해 다음과 같은 소스코드를 구글링하여 퍼왔습니다.
: :
: :
: : function NvidiaGpuTemp: Integer;
: : type
: :   NvCplGetThermalSettings = function(
: :     nWindowsMonitorNumber: UINT; 
: :     pdwCoreTemp, 
: :     pdwAmbientTemp, pdwUpperlimit: PDWORD): BOOL; cdecl;
: : var
: :   hNvcpl: Hwnd;
: :   GetThermalSettings: NvCplGetThermalSettings;
: :   dwCoreTemp, dwAmbientTemp, dwUpperlimit: DWORD;
: : begin
: :   Result := 0;
: : 
: : 
: :   hNvcpl := LoadLibrary('nvcpl.dll');
: :   if hNvcpl <> 0 then
: :     try
: :       GetThermalSettings := GetProcAddress(hNvcpl,'NvCplGetThermalSettings');
: :       if Assigned(GetThermalSettings) then
: :         If GetThermalSettings(0, Addr(dwCoreTemp), Addr(dwAmbientTemp), 
: :           Addr(dwUpperlimit)) then
: :         begin
: :          Result:= Integer(dwCoreTemp);
: :         end;
: :     finally
: :       FreeLibrary(hNvcpl);
: :     end;
: : end;
: : 
: : procedure TForm1.Button1Click(Sender: TObject);
: : begin
: :    ShowMessage(InttoStr(NvidiaGpuTemp));
: : end; 
: : 

: :
: : 그리고 nvcpl.dll은  그래픽카드 드라이버를 설치하면
: : C:\Windows\System32 폴더 안에 nvcpl.dll파일이 생성되어 그것을 사용하였습니다.
: :
: : 하지만 위 코드를 실행하면
: :   hNvcpl := LoadLibrary('nvcpl.dll');
: : 이 부분에서 에러가 발생합니다.
: :
: : 그래서 네이버에서 검색하여 어느 블로그에 올려진 64비트용 nvcpl.dll을 구하여 사용해 봤습니다.
: : 이러자 이번엔
: : GetThermalSettings(0, Addr(dwCoreTemp), Addr(dwAmbientTemp), Addr(dwUpperlimit))
: : 여기서 False가 반환됩니다.
: :
: : GPU-Z.exe에서는 이상없이 그래픽카드 온도를 가져오는데
: : 제 코드는 뭐가 잘못된건가요?
: :
: : 뭐가 잘못된 건가요?
: :
: :
: :
: :
: : 참고로 NVidia에서 제공하고 메뉴얼에는 다음과 같이 나와 있습니다.
: :
: : NvCplGetThermalSettings
: : Function
: : Prototype
: : BOOL CDECL NvCplGetThermalSettings
: :  (IN UINT nWindowsMonitorNumber,
: :  OUT DWORD* pdwCoreTemp,
: :  OUT DWORD* pdwAmbientTemp,
: :  OUT DWORD* pdwUpperLimit);
: : Parameters In UINT nWindowsMonitorNumber -- The display number shown on
: :  the Windows Display Properties->Settings page.
: :  A value of 0 indicates the current primary Windows display device.
: : DWORD* must be a valid pointer --
: :  pdwCoreTemp -- GPU temperature in degrees Celsius.
: :  pdwAmbientTemp -- Ambient temperature in degrees Celsius.
: :  pdwUpperLimit -- Upper limit of the GPU temperature specification.
: : Return Values True on success.
: : False on failure.
: :
:
:
: 답변:
:
:
: NVIDIA 그래픽 카드가 없어서 직접 확인은 해 볼 수 없습니다만...
: 파일 첨부하니 확인해 보세요.
:

+ -

관련 글 리스트
15911 그래픽카드 온도를 구하는 소스코드인데 에러가 납니다. 첫눈 1780 2017/07/27
15912     Re:그래픽카드 온도를 구하는 소스코드인데 에러가 납니다. 빌더(TWx) 2185 2017/07/28
15913         Re:Re:잘되네요. 뭐가 잘못된건가요? 첫눈 1786 2017/07/28
15914             Re:Re:Re:잘되네요. 뭐가 잘못된건가요? 빌더(TWx) 2001 2017/07/28
15915                 Re:Re:Re:Re:감사합니다. 첫눈 1942 2017/07/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.