달력

12020  이전 다음

  •  
  •  
  •  
  • 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
  •  

CSocket Class

C++ 2011. 2. 16. 13:29

먼저 소켓과 동기, 비동기식에 대해서 알아보자

CSocket Class는 동기 소켓이며 함수가 호출 됐을때 그 함수가 끝나기 전 까지 함수를 리턴하지 않고 블럭 상태로 기다린다.
Send를 하면 보내기를 완료 할때까지 다음 단계로 넘어가지 않는다.
때문에 직관적으로 이해하기 쉽고 적은 노력으로 큰 효과를 얻을 수 있다.

//설명 및 파일 첨부 출처 : http://mycpp.blog.me/120099007279
Posted by sukay

댓글을 달아 주세요

출처입니다 : http://mtjeaids.blog.me/70069847285


파일 입출력을 할 때 주소를 넘길때 사용해봤습니다.
간단하게 사용이 됩니다.

-  CString => const char*
CString FileName = _T("file.txt");
const char* Name;
Name = (CStringA)FileName;

- const char* -> CString
const char* Name = "test";
CString FileName;
FileName = (CString)Name;

CStringT type : Declaration
CStringA        : An ANSI charcter type string with CRT support.
CStringW       : A Unicode charater type string with CRT support.
CString          : Both ANSI and Unicode charcter types with CRT support

Posted by sukay

댓글을 달아 주세요

-1.@IND00

C++ 2010. 12. 14. 00:22

NaN, NAN, nan은 "not a number"라는 뜻으로 숫자가 아닌것을 의미합니다.
가끔 연산을 하였을 때 이러한 값이 나오는 경우가 있곤 하는데,
이 이유에 대해서 설명 하자면

1) 0.0000000000000000000000001과 같은 0으로 처리해 버리는 수로 나누거나 실수 연산에서 0.0으로 나누는 상황에 발생합니다.
해결방법은 저런 값으로 나누지 않으면 됩니다. 값을 수정해야 한다는 말이죠.
0.0으로 처리될 수 있는 상황에 대하여 적당한 값을 주고 오류만 없애 주고 연산된 값이 꼭 필요하지 않는 이상 버리면 됩니다.

2) NULL을 반환해도 0.0으로 표시되거나 에러를 표시할 수 없는경우에도 발생하며 sqrt(-1.0)을 연산하면 -1.#IND00이라는 값을 반환합니다.
float.h의 _isnan()을 이용하면 NaN이 반환되는것을 체크할수 있고, 정상적인 숫자라면 0을 아니라면 NaN을 반환하니 적당히 사용하면 될것입니다.



Posted by sukay

댓글을 달아 주세요

CFile Class - Write, Read

C++ 2010. 12. 11. 00:01


MFC에서 CFile Class로 읽고 쓰기 예제
FILE* 만 사용하다가 CFile 클래스를 처음 사용해 보았다.
'\n'이 안들어가서 찾아보니
'\r\n' 으로 사용하라는 말이 있어 사용해 보니 적용이 되었다.
이유는 아직 잘 모르지만 이번 과제 끝나면 CFile과 직렬화에 대해서 공부 좀하고 정리해 야겠다.
MFC를 배웠다면 당연하다는 자연스러운게 이럴때면 배우지 않은게  아쉽긴하다..

Posted by sukay
TAG CFile

댓글을 달아 주세요


프로그램을 구현하다 보면 데이터를 저장하기 위한 디렉토리 및 파일을 생성하는 경우가 많이 발생합니다.
파일을 다루는 경우 주로 FILE , CFile을 이용하여 파일을 다루곤 하는데
간혹 파일 및 디렉토리 생성과 삭제만 다룰 경우가 발생하고
따로 파일 포인터를 사용하지 않고 파일과 디렉토리 생성 및 삭제에 간편하게 사용되는 함수를 사용하곤 합니다.

헤더 파일 : #include <direct.h>
함수 명 :
mkdir(DirName)  -  디렉토리 생성 
rmdir(DirName)  -  디렉토리 제거
unlink(FileName)  -  파일 삭제

Posted by sukay

댓글을 달아 주세요


출처 : http://blog.naver.com/sseon_?Redirect=Log&logNo=130009212405

VC++ 6.0기반의 Matrix 관련 소스를 보다가 예제를 작성해서 테스트하는 중에

