본문 바로가기

코드/c/c++39

c++ 코드 가이드 한글화 페이지 https://github.com/CppKorea/CppCoreGuidelines 2017. 12. 5.
GetCurrentDirectory 사용 현제 실행 중인 프로세스에서 자신의 실행 위치를 알기 위해 GetCurrentDirectory를 사용한다. 아래는 함수 원형이다. DWORD WINAPI GetCurrentDirectory( _In_ DWORD nBufferLength, _Out_ LPTSTR lpBuffer ); nBufferLength [에] 현재 디렉토리 문자열에 대한 버퍼의 길이 TCHARs . 버퍼 길이는 널 종료 문자를위한 공간을 포함해야합니다. pBuffer [OUT] 현재 디렉토리 문자열을 수신 버퍼에 대한 포인터. 이 널 (null)로 종료되는 문자열은 현재 디렉토리의 절대 경로를 지정합니다. 필요한 버퍼 크기를 확인하려면이 매개 변수를 설정 NULL 과 nBufferLength의 0 매개 변수를. 해당 함수는 현제 경로.. 2015. 12. 29.
OleRegGetUserType 사용 후 문자열 해제 BSTR을 이용하여 OleRegGetUserType(x,x,bstr) 을 호출 후 꼭 CoTaskMemFree를 사용하자. 실제 msdn에는 언급이 없지만 rectos의 OleRegGetUserType의 원형을 보면 HRESULT WINAPI OleRegGetUserType( 00651 REFCLSID clsid, 00652 DWORD dwFormOfType, 00653 LPOLESTR* pszUserType) 00654 { 00655 WCHAR keyName[60]; 00656 DWORD dwKeyType; 00657 DWORD cbData; 00658 HKEY clsidKey; 00659 LONG hres; 00660 00661 /* 00662 * Initialize the out parameter... 2015. 12. 15.
CreateFile MSDN 번역 파일을 생성하거나 기존파일이나 I/O 디바이스를 열기 위한 win32표준 함수 I/0 디바이스 : file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, pipe HANDLE WINAPI CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); lpFileNam.. 2014. 9. 2.
INI 섹션 이름 열거 하기 GetPrivateProfileSectionNamesW의 return 값은 저장 버퍼의 공간이 부족 시의 부족한 사이즈만큼에 대한 정보를 저장해주지 않는다. 그래서 GetLastErorr를 통해 ERROR_MORE_DATA 에러시 사이즈를 증가시켜 저장 버퍼 공간을 더 많이 할당해주어야 한다. DWORD len = 1024; int cnt = 0; WCHAR *buffer = NULL; int i = 0; do { buffer = new WCHAR[len]; memset(buffer, 0, len); cnt = GetPrivateProfileSectionNamesW(buffer, len, L"E:\\test.ini"); DWORD e = GetLastError(); if(e == ERROR_SUCCESS.. 2014. 8. 21.
파일 핸들에 대한 접근 경로 얻기 BOOL GetFileNameFromHandle(HANDLE hFile, WCHAR* lpwPath, DWORD ccSize) { BOOL bRet = FALSE; HANDLE hFileMap; DWORD dwFileSizeHi = 0; WCHAR ntName[1024] = {0,}; hFileMap = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 1, NULL); if(!hFileMap) goto $cleanup; PVOID pMem = NULL; MAPVIEWOFFILE_(pMem, hFileMap, FILE_MAP_READ, 0, 0, 1); if(!pMem) goto $cleanup; if(!GetMappedFileNameW (GetCurrentProce.. 2014. 8. 13.