본문 바로가기

MS/C++

Jsoncpp 사용시 문제점 jsoncpp를 빌드해서 static으로 사용 하고 있는데 release로 빌드 하면 아래와 같이 에러가 난다. ../lib_json/json_value.cpp : fatal error C1083: 컴파일러 생성 파일 파일을 열 수 없습니다. '../../build/vs71/release/lib_json/json_value.asm': No such file or directory 그렇다면 jsoncpp 라이브러리 빌드 시 구성속성 > c/c++ > 출력파일 > 어셈블리 출력 속성을소스코드로 구성된 어셈블리 (/FAs) --> No listing으로 변경후 빌드 해서 나온 lib파일로 적용 하자 더보기
_chkstk http://www.codeguru.com/cpp/v-s/debug/article.php/c19241/Adventures-with-chkstk.htm 더보기
libcurl-7.19.3-win32-ssl-msvc dynamic dll 0xc000007b 문제 나는 윈도우 순수 윈도우 개발자다. 오전 9시부터 오후 8시 까지 이거 하나 해결한다고 겁나게 삽질 했는데 이제 희망이 보인다. 문제는 뭐냐면.. libcurl을 사용 해서 basic이랑 digest인증을 적용 해 놨는데 SSL을 적용 하라는 거다... 근데 지금 내가 쓰는거는 SSL-disable버전이라 SSL이 적용 되어있는 다른 curl을 사용 해야 한다. 그래서 찾아보니 딱 한개 있었다. libcurl-7.19.3-win32-ssl-msvc 이버전이 유일하게 SSL 지원되는 windows용 library다.. 매번 open library를 갖다 쓰는 것이 편해서 쓰던대로 갖다 쓰는데 문제가 생겼다. 빌드는 되는데 쌩뚱 맞게 응용프로그램을 실행 할 수 없댄다.. 보통 이런경우에는 visual stu.. 더보기
curl - setopt 종류 http_send_message(char *msg_out, char **msg_in) { CURLcode res; CURL *curl; curl = curl_easy_init(); if (!curl) return -1; curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.1.133:8080/tawtaw"); curl_easy_setopt(curl, CURLOPT_USERNAME, "tawtaw"); curl_easy_setopt(curl, CURLOPT_PASSWORD, "tawtaw"); curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC|CURLAUTH_DIGEST); . . . curl_easy_cleanup(.. 더보기
CTreeCtrl http://blog.naver.com/blue7red/100090101271http://bleedmin.blogspot.kr/2012/04/ctreectrl_11.html 더보기
보호된 프로세스로 설정하기 출처 : Devpia(http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=8320&page=12) ntdll.dll의 RtlSetProcessIsCritical로 크리티컬 프로세스로 설정하거나 상태를 알아볼 수 있습니다. 위의 API를 사용하려면 Privilege 권한을 획득해야 되는데 아래 링크 참조 Enabling and Disabling Privileges in C++ [원문] Protecting Your Process [-] Collapse#include #include typedef LONG (*RtlSetProcessIsCritical) ( IN BOOLEAN NewValue, OUT PBOOLEAN OldValu.. 더보기
멀티바이트 --> 유니코드 (매크로) 출처 : http://blog.naver.com/pkban/130077881659 유니코드 환경에서는 #include 를 하고char은 TCHARLPSTR(char*) -> LPTSTRLPCSTR(const char*) -> LPCTSTR로 사용하면 된다.함수는 다음과 같이 변경하자strcpy -> _tcscpystrlen -> _tcslenstrcmp -> _tcscmpfopen -> _tfopenatof -> _tcstodatoi -> _ttoiatol -> _ttol 맨날 찾아 가기 귀찮아서 퍼옴[출처] 유니코드 환경에서 strcpy, atoi, atof 사용법|작성자 반사마 더보기
boost library 설치 방법 http://www.gilgil.net/7219 더보기
특정 Thread가 종료 되었는지 대기중인지 알수 있는 코드 출 : http://lunapiece.net/Article/879327 #include #include #include bool isThreadWaiting(HANDLE ThreadHandle){ bool Result = false; SuspendThread(ThreadHandle); CONTEXT ThreadContext; ThreadContext.ContextFlags = CONTEXT_CONTROL; GetThreadContext(ThreadHandle, &ThreadContext); INT_PTR* StackPointer = reinterpret_cast(ThreadContext.Esp); HMODULE DLLHandle = LoadLibraryA("Ntdll.dll"); INT_PTR WaitF.. 더보기
OpenMP 출 : http://blog.daum.net/pg365/205 요즘 PC들은 코어가 보통 4개에서 많게는 8개 까지 있는 CPU들을 장착하고 있습니다. 그런데 프로그래밍에서 전문적인 그래픽 도구같은게 아니면 대부분 단일 프로세서에 기반한 방법들을 사용하고 있죠. 즉, CPU 자원을 충분히 활용하지 못한 프로그램들을 만들고 있는데요. 저 또한 쓰레드 사용으로 인한 복잡한 동기화 관련 부분들에 대한 부담으로 인해 얼마전까지는 단일 프로세서 기반 프로그램을 선호하였습니다. 하지만 요즘은 키넥트와 같은 3D 스캐너에서 들어오는 대량 데이터를 실시간으로 처리하기 위해서 멀티코어나 GPU를 적극 활용할 수 밖에 없는 상황이 되었습니다. 멀티쓰레딩 프로그램을 쉽게 할 수 있도록 컴파일러 차원에서 지원하는 것으로 Op.. 더보기