본문 바로가기

운동하는 개발자

(181)
error C2143: 구문 오류: ';'이(가) 'namespace' 앞에 없습니다. 이 에러는 해더가 여러 번 호출될 때 발생하기도 한다고 한다 그땐 #prgram once 를 맨 위에 넣어서 중복 호출을 막아주자 나의 경우엔 해더 중복호출 문제가 아니었고 클래스에 코드를 추가하다 발생했다 해당 에러 내용을 visual studio에서 더블클릭해서 따라가 봤다 네..? list??? 실수로 세미콜론을 지우고 저장했나...? 의심했는데 해당 라인엔 아무 문제없었다 진짜 원인은 저 list를 include 한 cpp 파일 중 하나에 세미콜론이 빠졌던 것이다 그것도 list 선언이 아닌 부분에서...;; 너무 불친절한 에러 설명 엄한 데만 계속 찾아보게 되었다 참으로 친해지기 힘든 c++...
윈도우와 리눅스 바이트 값 차이 / AES_KEY 값 다름(feat. 엔디언) 최근 OpenSSL에 있는 AES암호화 작업을 개발 한 적 있다 AES암호화를 하기 전 키를 생성하는데 분명 같은 파라미터를 넘겼는데 OS에 따라 윈도우와 리눅스 환경에서 서로 다른값이 나왔다 (바이트단위로 로깅해서 확인) 여기서 왜 키가 다를까 하고 계속 멈춰있다가 그냥 디버깅을 이후까지 돌려봤는데 암호화 결과는 정상적으로 둘 다 똑같이 나오는걸 보았다.. 어떻게 다른 키로 암호화를 했는데 서로 같은값이 나오나 하고 값을 빤히 보다보니 뭔가 비슷하면서도 다른게 자세히보니 엔디언의 차이 였다 윈도우(ms build)에서는 리틀엔디언(Little endian)을 보여주고 있었고 리눅스(GCC)에서는 빅엔디언(big endian)으로 보여주고 있었다 하 진짜 별꺼아니였는데 뭘 잘못하거나 padding을 잘못..
cmake를 이용한 zlib 연동기 ( "dll이(가) 없어 코드 실행을 진행할 수 없습니다.") 아직도 윈도우 라이브러리에 대해 명확히 알지 못하고 있던 자신을 반성하며 압축 해제를 위해서 무료이며 가장 범용적인 zlib 라이브러리를 가져다 쓰기로 했다 http://www.zlib.net/
C++ 윈도우 방화벽 설정 / C++ windows firewall 복잡하게 윈도우 DLL을 이용하지 않고 간단하게 커맨드 명령으로 방화벽 설정이 가능하다 (당연히 관리자 권한 필요) Netsh 라는 명령어를 사용하는데 이게 윈도우 xp를 이후 버전과 이하버전의 명령어가 다르다 1. 윈도우 버전이 XP 이하인지 확인 bool IsWindowsMajor() { OSVERSIONINFO info; ZeroMemory(&info, sizeof(OSVERSIONINFO)); info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&info); return (info.dwMajorVersion >= 6); //윈XP보다 높은버전일 경우 True }​ * GetVersionEx는 윈8이상부터 정확히 판단하지 못하고 더 이상 ..
델파이 프로세스 실행 + 종료 기다리기 / Delphi Create Process and wait for close process 델파이에서 외부 프로그램을 실행시키고 그 프로그램이 종료대기까지 기다려야 하는 경우 사용법 (예: github에서 그렇듯 commit메세지를 입력받기 위해 메모장을 띄우고 해당 메모장 프로그램이 종료되길 기다리는 경우) string lExePath //프로그램 풀 경로 c:\work\notepad.exe lExePath := Trim(lExePath); //정확한 이유는 모르겠지만 공백이 없더라도 이 작업이 필수 if CreateProcess(nil, PWideChar(lExePath), nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo) then begin //정상적으로 실행했을경우 with ProcessInfo do begin WaitForSingleO..
SVN 서버 아이피 변경 시 윈도우 로컬 작업(TortoiseSVN) SVN의 서버 경로가 변경된 경우 - 각 프로젝트 별로 수동작업을 해주어야 한다(다른방법이 있는법도 같은데 못찾았다..) 1. SVN을 사용중인 LAS 아이피가 변경되었고 당연히 접근되지 않는다 2. 해당 svn프로젝트의 경로에서 우클릭 -> TortoiseSVN ->Relocate 선택 3. 변경할 아이피를 아래에 입력해준다 svn://[아이피]/[경로] 4. 한번 더 계정 인증을 해주면 정상적으로 사용가능하다 5. 모든 프로젝트에서 반복해서 작업한다.... (일괄 변경방법을 아시는분은 댓글부탁드립니다)
gitlab 서버 아이피 변경 시 윈도우 로컬 작업 GitLab의 서버 경로가 변경된 경우 - 각 프로젝트 별로 수동작업을 해주어야 한다(다른방법이 있는법도 같은데 못찾았다..) 1. GITLAB을 사용중인 LAS 아이피가 변경되었고 당연히 git push명령이 동작하지 않는다 2. 해당 프로젝트 폴더내에 숨김으로 되어있는 .git폴더를 들어가면 위와같이 config파일이 있다 이를 메모장으로 연다 3. 위와같이 url부분에 http://기존아이피/[경로].git 이라고 되어있는것을 신규아이피로 변경하고 저장해준다 4. 짜잔 정상동작 5. 나머지 모든 프로젝트도 작업해준다..... 일괄로 하는법 아시는분 댓글 부탁드립니다
VLC Player streaming delay "http debug: connection failed" 1. 문제 내용 로컬에 스트리밍 웹서버를 구축한 뒤 VLC로 streaming재생 시 로딩 속도가 상당히 오래 걸림 (팟플레이어, 곰플레이어는 정상) 2. 문제 추적 Windows VLC Player -> 도구 -> 환경설정 -> 설정 보기 전체 -> 고급 -> 기록 도구 -> 로그파일 생성 저장 후 다시 상황 재연 시 입력한 경로, 파일명으로 로그파일 생성 3. 로그분석 (VLC 로그는 타임스탬프가 없는 치명적인 문제점이 있다) http debug: outgoing request: GET /streaming/abc.mkv HTTP/1.1 Host: localhost:61946 Accept: */* Accept-Language: en_US User-Agent: VLC/3.0.16 LibVLC/3.0.16..