CRegKey/SetValue 바꾸자

Computer/C, CPP 2019.09.12 14:58

디자인변환 프로그램을 만들일이 있어서 오랜만에 C++를 만지작 만지작 하던 중,

레지스트리에 저장된 값을 불러오고, 저장할 일이 생겼다.

 

그래서 생각없이,

예전에 많이 사용하던 그때 그 코드로 사용했다.

저장할때, SetValue를...

	CRegKey RegKey;
	RegKey.Create(HKEY_CURRENT_USER, "블라블라");
	RegKey.SetValue(nConversionEnabled, "이거블라블라");
	RegKey.Close();

그리고 빌드.

 

빌드.

 

빌드...

 

으움?

 

왜!!!!!!!! C4996이 뜨냐고!!!!!

 

 

그랬다.

또, 무언인가 고전틱한 고전고전의 느낌이라 취약점이 있겠지.

오버플로우가 생길수 있을려나...

 

바로 검색!

뚜뚱!

 

해당함수는

QueryValueEx , SetvalueEx 로 대체되었다고한다.

빠르게 바꿔야지!

 

https://docs.microsoft.com/ko-kr/windows/win32/api/winreg/nf-winreg-regqueryvalueexa

 

RegQueryValueExA function (winreg.h)

Retrieves the type and data for the specified value name associated with an open registry key.

docs.microsoft.com

LSTATUS RegQueryValueExA(
  HKEY    hKey,
  LPCSTR  lpValueName,
  LPDWORD lpReserved,
  LPDWORD lpType,
  LPBYTE  lpData,
  LPDWORD lpcbData
);

 

 

https://docs.microsoft.com/ko-kr/windows/win32/api/winreg/nf-winreg-regsetvalueexa

 

RegSetValueExA function (winreg.h)

Sets the data and type of a specified value under a registry key.

docs.microsoft.com

LSTATUS RegSetValueExA(
  HKEY       hKey,
  LPCSTR     lpValueName,
  DWORD      Reserved,
  DWORD      dwType,
  const BYTE *lpData,
  DWORD      cbData
);

 


맺음말

그냥 C#이 편하다.! 어쩔수 없었다.... 코드를 다 이식하기에는

'Computer > C, CPP' 카테고리의 다른 글

공용 언어 런타임 지원의 설정에 따라 빌드 결과값이 다르다?  (0) 2019.10.01
CRegKey/SetValue 바꾸자  (0) 2019.09.12
ReadFile()  (0) 2015.12.04
SetFilePointer()  (0) 2015.12.04
프로그램 종료  (0) 2015.10.13
하위폴더까지 전체 복사하기  (0) 2015.10.02
윈도우 버전 알아보기  (0) 2015.10.02
Windows Styles  (0) 2015.06.15
timeSetEvent 와 친구들  (0) 2015.06.02

댓글을 달아 주세요