error LNK2001: unresolved external symbol __endthreadex

요런 에러가 나왔습니다.

간단하게
Project > Setting > General > Microsoft Fundation Classes > Use MFC in a Static Library를 선택하면 해결.
2005와 2008에서도 이런 셋팅문제 발생하곤하는데
찾아보면 고수들이 정리해놓은 블로그에서 간단하게 검색할수있어서 다행인거 같습니다. 잘쓸게요~

Posted by sukay

댓글을 달아 주세요

쓰레드를 돌렸다.

CWinThread *m_thread;
전역으로 선언하고
m_thread = AfxBeginThread(ManageThread, this, THREAD_PRIORITY_NORMAL); 
OnThreadStart 버튼 클릭 이벤트에 정의해주고
ManageThread에서 카메라를 통해 입력을 받는데..
입력은 오~ 잘 되네.....

근데 쓰레드를 멈추려고 하니
Unhandled exception at 0x75129617 in OpenCVFaceDetect.exe: Microsoft C++ exception: cv::Exception at memory location 0x053ef580..
이건 머지..
메모리 문제인거 같은데
멈춤 버튼에서 클릭 이벤트가 발생하면

OnThreadStop();
 쓰레드를 종료하고

WaitForSingleObject(m_thread->m_hThread, 1000);
 쓰레드가 완전히 종료 되길 기다린다..

왜 WaitForSingleObject에서 문제가 발생하지....
OnThreadStart()에서 WaitForSingleObject를 체크해 보면 잘되는데

여기에 사람들이 많이 오는건아니지만
혹시라도 하는 기대에
이글을 보게 된 초고수 형님..
OnBnClickedBtnThread2(void){
if(m_thread) {  
  OnThreadStop(); // 스레드 종료 후 종료
  WaitForSingleObject(m_thread->m_hThread, 1000);  
 }  
}
WaitForSingleObject에서 에러가 발생하는 이유가 먼지..
답을 좀 가르쳐 주시면 우리학교 식사라도..ㅠㅠ

=== 결국 답은 제가 찾았습니다...
쓰레드가 문제가 아니라 카메라에서 인식받을때
IplImage* image에서 메모리 공간이 해지되는 과정에서 발생하였습니다.. ㅠㅠ
Posted by sukay

댓글을 달아 주세요


이번에 진행하고 있는 작업 환경이 VS2008이라서 2005를 사용하다가 2008을 사용하고있다.
개인적으로는 2005가 더 좋은거 같다.. 왠지 모르게 더딘거 같다....

VS2008에서 컴파일을 하는경우 LINK : fatal error LNK1000: ~~~
요놈이 가끔씩 발생한다. 재컴파일하면 큰문제는 없이 되지만 간혹 뜨면 F5다시 누르기 귀찬타...

해결방법은 간단한 패치를 통해서 가능한데
패치후 몇번 컴파일을 해보니 아직까지 괜찬은 듯 하다.

아래에서 받아서 설치하면 된다.. 처음 설치할때 시간이 오래걸려 잘못 된줄 아랏더니.. 잘 설치되는 거였어..

링크  ↓↓↓↓
http://code.msdn.microsoft.com/KB948127/Release/ProjectReleases.aspx?ReleaseId=871

Posted by sukay

댓글을 달아 주세요

printf 항상 헷갈린다

C++ 2010. 12. 2. 01:59

C언어에서 printf를 이용한 데이터 출력시 출력 형식을 맞춰 주어야한다...
cout이 편한데.... 에혀..

암튼_ prtinf를 사용할 경우 자료형에 따른 출력 형식 모음 ↓↓↓



Posted by sukay

댓글을 달아 주세요


나는 주로 비쥬얼스튜디오를 사용하여 프로그램 소스코드를 작성하고 컴파일 하곤한다.
이번에 적을 내용은 Debug모드로 컴파일하고 디버깅 하다가
Release모드로 변경하여 컴파일한경우 Debug 모드에서는 잘되던 것이 오류가 발생하였다..
간단하게 찾긴 했는데

프로젝트 -> 속성
Use of MFC=> Use MFC in a Shared DLL을 Static Library로 변경하니
컴파일이 되넹  _

출처
http://www.winapi.co.kr/ApiBoard/content.php?pk=50421&table=tblqa
조상진님 감사해요
아래는 원문
Posted by sukay

댓글을 달아 주세요