2013-06-24 2 views
0

내 Qt 사용자 인터페이스에 아무런 문제없이 매 초마다 값을 표시하는 RealTime 응용 프로그램이 있습니다. 디스플레이, 프로젝트 충돌의 약 4 분 후 내 프로젝트는 파일 mlock.c내 프로젝트에서 잘못된 할당

void __cdecl _unlock (
    int locknum 
    ) 
{ 
    /* 
    * leave the critical section. 
    */ 

    LeaveCriticalSection(_locktable[locknum].lock); 
} 

문제가 될 것입니다 방법을 해결하기 위해 어떤 생각에 다음과 같은 섹션으로 향하고있다?

내가 메모리 한도라고 부를까요? 이 경우 4 분 이상 작동하게 할 방법이 없습니까?

나는 문제의 출처를 찾을 것이다

: 그것은 쓰여 :

Qt has caught an exception thrown from an event handler. Throwing 
exceptions from an event handler is not supported in Qt. You must 
reimplement QApplication::notify() and catch all exceptions there. 

편집 : 내 MAIN.CPP은 다음과 같습니다 경우

int main(int argc, char *argv[]) 
{ 
QApplication a(argc, argv); 
ex4 w; 
w.show(); 
return a.exec(); 
} 

내 벡터의 모두에 선언되어있다 ex4.cpp 파일. 내 벡터가 글로벌하다고 생각합니까?

답변

0

더 많은 코드를 게시 할 수 있습니까? 스레드를 사용하는 경우 멀티 스레드 문제이거나 메모리가 부족할 수 있습니다.

+0

예, 다중 스레드를 사용하고 있습니다. OpenMP에 대한 태그 (pragma parallel, sections ...)를 편집했습니다. 이 경우 프로젝트에서 프로세스를 제거 할 수 있습니까? – MelMed

+0

스레드를 사용하지 않고 빠져 나갈 수 있다면 더 좋을 것입니다. 그렇지 않으면 코드의 의심스러운 부분을 식별 할 수 있으면 여기에 코드를 게시하십시오. 따라서 누군가가 귀하를 도울 수 있습니다. –

+0

나를 위해 의심 스러웠던 것은 1000 가지의 7 가지 벡터의 선언입니다. 7 * 1000 * 2 포인터에 4 분을 곱하면 336K 포인터 주소를 제공합니다! – MelMed