요새 회사에서 하고 있는 일이다.

Windows API와 MFC 6.0 으로...
일단 MFC를 평가하자면, 제대로 알고 쓰면 정말 막강한 도구다. 반면 객체지향이라는 패러다임에 썩 들어맞지 않는 모델을 기반으로 개발된것 같다. C++처럼 정말 flexible하게 사용할 수 있다는 장점 이외에는 그다지 소프트웨어 개발 too로써는 큰 장점이 없는것 같다. 예전에는 윈도우즈용 프로그램을 만들기 위해서는 최적의 도구였는지 몰라도 .Net이 나온 이상 MFC 6.0은 사라져야 한다고 생각한다...

MFC를 사용하면서 항상 느끼는 뭔가 정리되지 않은듯한 기분... Java에서 GUI를 프로그래밍을 처음 접할때 느낀 그런기분이랑 비슷하다... 다만 이제는 Java보다 더 조잡한 언어가 있다는 사실을 깨달았다...(개인적인 의견이니 절대 격분하시는 분이 없길 바랍니다)

Message Passing이라는 개념 자체를 잘 이해를 못해서 그런지, 참 어렵다...
C#으로 짜라면 어떻게든 짤 수 있을것 같은데 MFC로는 정말 모르겠다...
우리 회사에서 C#을 무서워 하는 이유는 윈도우즈를 업데이트 하여 .Net Framework를 설치 하지 않으면 돌아가지 않기 때문이다...
그런데 Windows를 업데이트하는것을 왜 두려워 하는지 모르겠다...
불법 복제품 쓰나???

아무튼... 지금 하려는게 Serial 통신으로 packet을 주고 받는 일이다.
PC의 입장에서 보면 RS-232로 연결된 디바이스에서 받을 수 있는 데이터의 종류는 두가지 종류이다...
한가지는 그냥 막 날라오는 정보...
다른 한가지는 PC의 요청에 의해 받아지는 정보...

Thread를 쓰지 않고 그냥 ReadFile 함수를 사용해서 직렬 포트를 내가 원하는 시점에 읽으면, 막 날라오는 데이터를 제때 읽지 못할것이고...
Thread를 써서 직렬 포트에 있는 데이터를 읽을 경우에는 PC에서 보낸 여러개의 요청을에 대한 response들이 올경우, 어떤식으로 구분해서 읽어야 할지 모르겠다.
전역변수를 사용해서 쉽게 할 수는 있을것 같지만 나는 전역변수를 증오한다...

어떻게 보면 쉬운 일일것 같은데 왜 이렇게 헤매고 있는지 모르겠다... 아무래도 MFC가 불편해서 그런것 같다. OVERLAP structure와 같은 개념도 이해가 잘 안가고... MSDN찾아가면서 해보고 있지만, 회사에서 주는 무언의 압력때문에 항상 쫓기는 기분에 집중도 잘 안된다...
아무튼... 나는 MFC를 싫어해 !!!

Posted by Dansoonie