본문 바로가기
반응형

MFC90

[개발/MFC] HINSTANCE 구하기 1. hWnd를 알면, 그걸로 hInstance를 얻어올 수 있습니다. GetWindowLong / GetWindowLongPtr에서 GWLP_HINSTANCE 2. AfxGetApp() 를 통해서 App 의 포인터를 얻어온 다음에 m_instance 멤버변수 3. HINSTANCE hInst= GetModuleHandle(NULL); 콘솔에서 윈도 뛰울때 자주 씁니다. 4. HINSTANCE AfxGetInstanceHandle( ); 5. dll의 메모리를 이용한 HINSTANCE 구하기 종종 DLL 내부에서 window를 띄워야하시겠다는 분이 있어서 찾던중에 Detecting a HMODULE/HINSTANCE Handle Within the Module You're Running In 이라는 co.. 2011. 9. 20.
[개발/MFC] 중복실행 방지하기 [개발/MFC] 중복실행 방지하기 TCHAR szAppName[] = _T("sbrich"); HANDLE hMutex = NULL; bool IsSecondInstance() { bool isSecondInstance= false; hMutex= CreateMutex(NULL, NULL, szAppName); int iLastError = GetLastError(); if(hMutex && (ERROR_ACCESS_DENIED == iLastError || ERROR_ALREADY_EXISTS == iLastError)) { ReleaseMutex(hMutex); hMutex= NULL; isSecondInstance= true; } return isSecondInstance; } int main() .. 2011. 9. 20.
[개발/MFC] GetLastError(), System Error Codes (0-999) GetLastError()함수로 얻게 되는 에러코드로 아래으 에러코드에 대한 에러 메세지의 의미를 알 수 있다. **System Error Codes (0-499) The following table provides a list of system error codes ( errors 0 to 499). They are returned by the GetLastError function when many functions fail. To retrieve the description text for the error in your application, use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag. Table with 2 c.. 2011. 9. 20.
[개발/MFC] error LNK2001: "public: ... " ... 외부 기호를 확인할 수 없습니다. 위의 배너는 테스트 삼아 넣어본다. [개발/MFC] error LNK2001: "public: ... " ... 외부 기호를 확인할 수 없습니다. 비주얼 스튜디오 VC++ 개발을 하다가 보면 컴파일할 때 이런 에러를 자주 접하게 될 것 같다. 그냥 봐서는 뭐가 뭔지 모른다. 힌트로는 "외부 기호" 즉, include 된 것이 빠졌거나 프로젝트에 관련 함수선언과 정의가 포함되지 않아서 이다. 에러 메시지 중에 관련 함수가 있는 파일을 프로젝트에 추가하고 컴파일을 해보자. 에러가 해결될 것이다. 2011. 8. 26.
[개발/MFC] Stack around the variable 'variable' was corrupted. [개발/MFC] Stack around the variable 'variable' was corrupted. Run-Time Check Failure #2 - Stack around the variable 'variable' was corrupted. 위의 에러는 variable, 변수가 변수의 데이터 타입 크기가 불충분해서 발생하는 에러이다. 따라서 변수의 데이터 타입 크기를 요구되는 데이터 타입 크기로 변경하면 해결이 된다. 예를 들면, short int ==> long int WORD ==> DWORD 어려운 건 아니니 문맥을 분석해서 필요한 변수의 데이터 타입 크기를 지정하자. 2011. 8. 18.
[개발/MFC] 파일 쓰기, 파일 읽기, 파일 위치 찾기, 예외처리 파일쓰기 예제 void CFileioView::OnWritefile() { CFile Wfile; if(!Wfile.Open("TestFile.txt", CFile::modeCreate | CFile::modeWrite)) { MessageBox("Can't Create testfile.txt !", "Warning", MB_OK | MB_ICONHAND); return; } char* ps = new char[27]; char* ps2 = ps; for(int i=0;im_cause) { case CFileException::fileNotFound : MessageBox("File not found"); break; case CFileException::diskFull : MessageBox("Disk.. 2011. 8. 17.
[개발/MFC] 탭브라우저에서 ActiveX가 포함된 웹페이지 핸들 찾기 // 탭브라우저에서 ActiveX가 포함된 웹페이지 핸들 찾기 BOOL CALLBACK EnumIEServer(HWND hwnd, LPARAM lParam) { char szClassName[MAX_PATH]; GetClassName(hwnd, szClassName, MAX_PATH-1); HWND *phWnd = (HWND *)lParam; if(strcmp(szClassName, "Internet Explorer_Server") == 0) { *phWnd = hwnd; return FALSE; } return TRUE; } HWND GetIEPage() { HWND hIEServer = NULL; IServiceProvider* psp; hr = m_pWeb->QueryInterface( IID_IS.. 2011. 8. 10.
[개발/MFC] 자신의 파일경로 얻기, 자신의 경로 얻기 [개발/MFC] 자신의 파일경로 얻기, 자신의 경로 얻기 현재 실행중인 파일의 경로를 얻는 방법이 있습니다. 간단한 만큼 한 번만 알아두면 자주 사용되는 이 함수를 쉽게 사용할 수 있습니다. 기본적으로 파일명까지 포함해서 현재 실행중인 파일의 경로를 얻을 수 있습니다. 이렇게 파일을 포함한 FullPath에서 파일명을 제외한 경로만을 얻는 것은 추가적으로 함수를 사용해 주어야 합니다. 먼저 이들 함수를 사용하기 위해서는 다음과 가튼 include와 comment를 달아줍니다. #include #pragma comment (lib, "shlwapi.lib") 아래는 파일명 포함 전체 경로를 얻는 함수 입니다. const int MAX_SIZE = 255; char szPath[MAX_SIZE] = {0, .. 2011. 8. 8.
[개발/MFC] MFC가 제공하는 List Class - CStringList ■ MFC가 제공하는 List Class - CStringList ※ MFC 가 제공하는 List Class - 양방향 포인터를 가지는 이중 연결 리스트(Doubly-Linked List) - 리스트의 처음 부분을 가리키는 포인터(Head) 와 끝 부분을 가리키는 포인터(Tail)가 있다. 따라서 어느 방향으로든 순환하는 것이 가능하다. MFC가 제공하는 List Class ① 템플릿 클래스 (Template Class) ② 비 템플릿 클래스 (Nontemplate Class) ① 템플릿 클래스 (Template Class) - afxtempl.h 헤더파일 필요. - 원하는 종류의 데이터 타입을 프로그래머가 결정 - 비 템플릿 클래스가 제공하는 모든 기능을 구현할 수 있기 때문에 템플릿 클래스 사용을 권.. 2011. 8. 1.
반응형