본문 바로가기

분류 전체보기

리눅스에서 도메인 포워딩 시키기.. CentOS 에서 서브 도메인 포워딩 시키기.. 123.123.123.123 를 공인 아이피로 두고내부망 192.168.0.1 ~10 까지 있을때.. test.mydomain.co.kr 은 192.168.0.1 로 연결test2.mydomain.co.kr 은 192.168.0.2로 연결..... 하고 싶을때 httpd.conf 를 수정.. #NameVirtualHost *:80 #을 지워주고 ServerName test.mydomain.co.krProxyRequests Off Order deny,allow Allow from all ProxyPass / http://192.168.0.1/ProxyPassReverse / http://192.168.0.1/ Order allow,deny Allow from.. 더보기
Protobuf-net vs 2012에서 사용자 빌드 하기.... https://code.google.com/p/protobuf-net/ 나 visual studio 2012에서 바로 NuGet으로 Protobuf-net 을 받았을때 공식 Protobuf-net 홈페이지를 보면 vs9나 vs10일경우 사용자 빌드로 빌드하는 방법을 제공해주고 있다...하지만 vs 2012일 경우엔 사용자 빌드가 되지 않고 수동으로 protogen을 이용해서 빌드를 해줘야 되는데... Protobuf-net 공식페이지에서 protobuf-net-VS10.msi를 받은뒤..http://pastebin.com/vhS9VgNZ 페이지에서 레지스트리를 복사한뒤 파일.reg로 저장한뒤 실행해주면 vs2012에서도 사용자 빌드를 사용할수 있다... 사용자 빌드 세팅은.. 레지스트리.. https:/.. 더보기
windows 8 에서 visual studio 관리자 권한으로 실행하기.. 윈도우8에서 visual studio 2012를 사용중인데..윈도우7에서는 관리자 권한으로 visual studioi를 실행했던거 같은데윈도우8에서는 사용자 계정으로 프로그램을 실행하다보니 uac문제도 있고 이것저것 귀찮은게 많이 있습니다... 구글링하다가 해결한 방법을 소개 드립니다.. http://daniellang.net/always-run-visual-studio-as-administrator-in-windows-8/ 더보기
#define 문법.. while, Singleton while 문을 사용하다보면 의도치 않게 기본적인 실수를 할때가 있습니다..그러다 잘못하면 무한루프에 빠지게 되는데... #ifdef _DEBUG #define WHILE WHILE_DEBUG #else #define WHILE while #endif // DEBUG #define WHILE_DEBUG(type) \ int __nCount = 0; \ while( type ) \ if(++__nCount > 100000) \ { printf("[FileName:%s][Func:%s][Line:%d]",__FILE__,__FUNCTION__,__LINE__); break; } \ else \ void main() { int nCnt = 0; WHILE(1) { ++nCnt; } printf("결과값 : %.. 더보기
visual studio 2012에서 gtest 컴파일시 std::touple 에러 해결방법.. vc11에서 google test나 google protocol 등... google 프로젝트등을 빌드하면 std::tuple 등의 에러가 나게 되는데그에따른 해결방법은. stdafx.h의 윗부분에다가#define _VARIADIC_MAX 10을 써주거나.. 프로젝트 -> 속성 -> C/C++ / 전처리기 -> 전처리기 정의에다가 _VARIADIC_MAX=10; 을 써주면 된다.. vc에서 사용중이 tuple이 표준안에 안맞아서 생기는거라고 하는데...2012 RC에서도 생기던 문제라 fix가 되어야 하는데 아직까지 안되고 있는듯... vs 2012(vc 11) 에 들어와서 기존에 tr1에 있던 tuple를 std에 포함시키면서tuple의 템플릿 갯수를 기본 5개(vc10과 boost는 10개)로 줄이면.. 더보기
tbb Visual studio 2012에서 빌드하기.. vs2010까지는 바이너리만 받아서 사용해도 됬었는데..TBB최신버전.. 2012/06/28일자 tbb 4.0 update 5 버전에는 vs2012에서 컴파일된 버전이 제공되지 않습니다...그래서 결국 직접 컴파일을 해야되는데...소스 받아서 직접 컴파일하면... OTL... 에러 발생!! 일단 std::copy_exception 관련 에러가 발생되는데 수정하는데 2가지 방법이 있습니다.. 가장 쉬운건..std::copy_exception 부분을 std::make_exception_ptr 이걸로 수정하는 방법과..프로젝트 속성 -> C/C++ -> 명령줄 -> 추가옵션 부분에 /DTBB_USE_CAPTURED_EXCEPTION=1 이걸 추가 하는방법... 둘중 아무거나 하신후 컴파일을 다시 실행하면..... 더보기
마샬링 마샬링 라이브러리네이티브 코드와 관리되는 코드를 함께 사용하기 위해서 가장 먼저 해결되어야 할 것이, 두 시스템 간의 데이터 타입의 마샬링이다. 마샬링 라이브러리는 두 시스템간의 타입을 마샬링 하는 코드 작성에 따른 복잡성을 줄여 주는 새로운 라이브러리를 제공하고 있다. 먼저 C++에서 사용되는 문자열 형식을 모두 지원해 준다.그리고 기본적으로 지원되는 변환 이외의 변환은 개발자가 직접 추가할 수도 있다. 아래의 예는 MSDN 아티클에서 제공하는 마샬링 라이브러리를 사용하여 System::String을 char *로 변환하는 간단한 소스를 보자.#include void myfunc (String^ s) { msclr::interop::marshal_context ctx; const char *s2 = c.. 더보기
c++과 c#과의 패킷 전송시 '\0' 널문자 해결방법.. 서버는 c++ 클라이언트는 c# 일경우 c++에서 TCHAR[10] packet; ZeroMemory(packet,sizeof(packet)); stringCchCopy(packet,sizeof(packet),_T("12345678")); 이런식으로 문자열은 packet이란 배열에 입력을 하게 되면. packet[8] 과 packet[9]에는 0 값이 들어있게 됨니다. 이걸 패킷으로 전송해서 c#으로 받아 string temp = Encoding.ASCII.GetString(packet); 이렇게 받게 되면. 결과값은 "12345678\0\0" 이렇게 출력이 됨니다... 이거 해결방법은 쉽게... string temp = Encoding.ASCII.GetString(packet).trim('\0'); 더보기
콘솔 윈도우 강제종료시 이벤트 처리하기 #include BOOL CtrlHandler(DWORD fdwCtrlType) { switch(fdwCtrlType) { case CTRL_C_EVENT: case CTRL_CLOSE_EVENT: case CTRL_LOGOFF_EVENT: case CTRL_SHUTDOWN_EVENT: case CTRL_BREAK_EVENT: default: printf("종료"); } return FALSE; } int _tmain(int argc, _TCHAR* argv[]) { BOOL fSuccess = SetConsoleCtrlHandler((PHANDLER_ROUTINE)CtrlHandler,TRUE); while(1) { } if(!fSuccess) { printf("종료2"); } return 0; } 자.. 더보기
boost 컴파일 하기 BOOST를 사용할때 보통 http://www.boostpro.com 에서 다운받아 사용하지만.. 요즘 업데이트를 안하기도 하고 x86 밖에 제공하지 않아서 직접 boost를 컴파일 해야 될 필요성이 있습니다. 1. 먼저 http://www.boost.org/ 에서 최신버전의 boost다운로드한다.. 2. 다운받은 파일을 압축풀고 bootstrap.bat를 실행시켜준다.. 그럼 b2.exe bjam.exe등...이 생성 된다.. 3. x86버전 필요시 visual studio 명령프롬프트 x64일경우에는 x64용 명령프롬프트를 실행시킨다. 4. 아래의 명령어를 x86/x64에 맞게 실행시켜준다 32비트용 bjam --toolset=msvc-10.0 link=static runtime-link=static.. 더보기