운동하는 개발자 (193) 썸네일형 리스트형 fatal error LNK2019 getfileversioninfoa /GetFileVersionInfoSizeA 확인할 수 없는 외부 참조 윈도우 파일 버전 획득 기능을 c++로 구현하면서 winapi를 사용하였는데 빌드 중 위와 같은 에러들이 발생했다 #include 를 추가하였고 해당 함수들을 추적해보면 해당 해더 안에 있는 것도 확인되는데 왜 빌드 중에 fatal error LNK2019에러가 발생하는가 계속 윈도우 파일 버전 획득 방법들을 검색해보다 알게 되었는데 #pragma comment(lib,"version.lib") 이렇게 lib를 추가해줘야 하고 해더만 추가하는 방식은 MFC라이브러리에서만 되는 것으로 추정되었다 MFC를 사용하고 있지 않다면 위와 같이 추가해주면 빌드 중 에러가 발생하지 않는다 Android NDK를 이용하여 zlib 라이브러리 사용하기 나의 경우에는 크로스컴파일 환경에서 zlib 라이브러리를 통해 압축을 해제하는 기능을 추가하였다 https://zlib.net/ 내가 보려고 올린 아스키코드표 하도 검색해서.. 내가 보려고 올린 아스키코드표 크리에이티브 커먼즈 라이선스로 획득한 이미지 notepad++ 자동완성 선택 Notepad에는 기본으로 자동완성 기능이 있으며 사용한 적 있는 단어는 자동생성 기능으로 추천된다 이런 파일이 있는 경우 P만 적어도 이와같이 자동완성 기능이 있는데 이걸 처음에 앤터를 누르니 그냥 줄만 넘겨지기에 나는 매번 더블클릭으로 사용하거나 그냥 보고 따라 치거나 했는데 선택하는 방법은 방향키 위 아래로 선택할 단어에 커서를 보내고 TAP을 누르면 된다.. 리눅스 쉘이나 윈도우 커맨드를 자주 사용하면서도 TAP일 거라 생각 못하다니.. 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이상부터 정확히 판단하지 못하고 더 이상 .. 이전 1 ··· 8 9 10 11 12 13 14 ··· 25 다음