전체 글 120

Firefox 빌드!

개발 PC : Win 2008 R2, VS2010 SP1 준비물 : 1) Mozilla Build 툴, Firefox 소스 2) DirectX, Visual Studio 2010 3) Java SDK (+JRE) --------------------------------------- 준비 중 이슈 사항 1) DirectX Jun 2010 버전이 파일 복사 끝나고 S1023 오류 발생 -> VS2010SP1 에 포함된 Visual C++ 2010 Runtime 32/64비트 런타임 버전이 높아서 발생한다 임시로 그 둘을 제거하고 DirectX SDK 설치하고 다시 런타임을 설치하는 식으로 해결했다

Build Note 2013.03.20

Pipe 로 표준 출력 잡기

ffmpeg 등 command line 툴의 콘솔 출력을 잡기 위해선 pipe 를 이용하여 std-in, std-out, std-err 를 redirection 해야한다. redirection 은 fprintf(stdout)..., printf, fgets 등의 표준 I/O 의 목적지를 화면이 아닌 모(母) 프로그램이 받도록 도와준다. Win32 함수로 구현하기 위해선 CreatePipe, Duplicate, ReadFile, WriteFile, CloseHandle 함수를 사용해야 한다. 여러 프로그램을 pipe 로 연결시킨 경우 각각의 프로세스를 만들고 앞 프로세스의 output 을 다음 프로세스의 input 에 수동으로 넣어줘야 한다. 난 당연히 자동으로 되겠지 했으나 왜 그런지 에러만 났을 뿐이다..

Win32 , C++ 2012.08.27

MSSQL , 비밀번호 등 암호화 작업 기본!

1) 텍스트 -> 암호화된 텍스트 HashBytes('SHA1', '원본텍스트') 결과 : SHA1 암호화된 varbinary(20) 출력 유의사항 : 원본 텍스트의 데이터형을 정확히 파악해야한다 (n)char, (n)varchar 등에 따라 다른 값이 나온다. select SubString(master.dbo.fn_varbintohexstr(HashBytes('MD5', '궁시렁궁시렁')), 3, 32) 2) 암호화된 텍스트의 비교 where 문 등에서 그대로 비교하면 된다. 단 데이터형을 일치시켜줘야함을 유의 declare @A_ENC varbinary(20), @B_ENC varbinary(20), @C_ENC varbinary(20); declare @A nchar(10), @B nvarchar(..

기타 2012.08.22

WinHttp 로 Web Client 만들기

WinInet 함수가 윈도 서비스 등에 사용할 수 없음이 확인되면서, Microsoft 에서 권장하는 WinHttp 함수군으로 framework 코드를 만들었다. 요점 사항 WinHttpAddRequestHeaders - 헤더의 유효성(validation)을 체크한다. WinHttpSendRequest 에서 POST 인 경우 TotalLength 파라미터를 기록해줘야한다. TotalLength 가 실제 전송하는 데이터 길이 보다 길게 기록한 경우 WinhttpReceiveResponse 에서 15초 정도의 시간이 걸린다. 이는 서버측에서 timeout 시간동안 데이터를 더 기다리고 있기 때문에 발생한다. 개발 기준 : Visual Studio 2010 SP1, ATL, MSXML6

Win32 , C++ 2012.06.18

파일 맵핑을 이용한 파일 읽기

특징? 일단 로컬에서는 빠르다.. remote 파일이라면? 못해도 fread 등 보다는 빠르다 -_- 왜냐 미리 페이지 단위로 prefetch 를 하기 땀시/ 구현은 안했지만서도 Read 함수 외에 일종의 Lock 함수를 만들면 직접 메모리 접근이 가능하기 때문에 더 빠른 처리를 할 수 있을것 같다. 현재 구현 : read -> copy 최선의 구현 : read and process ! (버퍼의 공유)

Win32 , C++ 2012.05.02

NAFXCW.lib, libcmt.lib ~~~~ operator new

세상에서 제일 짜증나는게 콘솔 프로젝트 빌드했더니 1>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z)이(가) LIBCMT.lib(new.obj)에 이미 정의되어 있습니다. 1>nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z)이(가) LIBCMT.lib(delete.obj)에 이미 정의되어 있습니다. 1>c:\users\administrator\documents\visual studio 2010\Projects\2012\Release\mediaServer.exe ..

Win32 , C++ 2012.04.25