티스토리

무유 블로그
검색하기

블로그 홈

무유 블로그

mooyou.tistory.com/m

Make something out of nothing.

구독자
0
방명록 방문하기

주요 글 목록

  • Microsoft Visual C++ 2005 Service Pack 1 재배포 가능 패키지 설치 Window7 환경에서 Visual C++ 2005 재배포 가능 패키지를 설치하려고 하였을때 다음과 같은 오류가 나타났다.(Command line option syntax error. Type Command /? for Help.) 종래 해결 방법으로 설치 파일을 C:또는 D: 드라이브에 옮기고 나서 콘솔 창에서 "vcredist_x86.exe /t:c:temp" 와 같은 명령어를 사용하여 설치하려고 하였지만 이후에 창이 닫혀버리고 실제 설치되지 않는 문제가 발생하였다. 이곳 저곳으로 문제 해결점을 찾아보았지만, 딱히 해결 방법을 못찾아 다시 마소사이트에서 재배포 패키지를 검색해보니 Microsoft Visual C++ 2005 Service Pack 1 재배포 가능 패키지 MFC 보안 업데이트 버전이 .. 공감수 8 댓글수 6 2012. 9. 12.
  • MFC 버튼 마우스 커서 변경 간단한 코드 추가로 위 그림과 같이 버튼의 커서를 변경시킬 수 있습니다.변경하고자 하는 버튼의 컨트롤 변수를 만들고, OnInitDialog 함수에 다음과 같이 코드를 추가합니다. BOOL CTestDlg::OnInitDialog() { // 자동으로 생성되는 코드는 생략합니다. // TODO: 여기에 추가 초기화 작업을 추가합니다. // 버튼의 마우스 커서 변경 // (m_ctrlButton: 해당 버튼의 컨트롤 변수) HCURSOR hCursor; hCursor = AfxGetApp()->LoadStandardCursor(IDC_HAND); SetClassLong(m_ctrlButton.GetSafeHwnd(),GCL_HCURSOR,(LONG)hCursor); return TRUE; // 포커스를 컨.. 공감수 5 댓글수 0 2012. 6. 21.
  • fopen_s 파일읽기와 저장 fopen_s 함수를 이용하여 파일을 읽는 코드와 저장하는 코드입니다. // // fopen_s 파일읽기 // errno_t err; FILE *fp; if( (err = fopen_s(&fp, "file_path", "rt")) != 0 ) { AfxMessageBox(_T("File open error!")); return false; } fscanf_s(fp,"format", ...); // 사용법은 c의 scanf함수와 동일 fclose(fp) // // fopen_s 파일저장 // errno_t err; FILE *fp; if( (err = fopen_s(&fp, "file_path", "wt")) != 0 ) { AfxMessageBox(_T("File open error!")); return.. 공감수 7 댓글수 0 2012. 6. 14.
  • MFC 디렉토리 생성과 삭제 MFC코드 기반 디렉토리 생성과 삭제 코드 입니다. 디렉토리 삭제 참조: http://sanaigon.tistory.com/120 // // 디렉토리 생성 // 디렉토리 생성 성공: TRUE, 실패: FALSE 반환 // 함수 사용예: CreateDir(_T("C:\\dir_name\\")); // BOOL CreateDir(CString dir) { CFileFind file; CString strFile = _T("*.*"); BOOL bResult = file.FindFile(dir + strFile); if(!bResult) { bResult = CreateDirectory(dir, NULL); } return bResult; } // // 디렉토리 삭제 // 디렉토리내에 존재하는 하위 폴더 및 .. 공감수 5 댓글수 0 2012. 5. 25.
  • 뮤텍스를 이용한 프로그램 중복실행 방지 헤더파일: App Class (.h) // 뮤텍스 핸들 선언 protected: HANDLE m_hMutex; 소스파일: App Class (.cpp) #define STRING_MUTEX_NAME"뮤텍스 이름" #define STRING_CAPTION_NAME"프로그램 이름(Caption)" // // 생성자 뮤텍스 핸들 초기화 // CClassApp::CClassApp() { m_hMutex = NULL; } // // 프로그램 중복실행 방지 // CClassApp::InitInstance() { if(NULL == ::OpenMutex(MUTEX_ALL_ACCESS, FALSE, STRING_MUTEX_NAME)) { // 중복실행이 아니므로 뮤택스 생성 m_hMutex = ::CreateMutex.. 공감수 5 댓글수 0 2012. 5. 18.
  • 일정 날짜 기준 로그파일 제거 본 코드는 30일이 지난 로그파일을 삭제합니다.강조된 부분의 코드수정을 통해 제거 일정 기준을 변경시킬 수 있습니다. // // 폴더 경로 얻음 // CString GetFolderPath(CString path) { if(path.Right(1) == _T('\\')) { return path; } else { CString strFolderPath; strFolderPath = path.Left(path.ReverseFind(_T('\\'))+1); return strFolderPath; } } // // 일정 날짜 기준 로그파일 제거 // void DeleteLogfiles() { // 로그파일 형태 20111116.log // 30일 기준 로그파일 삭제 CTime CurTime = CTime::G.. 공감수 6 댓글수 1 2012. 5. 17.
  • 로컬 IP주소 얻기 로컬 IP주소를 얻을 수 있는 함수입니다.CString 타입으로 _T("xxx.xxx.xxx.xxx")와 같이 반환합니다. #include CString GetIPAddress() { WORD wVersionRequested; WSADATA wsaData; char name[255]; CString ip; // 여기에 lcoal ip가 저장됩니다. PHOSTENT hostinfo; wVersionRequested = MAKEWORD( 2, 0 ); if ( WSAStartup( wVersionRequested, &wsaData ) == 0 ) { if( gethostname ( name, sizeof(name)) == 0) { if((hostinfo = gethostbyname(name)) != NULL.. 공감수 4 댓글수 0 2012. 5. 17.
  • 유니코드 ↔ 안시 변환함수 VS2008을 사용하게되면서 UNICODE와 ANCI간의 스트링 상호변환 함수를 정리한 것입니다.프로젝트 문자집합 속성(유니코드, 멀티바이트)에 상관없이 변환 가능합니다. // // CString → Char // char* StringToChar(CString str) { char *szStr = NULL; #if defined(UNICODE) || defined(_UNICODE) int nLen = str.GetLength() + 1; TCHAR *tszTemp = NULL; tszTemp = new TCHAR[nLen]; memset(tszTemp, 0x00, nLen*sizeof(TCHAR)); _tcscpy(tszTemp, str); // Get size (실제사용되는바이트사이즈) int nSi.. 공감수 2 댓글수 0 2012. 5. 16.
  • 폴더선택 다이얼로그와 초기폴더경로 설정 // // 폴더선택 다이얼로그를 구현하기 위해 사용되는 사용자정의 Callback 함수 // int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { switch (uMsg) { // 폴더선택 다이얼로그의 초기화가 끝난 경우 case BFFM_INITIALIZED: SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData); break; } return 0; } // // 폴더선택 다이얼로그 // void SelectFolder() { ITEMIDLIST*pidlBrowse; WCHARpszPathname[MAX_PATH]; BROWSEINFOBrInfo; BrInfo.hwnd.. 공감수 2 댓글수 0 2012. 5. 15.
  • MFC Control 오픈소스 모음 리스트 컨트롤 : http://www.codeproject.com/Articles/1796/XListCtrl-A-custom-draw-list-control-with-subitem 버튼 컨트롤 : http://www.codeproject.com/Articles/1014/CxSkinButton 이미지 : http://www.codeproject.com/Articles/1300/CxImage 그리드 컨트롤 : http://www.codeproject.com/Articles/8/MFC-Grid-control-2-27 탭 컨트롤 : http://www.codeproject.com/Articles/84524/TabCtrl 프로그레스 컨트롤 : http://www.codeproject.com/Articles/420.. 공감수 4 댓글수 0 2012. 5. 13.
  • 3D 다이아몬드 제작년도 : 2006제작버전 : Visual Studio 6프로젝트 : 3D 다이아몬드팀 명 : Carpe Diem팀 원 : 김정수, 권기학, 김찬현, 안재훈 대학교 수업 프로젝트 과제로 제출한 작품이다. MFC를 한창 배울때이고 게임을 만들어본 경험이 거의 없던지라 팀원들과 고생고생 하면서 만든 기억이 난다.올린 버전은 풀 버전은 아니며, 풀버전은 게임 인트로, 네트워크 설정, 대화방, 멀티플레이 게임등 다양한 기능을 제공하는데멀티플레이 게임 부분을 그때당시 시간이 부족하여 미완성으로 남기게 되었다.단순히, 현재 버전에서는 개인 플레이만 가능하다. 당시 프리젠테이션을 했던 PPT 내용이다. 재훈이형의 하룻밤샘 결과로... 그때당시 PPT로는 쉽게 볼수없는 애니메이션을 구현해 보는이의 대부분을 놀라게 하.. 공감수 1 댓글수 0 2012. 5. 13.
  • MD5 Checksum 모듈 ‘미리컴파일된 헤더 사용하지 않음 ‘을 하지 않아도 되는 MD5 모듈이다. 사용법도 나름 편리한거 같고… MD5값이 PHP에서 제공하는 MD5값과 동일하다. (MD5결과값 확인) ※ 파일구성 MD5ChecksumDefines.h MD5Checksum.h MD5Checksum.cpp ※ 정의 static CString GetMD5(BYTE* pBuf, UINT nLength); static CString GetMD5(CFile& File); static CString GetMD5(const CString& strFilePath); ※ 사용방법 프로젝트 폴더에 파일을 복사하고 프로젝트 → 기존항목추가 → 위 3파일 전부선택 후 추가하고 다음과 같이 코드작성 // 헤더파일 #include "MD5 v1.2/M.. 공감수 2 댓글수 0 2012. 5. 13.
  • fscanf_s 주의사항 fscanf_s 함수를 통해 문자열(%s) 읽어올때 함수 마지막 파라미터로 케릭터 배열의 사이즈를 반드시 넣어주어야 한다! char szData[100]; memset(szData, 0x00, sizeof(szData)); fscanf_s(fp, "%s", szData, sizeof(szData)); fscanf_s(fp, “%s”, szData, sizeof(szData)); 이것때문에 한참 고생했다 ㅠ_ㅠ 공감수 13 댓글수 0 2012. 5. 12.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.