이 문제는 매우 간단한 사실을 알지 못한채 생겼던 문제였다. 1개의 솔루션 내에 3개의 프로젝트가 있었다. 3개의 프로젝트 A_project ... C_project 라고 했을 때. A_project 에는 pragma comment(lib, "../lib/lua5.1.lib") B_project 에는 pragma comment(lib, "../loost/lib/loost.lib") C_project 에는 pragma comment(lib, "../lib/lua5.1.lib") 이렇게 작업 하던 중이였다. C 프로젝트로 컴파일 하는 과정중 B 프로젝트의 loost.lib 를 찾을 수 없다는 경고가 나왔다. 아무리 상대 주소를 생각해 봐도 B 프로젝트 입장에서 보면 ../loost/lib/loost.lib ..
연구실/파편화된 기록들 검색 결과
http://www.gamedev.net/community/forums/topic.asp?topic_id=453957 http://www.sysbug.com/bbs/board/view.php?no=11&mode=&list_num=&page=2&page_count_frist=1&select=&keyword=&brdCode=board2 http://fallsky4.springnote.com/pages/1333674 이 모든 경우를 종합해서 해결 했다. 쉽게 말한다면, WSARecv 의 5번째 파라미터인 플래그는 DWORD 의 포인터 만을 받아 들인다. 편하게 하기 위해서 상수 0 이나, NULL 로 주었을 때 10014 에러 코드를 반환 하게 된다.
#define _WIN32_WINNT 0x400 #include #include #include VOID CALLBACK APCProc(ULONG_PTR dwParam) { printf("APCProc callback\n"); } unsigned int _stdcall ThreadProc(LPVOID pParam) { printf("wait 2 seconds in child thread\n"); Sleep(2*1000); HANDLE hThread = (HANDLE)pParam; DWORD dwRet = QueueUserAPC(APCProc, hThread, (ULONG_PTR)NULL); CloseHandle(hThread); return 1; } int main(int argc, char* argv[..
우선 객체로 만들 경우의 장점은 1. 쓰레드의 생성과 소멸을 관리 할 수 있다. 2. 1의 장점으로, 쓰레드를 지역 객체로 다룰 수 있다. 3. 쓰레드 객체와 쓰레드에서 사용될 함수만을 따로 관리 하여 코드 정리 및 가독성을 극대화 할 수 있다. 4. 1.2.3의 장점으로 디버깅이 조금이나마 향상 된다. 실제 쓰레드가 종료 되어도, 쓰레드가 사용했던 값들을 보존 및 확인 할 수 있다는 것은 .. 아주 큰 매력이다. 제일 마음에 드는건 4번이다. .... 네트워크에서 디버깅이 어려운데, 쓰레드 때문에 더 어려운 디버깅을 조금이나마 향상 시킬 수 있기 때문이다. .. 현재 객체화된 쓰레드는 성공 하였지만, 객체화된 쓰레드의 인터페이스를 어떻게 구성해야 할지 모르겠다. 우선 사용자의 기준으로 인터페이스를 만드..
이번 항목은 RTTI 란 무엇인지에 대해서 살펴 본다. RTTI는 무엇인가? C++ 프로그래밍에선 Run-Time Type Information, or Run-Time Type Identification 약자로 "런타임 형식 정보" 기능을 뜻한다. RTTI 기능을 사용하기 위해선 컴파일러가 이 기능을 지원해야 하며, 비쥬얼 스트디오에선 프로젝트 속성이 "런타임 형식 정보 사용" 을 체크 해야만 한다. 이것은 클래스 및 함수, 기본자료 등 객체라 불리우는 모든 것에 컴파일러가 "아이디"를 부여하여, 기능이 구현되어졌다. 이 "아이디"는 type_info 객체로 구현 되어 졌으며, typeid 연산자를 통해서만, 생성 가능하다. 어떻게 typeid 를 사용 할수 있는가? 예제 코드 /* http://ikpi..
최근댓글