본문 바로가기

분류 전체보기277

pointer new, delete, 지역 pointer 변수 오류 Pointer의 이름이 길거나 구조체 안에 있는 포인터일 경우 지역 포인터 변수를 만들어 임시 처리를 하는 경우가 있다. 이 때 오류를 범할수 있다. 예을 들어 A구조체에 char* b가 존재할 경우 우리는 사용을 할 때 A->b로 접근을 해서 사용을 한다. 이 이름이 길면 함수 안에서 임시 포인터를 만들어서 사용을 한다. char* temp = A->b; 위와 같이 하면 b의 포인터 주소가 temp와 같고 우리는 temp를 A->b를 대신해서 사용을 한다. 만약 A->b를 delete 하고 다시 new를 해야 하는 상황일 경우 어떤 일이 발생할까? char* temp = A->b; if (temp) delete temp; temp = NULL; 위와 같이 처리를 하면 A->b는 NULL이 될까? tem.. 2017. 3. 28.
WPF 문자열 포맷 정리 (String Format) 참조 문서: https://msdn.microsoft.com/ko-kr/library/dwhawy9k(v=vs.110).aspx https://msdn.microsoft.com/ko-kr/library/0c899ak8(v=vs.110).aspx 하도 잊어 버려서 MSDN 내용을 이곳에 저장했다. 매번 할 때마다 잊어버린다. ㅠㅠ ///////////////////////////////////////////////////////////////////////////////////// 표준 숫자 형식 문자열 표준 숫자 서식 문자열은 일반 숫자 형식의 서식을 지정하는 데 사용됩니다. 표준 숫자 서식 문자열은 Axx 형식을 취합니다. 여기서A는 서식 지정자라는 단일 영문자입니다. 공백을 포함하여 영문자가 두 개 .. 2017. 2. 10.
DLL, EXE 파일에 Version 정보 넣기 Resource 파일에 Version 폴더가 있다. ID: VS_VERSION_INFO 를 선택하고 관련 정보를 입력하고 빌드하면 된다. 매번 잊어서 기록을 한다. 2016. 10. 31.
CryptGetUserKey() 함수 이용시 에러 발생시 확인 방법 CryptGetUserKey() 함수를 이용해서 MS에서 제공하는 Key를 관리할 수 있다.이 때 잘 사용하다가 이유없이 에러가 발생하는 경우가 있다. 저장된 키에 문제가 발생했을 경우이다.https://msdn.microsoft.com/ko-kr/library/windows/desktop/bb204778(v=vs.85).aspx 위의 페이지에 MS에서 제공하는 Key Storage에 대한 정보를 확인할 수 있다. 이와 같은 문제가 발생하면 관련 Key가 저장된 폴더를 삭제하고 함수를 이용하면 문제가 해결이 된다. 일반적으로 RSA를 사용할 경우 아래 폴더를 삭제 한다. user/appdata/roaming/microsoft/crypto/rsa 2016. 9. 30.
unicode CString to char* MFC에서는 CString을 많이 사용을 하는데 정말 지원하는 함수가 적다.char*로 변경할 때 아래와 같이 처리를 하면 된다. char buffer[1024] = {0};CString m_str = _T("TEST"); memset(buffer, 0, 1024);strcpy(buffer, CT2A(m_str) ); CT2A는 ATL and MFC String Conversion Macros로서 MFC에서 제공하는 매크로이다.아래 링크를 들어가면 자세한 설명이 있다. https://msdn.microsoft.com/en-us/library/87zae4a3.aspx 2016. 9. 20.
MSVS 팀프로젝트 소스 다운로드 방법 MSVS Team Project를 처음 사용해서 너무 혼란스럽다.Git도 별로던데 SVN만 사용해서 그런지 다른 것은 너무 불편하다. SVN과 달리 checkout은 소스를 받아오는 기능이 아니다. 서버에서 소스를 받기 위해서는 "솔루션"을 선택하고 오른쪽 마우스를 클릭해서 "소스제어"를 선택한다."소스제어" - "특정 버전 가져오기" 메뉴를 선택하면 소스를 받아 올 수 있다. 위와 같이 진행을 한 후에 "특정 버전 가져오기"를 선택한다. 위와 같이 "최신 버전"을 선택하고아래 체크 박스에서 필요한 것을 선택한 후 "가져오기" 버튼을 누른다. 이렇게 해서 소스를 서버로부터 다운 받을 수 있다. 잊어버릴 것 같아 기록한다. 2016. 9. 20.
Windows 7 에서 프로그램 아이콘이 표시되지 않는 문제 해결 방법 Windows 7 에서 프로그램 아이콘이 표시되지 않는 문제 해결 방법 윈도우 버그로 업로드된 bat 파일을 다운 받아 "관리자 권한으로 실행"하면 아이콘이 정상적으로 표시가 됩니다. bat 파일은 메모장으로 아래와 같이 만들어 저장하면 됩니다. @echo offtaskkill /f /im explorer.exeattrib "%userprofile%\appdata\local\iconcache.db" -s -r -hdel /q "%userprofile%\appdata\local\iconcache.db"start explorer.exeexit 2016. 8. 24.
특정 폴더 파일, 하위 폴더를 삭제하는 함수 특정 폴더 파일, 하위 폴더를 삭제하는 함수 구현 void etDataBase::RemoveDir(CString strDir, BOOL bOnlyFile/* = false*/) { CFileFind finder; BOOL bWorking = TRUE; CString strDirFile = strDir + CString("\\*.*"); bWorking = finder.FindFile(strDirFile); while(bWorking) { bWorking = finder.FindNextFile(); if(finder.IsDots()) continue; if(finder.IsDirectory() && !bOnlyFile) RemoveDir(finder.GetFilePath()); else ::DeleteFi.. 2016. 6. 1.
std::string Split http://stackoverflow.com/questions/5167625/splitting-a-c-stdstring-using-tokens-e-g?answertab=votes#tab-top std::string을 split 하는 방법을 찾다가 이 방법이 가장 좋은 것 같아 글을 남긴다. 추후에도 많이 사용할 것 같다. #include #include #include using namespace std; int main() { vector strings; istringstream f("denmark;sweden;india;us"); string s; while (getline(f, s, ';')) { cout 2016. 4. 26.