운동하는 개발자 (195) 썸네일형 리스트형 c++ wstring to string / string to wstring 몇몇 오래된 API를 쓰다보면 유니코드 문자 타입을 써야 할일이 종종 있다 타입변환 방법은 여러가지가 있지만 최신 C++스럽게 변환해보자(작성당시 c++17버전 사용 + winapi사용안함) - wstring to string (LPCWSTR to LPCSTR) - string to wstring (LPCSTR to LPCWSTR ) #include std::string WstrToStr(const std::wstring& source) { return std::string().assign(source.begin(), source.end()); } std::wstring StrToWstr(const std::string& source) { return std::wstring().assign(source... c++ windows 디지털서명(코드사인) 유효성(신뢰성) 확인 특정 파일이 디지털 서명이 되어있는지, 코드사인이 신뢰 가능한지 확인 #include #include #include #include #include #pragma comment (lib, "wintrust") bool VerifyEmbeddedSignature(const std::wstring& source_file) { LONG lStatus; DWORD dwLastError; // Initialize the WINTRUST_FILE_INFO structure. WINTRUST_FILE_INFO FileData; memset(&FileData, 0, sizeof(FileData)); FileData.cbStruct = sizeof(WINTRUST_FILE_INFO); FileData.pcwszFile.. 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을 잘못.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 25 다음