MFC
-
MSVCRTD.dll 충돌Window Programming/MFC 2008. 10. 30. 00:22
[출처] _CrtIsValidHeapPointer 에러|작성자 형기 Visual C++과 STL을 이용한 dll을 만들 경우 std::string 사용시 _CrtIsValidHeapPointer 에러가 발생하는 경우가 있습니다. 원인은 MS에서 제공하는 C Runtime Library (msvcrt.dll, msvcr70.dll, msvcr71.dll 등)의 버전을 다르게 쓰고있기 때문입니다. C Runtime Library의 버전에 따라서 CRT State와 Heap, file등의 정보를 같이쓰고 있어서 충돌이 생긴경우입니다. 이 경우는 프로젝트 전체에서 CRT dll을 사용하게 하든지, 아니면 각각의 crt상태를 가질 수 있도록 수정하여야 합니다. 간단히는 빌드옵션에서 /MD, /MDd를 사용해서 해..
-
[MFC]ShellExecute 예제Window Programming/MFC 2008. 3. 13. 17:46
보통 ShellExecute는 윈도우의 '실행' 창에서 내리는 명령과 비슷한 작업을 하지요.. 일단 폴더를 여는 방법은 다음과 같습니다. CString strSaveDir = _T("C:\\Temp"); // 여기에 열 경로를 받으면 되겠지요.. ShellExecute(NULL, _T("open"), strSaveDir, NULL, NULL, SW_SHOW); 위와 같이 하면 폴더가 열리지만, 폴더를 연 후 파일이 선택되게 하는 방법이 없을까.. 하고 찾아봤는데 찾기가 좀 힘들더군요.. 한참 찾아헤매다가 방법을 찾았습니다. 다음과 같이 해주면 되더군요. CString strPath = _T("E:\\test\\test.txt"); // 여기에 경로를.. ShellExecute(NULL, _T("open"..
-
[MFC]ShellExecute FunctionWindow Programming/MFC 2008. 3. 13. 17:42
출처 : http://msdn2.microsoft.com/en-us/library/ms647732.aspx ShellExecute Function 명세한 파일의 작동을 수행한다. Syntax HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ); Parameters hwnd [in] UI 또는 에러 메시지를 디스플레이 하기 위해 사용되는 소유자 윈도우에 대한 핸들. 작업이 윈도우에 연결되어 있지 않으면 이 값은 NULL이 될 수 있다. lpOperation [in] 이 경우에 verb로 참조되는 수행되어야 할 동작을 지정하는 n..
-
[Control] 스태틱 컨트롤 배경을 투명하게...Window Programming/MFC 2008. 1. 30. 05:20
스태틱 컨트롤중에 Text 기능을 이용하여 배경을 투명하게 만드는 것은 에디트 컨트롤에 비하여 훨씬 쉽다. 위의 샘플이 컨트롤의 배경을 투명하게 만든것인데.. 우선 글자가 써진 컨트롤의 아이디를 IDC_STATIC_1 이라고 변경한 후.. 코드를 다음과 같이 변경하면 끝이다. HBRUSH CSssDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); switch(nCtlColor) { case CTLCOLOR_STATIC: { if(pWnd->GetDlgCtrlID() == IDC_STATIC_1) { pDC->SetTextColor(RGB(255, 0, 0))..