본문 바로가기

운동하는 개발자

(181)
fatal signal SIGTRAP (NDK debugging error) 안드로이드 NDK연동 테스트 중 에러가 발생하며 앱이 강제 종료되었다 Fatal stgnal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x7 ~~~블라블라 뭔소린지 하나도 모르겠다 디버그 모드로 돌려보면 더 많은 정보가 나오려나 하고 디버그로 돌려봤다 이제 익숙한 함수명이 나온다 가상 상위의 콜스텍을 보면 GetExecutableName()이란 함수쪽에 문제가 있단걸 알 수 있다 확인해보니 C++ 네이티브 코드쪽에 ifdef으로 OS별 로직 분기를 해놨는데 안드로이드에서 return을 타는 로직이 없었기에 발생한 것이였다 간단하게 #else return 추가 후 해결 완료.. 간단한건데 참 JDK를 사용할 땐 에러코드 메세지가 너무너무 불친절하다 그래서 원인 찾는데..
DLL 명시적 링크 LoadLibrary failed 지정된 모듈을 찾을 수 없습니다 (GetLastError : error code 126) c++을 이용해서 명시적링크로 DLL파일을 LoadLibrary 로 읽어오는 작업을 했다 HINSTANCE hDLL; // Handle to DLL hDLL = LoadLibrary("MyDLL"); 핸들 인스턴스를 만들고 LoadLibaray를 호출 할 때 다른 폴더에 있는 DLL파일의 절대경로를 읽어와서 파라미터로 넣어주었는데 핸들은 계속 nullptr이였고 DWORD error_code; error_code = GetLastError();​ 위와 같이 GetLastError 를 호출 해 봤더니 126의 에러코드를 발생하고있었다 126은 모듈을 찾을 수 없다는 내용인데 해당 DLL파일의 절대경로는 윈도우 탐색기로부터 파일을 선택해서 넣은 값인데 이게 잘못될 수 없는데...? 다른 DLL을 읽어보니 정..
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일 거라 생각 못하다니..