본문 바로가기

Programming64

fopen 옵션및 예제 FILE *fopen(const char *filename, const char *mode); 위와 같이 fopen() 함수의 2번째 파라미터가 mode 스트링입니다. 파일을 어떤 모드로 열지를 결정하는 곳입니다. 이것은 볼랜드C++의 레퍼런스에 있는, mode 스트링 설명을 번역한 것입니다.r : Open for reading only. (읽기 전용으로 열기) w : Create for writing. If a file by that name already exists, it will be overwritten. (쓰기용으로 파일 만들기. 같은 이름이 있다면 덮어쓰기) a : Append; open for writing at end-of-file or create for writing if the fi.. 2013. 4. 1.
MFC 변환(CString,int,char) CString -> char * Cstring str;char *szstr = (lpstr)(lpctstr)str; char* -> cString CString str;str.format("%s",szstr) CString ->intCString str("123);int num = atoi(lpctstr(str)); operator LPCTSTR() const; CString -> doubleCString str("1.23");double num = atof(LPCSTR(STR));double CStringCString str;float num =.23;str.Format("%f",num); 2013. 3. 22.
CDockablePane에 Dialog 등록 CDockablePane에 Dialog 등록 CDockablePanel에 Dialog를 등록하여 사용할경우 컨트롤러를 직접 생성하는것보다 편리하다. 처리해야할 부분 기본적으로 CDockablePanel를 상속받아 Panel을 만들고 OnCreate 에서 다이얼로그를 생성하여 등록 하면되지만 부가적으로 해야할 처리들이 몇가지 존재한다. 1. 페널의 사이즈가 변경될시 다이얼로그의 사이즈도 변경해 줘야 한다.2. 페널이 포커스되면 다이얼로그에 포커스를 설정해 줘야 한다.3. 페널위 다이얼로그에서 마우스 오른쪽 클릭시에도 DockablePane Context menu (도킹관련 팝업메뉴)가 떠버려 다이얼로그를 가리게 되며 다이얼로그 위에서 마우스 왼쪽 클릭을 해도 사라지지 않는 문제점이 발생한다 이를 위해 Co.. 2013. 3. 15.
[MFC] OnCreate와 OnInitialUpdate의 차이점 OnCreate() 함수는 WM_CREATE 메시지에 대한 핸들러 함수입니다.즉, 어떤 윈도우 클래스가 윈도우로써 생성이 되면,시스템에 그 윈도우에게 "너 이제 윈도우가 됐어" 라는 의므로 WM_CREATE를 날려줍니다.그러면 OnCreate()가 실행되면서 윈도우가 되면 할 수 있는 것들을 하게 되죠. 반면 OnInitialUpdate() 함수는 가상함수 입니다. 즉, 메시지에 대한 처리 함수가 아니라는 것 입니다. View클래스의 내부로 들어가보면, OnInitialUpdate() 함수는 View가 윈도우로 생성된 후Document에 의해 호출 되게 됩니다. SDI나 MDI같은 프레임워크의 경우는 Document, View, Frame이 한꺼번에 생성되고 연관되어 동작하기 때문에, 서로가 서로의 상태.. 2013. 3. 15.
MFC 클래스간 통신 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.. 2013. 3. 15.
MMF(Memory Mapped File) 안녕하세요 mmf (Memory mapped file) 에대해서 알고싶읍니다 어디강좌같은것이 있으면 부탁드립니다 mmf를이용해서 파일을 열고 파일을 읽어서 가공하고 닫고 하는작업을 해야됩니다 저는 텍스트가 포함된 바이너리파일을 열고 텍스트단위로 읽어서 줄바꿈기준으로 줄단위로 내용을 추출해야됩니다 방법좀 부탁드립니다 보니까 MapViewOfFile이란함수가있던데여, 이함수의 리턴값이 뭔가여사용법 좀 알았으면 합니다 즐거운하루되세요 [답변-즐거운악몽님이 답변하신 내용입니다.] MMF(Memory Mapped File)이란 파일과 메모리 객체를 연결한다는 말 입니다...ㅡㅡ; 정말입니다...영문 그대로 생각하시면 됩니다...^^ 좀 더 풀어서 이야기 하면 파일과 메모리 객체를 연결 시킨 후 그 메모리 객체에 .. 2013. 3. 14.
MFC 교육 관련 사이트 일단 이런곳이 있네요?ㅎㅎㅎㅎㅎ시간날대마다 들어봐야겠습니다.http://msdn.microsoft.com/ko-KR/visualc/bb496952.aspx#mfcclasses 2013. 3. 8.
MFC SendMessage관련 Sendmessage에 대해서 간단하게 정리! 함수에 AfxGetMainWnd()->SendMessage(WM_COMMAND, ID_NEWPAGE);이딴식으로 쓴다.그리고메세지맵에다가ON_COMMAND(ID_NEWPAGE, &클래스명::함수) 요딴씩으로 쓰면 끝. MFC에서 버튼이벤트에 첫번째 에 쓴 AfxGetMainWnd()->SendMessage(WM_COMMAND, ID_NEWPAGE); 이 내용을 쓰게되면 메세지 맵에들어가서 클래스의 함수를 부르게 된다. 스트링 테이블에 이름을 등록하길 바란다.나는 ID_NEWPAGE라는 내용을 썻다. 2013. 3. 8.
MFC 경로가지고오기 그리고 자르기 char Path_buffer[256];char drive[256];char dir[256];char filename[256];char ext[256]; _splitpath(PathName,drive,dir,filename,ext);아오!!!!! 2013. 3. 7.
MFC 파일열기 CFile file;file.Open("filename",CFile::modeCreate|CFile::modeReadWrite);file.Write(쓸 내용,내용의 길이);file.Close(); 끝 이것만 알면됨~ㅋ 2013. 3. 7.
MFC tokenize 사용법 CString str;str = "*BEGIN Sol_Con! Problem titleSC00 KAERI TBM Safety TestSC00 GAMMA+ Rev00/Mod07hSC00 Circular Pipe ModelSC00 Prepared by Hyung Gon J";CAtlString resToken;int curPos= 0; resToken= str.Tokenize("% #",curPos);while (resToken != ""){printf("%s\n", resToken);resToken= str.Tokenize("% #",curPos);};fscanf대신에 string을 읽어올 일이 생겼을 때 쓰면 편리하다. 공백을 제외하고, 단어로 읽어온다. http://msdn.microsoft.com/e.. 2013. 3. 7.
MFC Doc에 접근하기. CMainFrame* pMain = (CMainFrame*)AfxGetMainWnd();CChildFrame *pChild = (CChildFrame *)pMain->GetActiveFrame();DrawViewDoc* pDrawDoc = (DrawViewDoc *)pChild->GetActiveDocument(); 도큐에 만든 변수를 접근 하려면 이런식으로 해야됨안하니까 ㅠㅠ 변수에 접근도 안되고 이상한 쓰레기값만 저장되고.. 이렇게 해서 변수들에 접근하고, 직렬화 할때 사용하면된다. 배열도 되고 2013. 3. 6.
MDI & SDI I. SDI의 각 클래스 포인터 얻기애플리케이션 클래스 포인터    CTestApp *pApp = (CTestApp *)AfxGetApp();메인 프레임 클래스 포인터    CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();도큐먼트 클래스 포인터    CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();    CTestDoc *pDoc = (CTestDoc *)pFrame->GetActiveDocument();뷰 클래스 포인터    CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();    CTestView *pView = (CTestView *)pFrame->GetActiveView(.. 2013. 3. 5.
MFC 확장자 만들기 1. 프로젝트에서 Resource View를 열어 String Table에 있는 String Table을 더블클릭한다. 2. 아래와 같이 문자열 관련 리소스 테이블이 나오는데 스크린샷에서 선택된 Caption처럼 문자열이 저장되어 있는 'IDR_프로젝트이름TYPE'을 선택한다. 3. 문자열을 주의 깊게 살펴보면 아래처럼 되어 있는 부분이 있다. (없을 수도 있다.) 여기서 파란색으로 드래그된 부분을 수정하면 된다. 첫번째 DAT 부분은 파일 저장 다이얼로그에서 파일 저장시 해당 파일 확장자에 대한 설명(아래 스크린샷)이고 두번째 .DAT는 실제 파일 확장자를 의미한다. 2013. 3. 5.
레지스트리 도킹윈도우 2012. 12. 18.
C++컨테이너 종류 퍼옴! 순차 컨테이너 (Sequence Container) vector : 벡터 (Vector) deque : 데크 (double ended queue) list : 리스트 (List) 컨테이너 어댑터 (Container Adaptor) stack : LIFO (Last in First out) 스택 queue : FIFO (First in First out) 큐 priority_queue : 우선순위 큐 (Priority queue) 연관 컨테이너 set : Set multiset : 여러 키를 가지는 set map : Map multimap : 여러 키를 가지는 map bitset : Bitset http://blog.newms.org/34 참고하면 좋을것 같다. 추가적인내용 2012. 10. 12.
함수포인터에 관하여 함수 포인터에 대해서 간단하게 정리 이런식으로 사용하면 함수가 많아질 경우 쉽게 정리하여 사용할 수 있을 것이라고 생각된다. #include int add(int a, int b); int sub(int a, int b); int mul(int a, int b); int div(int a, int b); void main() { int i; int a, b; char c; char op[] ={'+','-','*'}; int(*fun[])(int x, int y)={add, sub, mul};//함수 포인터 배열 printf("input (2EA):"); scanf("%d %d",&a,&b); for (i = 0; i 2012. 10. 8.
우분투 java설치 cobuntu 11.04에서는 그냥 sudo apt-get install sun-java6-sdk #sun-java6-plugin 하면 안된다.왜~~!!!!! 미러사이트가 없어서 추가를 해야만 재대로 설치가 되는 듯 싶다. sudo add-apt-repository "deb http://archive.canonical.com/ubuntu lucid partner" 이거로 미러 사이트를 추가해주고 sudo apt-get update로 사이트를 업데이트 해준다. 그 후에sudo apt-get install sun-java6-jdk #sun-java6-plugin java설치 ~!(용량이 많아서 인터넷 느리면 난감..) java -version 으로 설치확인 JAVA_HOME설정 /etc/bash.bashrc.. 2012. 4. 6.
tcp/ip 소켓 프로그래밍.우아한 종료. half-close를 해야하는 이유? 소켓은 반만 닫힌다? 스트림가 생기게 되면 한방향으로만 생기는것이 아니고 양쪽으로 생긴다. 그래서 반만 닫힌다고 생각하면 된다. close함수호출을 통해서 스트림을 종료하게 되면 문자열을 수신할수 없다. 소스이야기. 책에 있는 소스를 이야기하면 처음 기본적인 해더들을 추가하고 항상 써왓듯이 에러핸들링 함수를 써주엇다. 간단한 메인 문에서는 파일에 써야할 파일 포인터 하나와 핸들링 변수 2개를 선언을 해주고 문자열을 저장할 buf를 써주고 또 fread함수를 사용했을때, 읽어온 파일의 크기를 저장할 변수 read_cnt라는 변수를 지정하였다. server에서는 매번해왔듯이 주소정보를 저장하는serv_adr을 써주었고 fp파일포인터로 내가 코드작성할때 썻던 서버 c코드를.. 2011. 9. 1.
우분투 방화벽 sudo ufw enable 방화벽 켜기 sudo ufw disable 끄기 sudo ufw status 상태 보기 sudo ufw deny from ip 아이피차단 2011. 8. 17.