Programing/C/C++2015. 12. 29. 10:34

xml을 파싱하다 한글이 제대로 나오지 않아서 조금 찾아보니

xml의 포멧은 UTF-8인데 ANSI로 바로 사용하려고 해서 제대로 나오지 않고 있었습니다

따라서 UTF-8을 ANSI로 변환해야 하는데 아래 코드로 변환이 가능합니다

리눅스의 경우에는 하나의 함수만 사용하면 된다고 하는데 윈도우에서는 아래 2가지 함수를 사용해야 합니다

MultiByteToWideChar, WideCharToMultiByte를 사용해야 하며


변환 순서는 CHAR *(UTF-8) --> WCHAR *(UTF-8) --> CHAR *(ANSI)의 순서로 해야 합니다

자세한 내용은 아래 코드를 확인 바랍니다



Posted by ratiel
Programing/C/C++2015. 9. 14. 23:08

RegCreateKeyEx 또는 RegOpenKeyEx 사용시 samDesired의 접근 권한에 KEY_WOW64_64KEY를 '|' 연산으로 반드시 추가해야 한다


대표적으로 윈도우 설치 시간을 구할 때

'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate'에 실제 값이 들어 있는데 wow64 프로세스에서 접근 권한에 KEY_WOW64_64KEY를 주지 않고 RegOpenKeyEx를 호출했을 때


'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate'의 값을 구하려고 하면 'HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\InstallDate'의 값을 구하게 된다. 해당 위치의 값은 0임


참고 사이트 : http://www.juce.com/forum/topic/registry-dword-and-binary-set/get

Posted by ratiel
Programing/C/C++2015. 9. 8. 11:20

논리 드라이브 문자로 물리 드라이브 번호를 구하는 코드.


자세한 내용은 코드의 주석 참조



Posted by ratiel