MFC 클래스간 통신 SDI 형태 1. MainFrame 얻기 - CMainFrame *pFrame = (CmainFrame *) AfxGetMainWnd(); 2. App 포인터 얻기 - CTestApp *pApp = (CtestApp *) AfxGetApp(); 3. Document 포인터 얻기 - CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd(); CTestDoc *pDoc = (CTestDoc *)pFrame->GetActiveDocument(); - CTestDoc *pDoc = ((CMainFrame *)AfxGetMainWnd())->GetActiveDocument(); 4. View 포인터 얻기 - CMainFrame *pFrame = (CMainF..
이건 Visual Studio 2005 의 버그인듯 싶다. VS에서 DLL을 컴파일 하고 실행 할려면 Executable file을 아래와 같이 설정해 줘야 한다. 아마 한글로는 [디버깅 세션에 사용할 실행 파일의 경로를 지정하십시오] 쯤으로 뜨는 듯 싶다. 여튼 여기서 Executable file name의 path를 dll이 포함될 exe로 지정하면 좋은데.. 실수로 다른 파일을 지정했더니 도저히 다시 원래의 exe로 못 돌이키겠더라... No Debugging Information [디버깅 정보 없음] 이라면서 Debugging information for '**.exe' cannot be found or does not match. No symbols loaded. Do you want to co..
우선 DLL만드는건 아래처럼 하면 됨. empty project에 체크하지 말것. 체크하지 말아야지 DllMain까지 자동으로 만들어준다. 그리고 이제 아무 것도 건들지 말고 그냥 예제 써보자면 calc.c랑 calc.h를 만들고 각각 이렇게 입력한다. //calc.h extern "C" __declspec(dllexport) int add(int lhs, int rhs); //calc.c #include "stdafx.h" //요건 상황에 따라 써야할때도 있고 안써도 될 때도 있음. #include "calc.h" extern "C" __declspec(dllexport) int add(int lhs, int rhs) { return lhs+rhs; } 그리고 컴파일 하면 DLL파일과 lib 파일이 나..
CButton을 상속 받은 CMonitorButton을 하나 만들어서 버튼을 동적 생성 하기 위한 프로그램을 구현했다. CMonitorButton에선 오너 드로를 위해 DrawItem을 호출했고, OnBnClicked를 오버라이딩해서 자신의 nID값을 nSelectedMonitor 변수에 리턴해주었다. CMonitorButton을 생성하기 위해 다음과 같은 코드를 구현하였는데 for(int i = 0;i Create(strMonitorNum,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,rtMonitor[i], this,i); } 마지막 인자인nI..
보통 mfc는 선언부 파일(*.h)과 구현부 파일(*.cpp)을 나누어 놓는다. 선언부 class에서 static 멤버 변수를 선언하고 구현부에서 사용하려고 하면 Link시점에 에러가 난다. 예를 들어 다음과 같은 소스가 있다고 해보자 StaticSample.h (선언부) //StaticSample.h class CStaticSample { private: static int m_nNumofClass; public: CStaticSample(void); ~CStaticSample(void); static int GetNumofClass(void); }; StaticSample.cpp (구현부) //StaticSample.cpp #include "StaticSample.h" CStaticSample::CS..
이 글은 아래 링크의 내용을 발췌한 글 입니다. (http://technet.microsoft.com/ko-kr/library/cc700775.aspx) . . . UAC의 기본적인 형태는 간단합니다. 명시적인 Administrator 계정을 제외하고, 로그온 사용자를 일단 표준 사용자 권한(Users)으로 보는 것입니다. 기술적 표현으로는 Split Access Token(분리된 접근 토큰)이라고 합니다. Split Access Token은 모든 권한을 가진 보안 토큰을 생성한 후, 관리자 권한과 그룹을 뺀 다른 UAC 접근 토큰을 생성합니다. 이를 Linked Token이라고 합니다. Linked Token을 사용하던 사용자가 모든 권한이 필요한 경우, 이를 확인하는 절차를 밟은 후, 권한을 부여받게..
1. 더블 버퍼링에 대하여 더블버퍼링은 WM_PAINT에서 해주는 일을 간략화 시켜주기 위해! 다른 곳에서 미리 BITMAP에다가 다 그려놓고 WM_PAINT에서는 해당 BITMAP을 불러와주는 일만 해주도록 하는 것. MFC의 경우엔 CBitmap을 사용한다 클래스 내에 CBitmap m_BitmapBG; 뭐 이런식으로 하나 만들고 다른 함수 (예를 들어 고정 배경이라면 Init부분에서)에서 MemDC를 만들어 SelectObject로 m_BitmapBG를 선택한 후 그리기를 완료한다. 이 때 중요한 점은 CBitmap.DeleteObject()를 하면 안된다는 것! 이건 WM_DESTROY시에 해줘야 한다. 여튼.. m_BitmapBG에 그리기를 완료하고나서는 WM_PAINT에서는 m_BitmapBG..
- Total
- Today
- Yesterday
- jni강좌
- java
- AWS
- 리눅스
- driver
- Cloud
- C
- Troubleshooting
- algorithm
- 드라이버
- Visual C++
- C++
- source
- jni
- API
- gcc
- db
- android
- 프로그래밍
- 음악
- Quiz
- it
- NDK
- winapi
- MFC
- kering
- linux
- 안드로이드
- Python
- database
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |