달력

42024  이전 다음

  • 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

출처 : 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
|