'Programming/WinAPI / MFC'에 해당되는 글 3건

  1. 2010.10.01 [MFC] Thread안에서는 CSocket 클래스를 사용하면 안된다?! (4)
  2. 2010.04.27 memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여 (3)
  3. 2009.07.05 내가 비주얼스튜디오를 쓰게 되다니! (10)

[MFC] Thread안에서는 CSocket 클래스를 사용하면 안된다?!

이메일 보낼일이 있어서 코드 프로젝트에서 SMTP 코드를 배껴서 사용중이 었음

(원래 소스가 그렇게 되어 있었다오 -_- 쓰고 싶어서 쓴게 아님 ㅠㅠ

회사에서는 보통 c&p 디버깅 / 테스트가 일이라... 아 정말 싫다.)

그런데 이넘이 쓰레드 안아서 돌아가야할 필요가 있어서 않에 넣어서 사용하고 있는데

갑자기 뻑뻑 죽어버리는거임 - 아마도 MFC assertion? 에러 였던거 같은데...

디버깅 돌려보니깐 무슨 이름도 모르는 생판첨보는 MFC함수에 브포가 찍혀있고 -_-.....

함수스택타고 위로 올라가보니깐 CSocket.Create() 메소드 - 를 쓴 부분까지 올라오게 되더군여

이거 뭔소린가... 걍 싱글스레드 쓸땐 잘 작동하던 놈이 왜 이짓거리나...

분명히 그냥 socket은 thread-safe하다고 봤었는데 - 이상하다 -

그래서 구글링해 본결과 MFC버그라는 이야기도 있어서... 혹시해어 Create메소드만 고쳤는데

이렇게 하니깐 주소를 잘못참조했네 어쩌구 에러가.... 

그냥 그래서 (하라는대로?) 클래스에서 CSocket 멤버를 빼버리고

죄다  socket, send, recv, close 함수로 대체해버렸음 -_-...

-> MFC에서 Thread안에서 돌아가는 프로그램에서는 CSocket클래스를 쓰지말자??
(라고는 해도 아무리 봐도 그냥 땜질용 처방 같다 ;;; 원래문제는 따로 있을듯)

ps :  이부분에 대해서 좀 아시는 분은 댓글을. 뭐 자원을 더 할당하라 그런이야기는 있던...
Trackback 0 Comment 4

memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여

memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여
memset 과 ZeroMemory은 달라요. 바꿔서 쓰지마세여

IOCP 소스 작성중에 Zeromemory대신 memset 썼다가 작동안되었다는....


여태까지 "memset이나 Zeromemory랑 메모리 영역을 0로 초기화 해 주는것은 같다" 라고 알고 있었는데

그게 초기화 해주는게 뭔가가 좀 다른가 모양..

정확하게 이 둘이 하는기능이 어떻게 다른지 한번 살펴볼 필요성이 있겠다.

언젠가는 포스팅하겠지... 뭐 성질급하신 분은 구글링하면 바로 나올테니깐 구글링을....(어?)
Trackback 0 Comment 3

내가 비주얼스튜디오를 쓰게 되다니!

한 일주일전만해도 전 (경멸하던?!)MFC로 일할거는 생각도 못했는데.............

뭐 어쨋던 원래 만들어진 소스로 하는것이니까 어쩔수가 없네여

작년에 했는거 생각을 더듬어가면서 할수밖에....

하도 야매로 대충배워서 기억나는건 별로 없지만..... 기억을 더 오래남기기 위해서 정리.

디버깅
선택 + F1 MSDN
F5 디버깅/실행/다음단계로
Shift + F5 디버깅 중지
F7 빌드만
ctrl + F7 컴파일
F9 브포(브레이크 포인트) 걸기
F10 디버깅, Step (line)

에디팅의 간단한것
(복사, 붙여넣기, 잘라내기, 저장하기, 열기, 새로만들기, 검색하기, 대체하기,되돌리기,되살리기 ) 패스

클래스 마법사
ctrl + w

설정(setting)
alt + F7


아직은 초짜라서 이정도만 알아도 별 불편함이 없는것 같아요.. 게다가 GUI DEV툴이라서 그런지

단축키 기능이 상당히 허접(?) 한듯해요 메뉴봐도 단축키 없는게 수두룩함.... vim의 빠른 속력(?)을 필요해서

vs6  + vim이랑 연동을 해봤는데... 별로 안좋더군여 vim창도 따로 나오고... 그래서 일단 그냥 있는대로 쓸예정

글구 MFC랑 Winapi랑은 꽤나 달라서... 아나 이거 api로 할수 있음 편할텐데.. 하는것도 몇개 있음...

뭐 먹히긴하지만 그래도 MFC는 클래스니깐 클래스기준으로 찾아야해서 어떤클래스가 어떤기능을 하는지

다 알아야할텐데 이거 찾는게 정말 죽을맛.. 대체 한두개여야지... MSDN이 있긴하지만 워낙에 방대해서..



아아 나의 리눅이는 갈수록 점점 멀어져 ㅜㅜ
... some code here ....
Trackback 0 Comment 10
prev 1 next