본문 바로가기

컴퓨터/디버깅32

지원되지 않는 작업을 시도했습니다. 다음과 같은 에러 메세지가 떴다(VC9) "지원되지 않는 작업을 시도했습니다." 라는 문구가 나타났는데, 이것은 주로 DDX 로 연결되어 있는 컨트롤을 삭제했을 경우, DDX로 연결하는 부분은 삭제가 되지 않고 남아 있을 때 발생한다. 즉, dialog-template 에서 resource editor 에서 컨트롤을 지웠으면 그 컨트롤에 연결된 DDX 부분이 코드에서 삭제되어야 함에도 불구하고 자동으로 삭제되지 않으면 DDX로 없는 컨트롤을 연결시키려 하기 때문에 위와 같은 에러가 발생한다. 따라서 다음과 같이 해결한다. 1. DDX로 연결하는 부분으로 가서 없어진 컨트롤과 연결시키는 부분을 없앤다. void CPerfusionCalculatorDLG::DoDataExchange(CDataExchange.. 2010. 4. 19.
unresolved external symbol 아마도 가장 자주 보이는 에러 중의 하나가 아닐까 한데, unresolved external symbol 이란, 말 그대로 그 의미를 알 수 없는(이해할 수 없는, 해결할 수 없는) symbol 이 발견되었다는 의미이다. 컴파일러에게 'unresolved' 란, 변수의 경우 아직 선언되지 않은 변수거나, 다른 곳에 선언되어 있는 변수라고 extern 키워드로 지정했지만 결국은 찾을 수 없었던 변수였을 경우, 또한 함수의 경우, 함수를 호출하는 곳이 있었기 때문에 일단 함수의 헤더를 이용해서 함수를 호출하는 부분은 메꾸어 놓았는데 막상 그 함수를 구현해 놓은 부분은 찾지 못한 경우를 의미한다. 환경: Visual C++ 9.0 (VS2008) on Windows XP SP2 IICGComponent.obj.. 2010. 4. 19.
Debug Assertion Failed! 이 메세지는 디버그 모드로 실행시켰을 때 ASSERT 구문이 실패했을 때 발생하는 메세지로, MS 측에서 가정한 조건을 만족시키지 못하는 것이 있기 때문에 더이상 작업을 진행할 수 없는 경우에 발생하곤 한다. ASSERT 구문은 디버그 모드에서만 동작하고 Release 모드에서는 사라진다. ASSERT 구문은 인자로 주어진 식이 참이면 그냥 지나가고, 참이 아니면 진행을 중단하고 디버깅 상태로 전환된다. 즉, ASSERT( buf != NULL ); 이라는 구문은 buf 가 NULL 이면 디버깅 상태로 전환되고, buf 가 NULL 이 아니면 다음 단계로 진행한다. ASSERT는 #ifdef _DEBUG ...?? #else ASSERT((EXPR)) #endif 과 같이 구현되어 있어 _DEBUG 가 .. 2010. 4. 19.
Iteration over non-sequence 다음과 같은 에러가 났다. (환경: CentOS, 언어: 파이썬) Traceback (most recent call last): File "./split_material_from_trial_no_01.py", line 54, in ? main(); File "./split_material_from_trial_no_01.py", line 47, in main for m in all_material_sorted: TypeError: iteration over non-sequence 다시 말하지만, 컴파일러(인터프리터)의 에러 메세지는 언제나 거의 정확하다. 에러 메세지를 이해해 보면 이렇다. 에러가 난 곳을 traceback, 즉 역추적해 들어 가는 과정이 나와 있는데, split_materia...py 파.. 2010. 4. 16.