Форум » [x]Harbour » Попытка MultiTread не удалась. » Ответить

Попытка MultiTread не удалась.

SADSTAR4: При компиляции в режиме МультиЗреед программа стала вываливаться на системную ошибку ["инструкция по адресу 0х0043e0f5 обратилась к памяти по адресу 0x00000000. Память не может быть "read"] Никаких Мультизридных команд не добавлял. Выпадает внутри Сишной функции, которая вызывает другую Сишную функцию API. [pre2]//----------------------------------------------------------------- HB_FUNC( WINSERVICERUN ) // WinServiceRun( <ServiceName>, <ServiceMain()>) { HB_BOOL bRetVal = HB_FALSE; SERVICE_TABLE_ENTRY lpServiceTable[ 2 ]; HB_TCHAR_COPYTO( s_lpServiceName, hb_parcx( 1 ), HB_SIZEOFARRAY( s_lpServiceName ) - 1 ); hb_strncpy( s_szHarbourEntryFunc, hb_parcx( 2 ), HB_SIZEOFARRAY( s_szHarbourEntryFunc ) - 1 ); lpServiceTable[ 0 ].lpServiceName = s_lpServiceName; lpServiceTable[ 0 ].lpServiceProc = ( LPSERVICE_MAIN_FUNCTION ) hbwin_SvcMainFunction; lpServiceTable[ 1 ].lpServiceName = NULL; lpServiceTable[ 1 ].lpServiceProc = NULL; if( StartServiceCtrlDispatcher( lpServiceTable ) ) bRetVal = HB_TRUE; else hbwapi_SetLastError( GetLastError() ); hb_retl( bRetVal ); } [/pre2] Как понять - на чем падает программа? Или придется в однопоточном режиме создавать хитрый цикл чтобы имитировать работу двух-трех потоков?

Ответов - 0



полная версия страницы