메뉴상에서 notepad.exe를 notepad2.exe로 대체 할 것인지에 대한 메뉴를 추가 하였다.
일단 사용한 함수는 RegSetValueEx 이다.
기존에는 RegSetValue를 사용했었는데, 이 녀석은 Key , SubKey에 대해서 만 등록을 할 수 있지,
Value는 등록하지 못하므로 Value를 등록 할 수 있는 RegSetValueEx를 사용하게 되었다.
데이터는 위의 prototype를 보면 알겠지만,
"키,value name, 0, 변수 타입, value, 길이" 의 순서인데 reserved 값으로 0이 고정 되어 있다.
notepad2 프로젝트는 unicode로 되어 있으므로, 이에 대응하기 위해서 RegSetValueExW로 함수를 사용하였는데,
버그인지는 모르겠지만, len 부분에서 2배를 해주어야 만 제대로 value가 들어 가는 문제가 있었다.
2배라고 함은 unicode는 2byte 문자열이므로 이를 맞추어 주기 위해 2배가 된 것 같기는 하지만,
문자열이 unicode인데 길이만 따로 ascii 식으로 세어 준다는 것은 무언가의 문제가 있는 것으로 보인다.
그리고 prototype 상으로는 BYTE 타입의 문자열을 원하므로 Unicode 함수임에도 불구하고 warning을 출력한다.
[출처 : http://msdn.microsoft.com/en-us/library/ms724923(VS.85).aspx]
일단 사용한 함수는 RegSetValueEx 이다.
LONG WINAPI RegSetValueEx( __in HKEY hKey, __in_opt LPCTSTR lpValueName, __reserved DWORD Reserved, __in DWORD dwType, __in_opt const BYTE *lpData, __in DWORD cbData );
기존에는 RegSetValue를 사용했었는데, 이 녀석은 Key , SubKey에 대해서 만 등록을 할 수 있지,
Value는 등록하지 못하므로 Value를 등록 할 수 있는 RegSetValueEx를 사용하게 되었다.
RegSetValueExW(key1, L"Debugger", 0, REG_SZ, cmd, len * 2); |
"키,value name, 0, 변수 타입, value, 길이" 의 순서인데 reserved 값으로 0이 고정 되어 있다.
notepad2 프로젝트는 unicode로 되어 있으므로, 이에 대응하기 위해서 RegSetValueExW로 함수를 사용하였는데,
버그인지는 모르겠지만, len 부분에서 2배를 해주어야 만 제대로 value가 들어 가는 문제가 있었다.
2배라고 함은 unicode는 2byte 문자열이므로 이를 맞추어 주기 위해 2배가 된 것 같기는 하지만,
문자열이 unicode인데 길이만 따로 ascii 식으로 세어 준다는 것은 무언가의 문제가 있는 것으로 보인다.
그리고 prototype 상으로는 BYTE 타입의 문자열을 원하므로 Unicode 함수임에도 불구하고 warning을 출력한다.
--------------------Configuration: Notepad2 - Win32 Release-------------------- Compiling... Notepad2.c C:\cvsdown\np2src_VC6\src\Notepad2.c(2994) : warning C4133: 'function' : incompatible types - from 'unsigned short [264]' to 'const unsigned char *' Linking... Notepad2.exe - 0 error(s), 1 warning(s) |
[출처 : http://msdn.microsoft.com/en-us/library/ms724923(VS.85).aspx]
'모종의 음모 > Notepad2' 카테고리의 다른 글
notepad2가 졸지에 바이러스화? (2) | 2009.05.08 |
---|---|
Notepad2 컴파일을 위한 몸부림 - 6 (2) | 2009.01.04 |
Notepad2 컴파일을 위한 몸부림 - 5 (2) | 2008.12.29 |
Notepad2 컴파일을 위한 몸부림 - 4 (9) | 2008.12.28 |
Notepad2 컴파일을 위한 몸부림 - 3 (2) | 2008.12.26 |