운동하는 개발자/c++ (20) 썸네일형 리스트형 MFC] 프로세스에 연결할 수 없습니다. 지정된 파일을 찾을 수 없습니다. VS2005에서 실행 중인 프로세스에 디버깅을 하기 위해 "'디버깅->프로세스에 연결'을 사용하였는데 "프로세스에 연결할 수 없습니다. 지정된 파일을 찾을 수 없습니다." 라는 에러가 발생하였다다시 디버그파일을 옮겨보고 IDE를 껏다 켜보고 했지만 동일했고 원인은 바이너리가 C:\ 경로에서 동작중이였기에 관리자 권한이 필요한 것이었다.IDE를 껐다가 관리자권한으로 실행해 주고 다시 프로세스연결을 하니 정상적으로 연결되었다.VS와 C++은 유독 에러내용을 엉뚱하게 많이 보여주는거같다. C++로 Windows 환경에서 코드 동작 시간 체크 (feat. GetTickCount64의 오류) 코드를 작성하여 테스트하던 중 생각보다 속도가 느려서 어디서 시간이 딜레이되는지 확인해야 하는 경우가 종종있다. 기존 사내 프로젝트 전임자의 코드에서 GetTickCount64()를 쓴 흔적이 있길래 그대로 사용하여 로그를 찍어봤더니 대부분의 코드에서는 0ms으로 찍히나 일부 로그가 15~17ms로 찍히는것이 확인되었다. 대부분 같은 구간에서 찍혀서 해당 시간이 실제인줄 알았으나... GetTickCout64()는 IRQ(Interrupt Request) 즉 인터럽트 처리 시간이 발생하여 해당 로그가 찍힌것이였다. 이후 찾아보니 GetTickCout64()는 20ms이내의 수행시간일 경우 오차범위가 존재하였다. 나는 초당 60프레임의 비디오 데이터를 처리하는 로직을 테스트 중에 있었기에 16ms이내의 시.. Visual studio Stack overflow (Stack Reserve Size) 타 팀의 요구하상으로 간단한 툴을 만들어서 전달해 주려는데 특정 함수 진입 시 Stack overflow가 나면서 프로그램이 종료되었다. 그동안 경험에 의해서는 보통 호출하는 쪽에서 정리안된 메모리가 충돌한다던가 하는 문제였었기에 호출하는 쪽만 죽어라 찾아봤는데 아무리 봐도 원인을 찾을 수 없었다. 그래서 혹시나 싶어 호출 되는 함수에서 특정 기능들을 하나씩 지워가며 테스트해본 결과 char 배열의 선언을 지우니 정상작동했다. ?????????? GPT에서도 해당 코드는 문제가 없다고 하는데.. 찾아보니 visual studio에서 제공하는 stack의 크기는 디폴트로 1MB였던것이다 아래 예시코드처럼 작성하게되면 해당 에러가 발생하게 된다 이 설정은 프로젝트 옵션에서 Linker-> All Option.. Beakjoon] 절댓값 힙 구현하기 (백준 11286 코테) = 우선순위 문제주소 : https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 : 연산의 개수때문에 O(n^2의 연산속도의 알고리즘으로 해결하면 안된다. O(nlogn) 시간복잡도의 알고리즘으로 풀어야 하며 값을 입력받으면서 바로바로 조건에 맞게 정렬시켜야 한다. 우선순위 큐를 이용하되 순서의 조건이 까다롭기에 조건을 직접 알려줘야한다. 코드는 아래 숨김 더보기 #include #include #include struct MyQueue.. LNK2038: mismatch detected for ‘_ITERATOR_DEBUG_LEVEL': value ‘0’ doesn’t match value ‘2’ Visual studio를 사용하여 컴파일을 하다 다음과 같은 메세지를 접하게 되었다 찾아보니 참조하는 lib은 릴리즈로 빌드되어 있는데 메인 프로젝트인 exe는 debug로 빌드하려고 하면 발생한다고 한다 외부에서 가져온 lib이라면 디버그 혹은 릴리즈에 맞는 파일을 가져와서 추가하여 빌드해 주면 해결된다 https://learn.microsoft.com/en-us/cpp/standard-library/iterator-debug-level?view=msvc-170&redirectedfrom=MSDN _ITERATOR_DEBUG_LEVEL Learn more about: _ITERATOR_DEBUG_LEVEL learn.microsoft.com 나의 경우엔 한 솔루션 내에 여러 개의 프로젝트가 존재했는데.. CString to char* (UTF8) MFC의 CString을 사용하다가 서드파티 라이브러리라던가 Winapi를 사용하며 char*로 변환해야 하는 일들이 있다 이때 한글이 들어가 있다면 (char*)(LPCTSTR) 이런 강제 형변환으론 정상적으로 한글이 전달되지 않는다 대부분의 WinApi나 서드파티 라이브러리들은 UTF8을 지원하기에 이로 변환해줘야 한다 (물론 visual studio에서 디버깅하면 한글이 보이진 않는다) CString tempPath = L"c:\user\홍길동\temp"; char* transStr = CW2A(tempPath, CP_UTF8); boost::log 링크 에러 error LNK2038: mismatch detected for 'boost_log_abi': value 'v2s_mt_nt62' doesn't match value 'v2s_mt_nt6' in checklist.obj boost::log 사용 중 잘 작동하던 코드에서 기능을 추가하다 보니 갑자기 링크에러가 발생했다 1>utils.obj : error LNK2038: mismatch detected for 'boost_log_abi': value 'v2s_mt_nt62' doesn't match value 'v2s_mt_nt6' in checklist.obj 1>utils.obj : error LNK2019: unresolved external symbol "public: __thiscall boost::log::v2s_mt_nt62::attribute_set::attribute_set(void)" (??0attribute_set@v2s_mt_nt62@log@boost@@QAE@XZ) referenced in funct.. visual studio 2022 여러 블럭 주석 풀기 단축키 기본적으로 주석은 라인전체를 블록지정하거나 특정 범위를 지정해서 "Ctrl+Shift+/"를 누르면 주석 설정이 되고 풀린다 그런데 다음과 같이 주석이 공백라인을 포함하여 두 개 떨어져 있을 경우 전체를 블록지정해도 주석 해지가 되지 않는다 그때는 주석 제거 단축키인 "Ctrl+k+u"를 입력해 줘야 한다 쩝 다른 IDE는 그냥 됐었었는데 귀찮게.. 이전 1 2 3 다음