STL 사용시 벡터 사용시 이런 에러가 났다

에러 코드 : IntVector.insert(&IntVector[3], 11)

해결방안:

 vector<int>::iterator t = IntVector.begin();
 advance(t, 3);
 IntVector.insert(t, 11);

advance()는 반복자를 지정한 숫자만큼 이동시켜주는 함수이다

Posted by 마블(이환문)

Run-Time Check Failure #2 - Stack around the variable '변수이름' was corrupted

사용자가 설정한 배열의 크기보다 더 큰것을 넣을려고 할때  위와 같은 에러가 발생

Posted by 마블(이환문)

소켓 프로그램을 따라하다보니 TRACE() 함수가 있었다....

TRACE가 어느 헤더 파일에 들어 있는지 몰라서 검색을 하였지만.. 

결과는 나오지가 않았다..

이는 #define으로 선언해줘야 했던 것이다

예전에는 이 방법으로 사용하였지만..

#define TRACE 1 ? 0 : OutputDebugString

요즘에는 이렇게 사용한다..

#define TRACE __noop

__noop는 인자를 모두 무시하는 기능을 한다고 한다

Posted by 마블(이환문)

HapticInit.obj : error LNK2005: "struct HINSTANCE__ * g_hInstance" (?g_hInstance@@3PAUHINSTANCE__@@A)이(가) Haptic.obj에 이미 정의되어 있습니다.

 

이미 다른 cpp 파일에 선언되어 있어서 나는 에러다

 

2005 에러는 변수, 함수, 클래스 등이 중복되어 선언되서 그런거다

Posted by 마블(이환문)

해결 방법:

프로젝트 속성 - 구성 속성 - 일반 - 문자 집합

이 곳에서 유니코드 문자 집합 사용을 멀티바이트 문자 집합 사용으로 바꾸어 주면 된다

Posted by 마블(이환문)

CreateWindow(RICHEDIT_CLASS, NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_READONLY,
     3, 54, 307, 320, hwnd, (HMENU)IDC_SAVE, hInstance, NULL);

visual C++ 7.0 , 8.0 버전에서는 RichEdit 2.0 이 자동으로 제공되는걸로 나와 있다...하지만 RICHEDIT_CLASS를 왜 못 찾는지 이해를 하지 못하겠다....

Richedit는 오로지 LoadLibrary 함수를 사용해서 로드해야 된다고 한다.

HMODULE hMod = LoadLibrary("Riched20.dll");

다음과 같이 로드한후 사용이 끝난 후에는

FreeLibrary함수를 사용해서 메모리를 제거해야 하다

FreeLibrary(hMod);
Posted by 마블(이환문)