2010-11-19 5 views
1

(Windows XP의 경우) Borland C++ Builder의 프로그램에서 UnderC 라이브러리 (C++ 스크립팅 기능 제공)를 사용하려고 시도했으나 어떻게해야 할 지 잘 모르겠습니다. 고치다. 다른 문제가 생겨서 온라인에서 해결책을 찾았지만 쉽게 찾을 수있는 단어로 설명하기가 어렵습니다. 필자는 필요한 파일이 들어있는 폴더 (컴파일러 검색 경로에)를 추가했습니다. "ucdl.h"및 "ucc12.lib"(C++은 .lib를 coff에서 omf로 변환해야한다고 했으므로 그렇게했습니다. 그것은 나에게 그 오류를주는 것을 멈 췄다). #include "ucdl.h"줄을 추가했는데 이제는 오류 메시지가 나타나지 않습니다.하지만 실행하면 CPU 디버깅 창 중간에 멈추는 것입니다. 중단 점을 설정하십시오. 중단 점이 없습니다. 왜 멈추는 지에 대해서는 아무런 이유도 없습니다. 계속 실행하면 액세스 위반 오류가 발생합니다. 유용 할 수도 있고 그렇지 않을 수도있는 한 가지 - CPU 디버거에서 일시 중지 한 곳에서 한 줄을 백업하면 보이는 어셈블리를 다시 표시하고 그 전에 있었던 줄이 더 일찍 바이트를 시작하는 것으로 표시됩니다. 코드가 그것이 충돌 여기까지 오는데, 지금까지 내가 말할 수있는, 정지 곳에서 실행으로 는, 다음에,
__roundToInt64()에
___CRTL_VCL_Sharemem에
___CRTL_VCL_Init에서 (어셈블리 코드에) 간다 line :
00403204 FF25387B4000 jmp dword ptr [$ 00407b38]추가 된 라이브러리; 이유없이 Borland C++ Builder가 멈 춥니 다.

이 줄은 인접한 메모리 위치를 가리키는 여러 유사한 줄이 앞에 나옵니다. 포인터에 포함 된 주소는 0x00009B47이며 프로그램의 범위를 벗어난 것처럼 보이므로 오류가 발생합니다. 이 문제를 해결하는 방법을 모르겠다. 처음에는 오류가 발생하지 않았기 때문에 오류가 발생하지 않았고 오류가 발생한 위치와 관련된 소스 코드가 없었으며 오류가 발생한 것으로 보인다. VCL 초기화 영역에서 라이브러리를 추가하면 어떻게되는지 알 수 없습니다. 어떤 아이디어라도, 누구?

아, 또한 borlndmm.dll을로드 한 직후에 일시 중지 된 것처럼 보이지만 일반 프로그램은 더 많은 dll을 계속로드합니다. "

Thread Start: Thread ID: 3028. Process ManualEventLogger.exe (4932) 
Process Start: C:\Documents and Settings\Matthew\My Documents\Borland Studio Projects\Cantrips\Manual Event Logger\Debug_Build\ManualEventLogger.exe. Base Address: $00400000.  Process ManualEventLogger.exe (4932) 
Module Load: ManualEventLogger.exe. Has Debug Info. Base Address: $00400000. Process ManualEventLogger.exe (4932) 
Module Load: ntdll.dll. No Debug Info. Base Address: $7C900000. Process ManualEventLogger.exe (4932) 
Module Load: KERNEL32.dll. No Debug Info. Base Address: $7C800000. Process ManualEventLogger.exe (4932) 
Module Load: vcl100.bpl. No Debug Info. Base Address: $52000000. Process ManualEventLogger.exe (4932) 
Module Load: rtl100.bpl. No Debug Info. Base Address: $51F20000. Process ManualEventLogger.exe (4932) 
Module Load: OLEAUT32.dll. No Debug Info. Base Address: $77120000. Process ManualEventLogger.exe (4932) 
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $77DD0000. Process ManualEventLogger.exe (4932) 
Module Load: RPCRT4.dll. No Debug Info. Base Address: $77E70000. Process ManualEventLogger.exe (4932) 
Module Load: Secur32.dll. No Debug Info. Base Address: $77FE0000. Process ManualEventLogger.exe (4932) 
Module Load: GDI32.dll. No Debug Info. Base Address: $77F10000. Process ManualEventLogger.exe (4932) 
Module Load: USER32.dll. No Debug Info. Base Address: $7E410000. Process ManualEventLogger.exe (4932) 
Module Load: msvcrt.dll. No Debug Info. Base Address: $77C10000. Process ManualEventLogger.exe (4932) 
Module Load: ole32.dll. No Debug Info. Base Address: $774E0000. Process ManualEventLogger.exe (4932) 
Module Load: VERSION.dll. No Debug Info. Base Address: $77C00000. Process ManualEventLogger.exe (4932) 
Module Load: MPR.dll. No Debug Info. Base Address: $71B20000. Process ManualEventLogger.exe (4932) 
Module Load: IMAGEHLP.dll. No Debug Info. Base Address: $76C90000. Process ManualEventLogger.exe (4932) 
Module Load: WSOCK32.dll. No Debug Info. Base Address: $71AD0000. Process ManualEventLogger.exe (4932) 
Module Load: WS2_32.dll. No Debug Info. Base Address: $71AB0000. Process ManualEventLogger.exe (4932) 
Module Load: WS2HELP.dll. No Debug Info. Base Address: $71AA0000. Process ManualEventLogger.exe (4932) 
Module Load: OLEACC.dll. No Debug Info. Base Address: $74C80000. Process ManualEventLogger.exe (4932) 
Module Load: MSVCP60.dll. No Debug Info. Base Address: $76080000. Process ManualEventLogger.exe (4932) 
Module Load: MSIMG32.dll. No Debug Info. Base Address: $76380000. Process ManualEventLogger.exe (4932) 
Module Load: COMCTL32.dll. No Debug Info. Base Address: $5D090000. Process ManualEventLogger.exe (4932) 
Module Load: SHELL32.dll. No Debug Info. Base Address: $7C9C0000. Process ManualEventLogger.exe (4932) 
Module Load: SHLWAPI.dll. No Debug Info. Base Address: $77F60000. Process ManualEventLogger.exe (4932) 
Module Load: WINSPOOL.DRV. No Debug Info. Base Address: $73000000. Process ManualEventLogger.exe (4932) 
Module Load: comdlg32.dll. No Debug Info. Base Address: $763B0000. Process ManualEventLogger.exe (4932) 
Module Load: oledlg.dll. No Debug Info. Base Address: $7DF70000. Process ManualEventLogger.exe (4932) 
Module Load: borlndmm.dll. No Debug Info. Base Address: $21670000. Process ManualEventLogger.exe (4932) 

답변

0

좋아요 ... 제가 설정을 엉망으로했다, 나는 (.LIB 반대로) ucc12.dll의"프로젝트에 파일을 추가 "사용 후 점검 : 이벤트 로그를 보여줍니다 복사 로컬 ", 프로그램의 로컬 디렉토리에 파일을 복사 ... 그리고 프로그램은 그 시간을 잘 일했다. 그래서, 지금은 작동합니다 ...하지만 그게 왜 효과가 있었는지, 또는 이전에 아주 이상한 행동을 일으키는 것이 정확히 무엇인지 전혀 모르겠습니다. 아무나 그것에 대한 아이디어가 있다면, 나는 알고 싶어합니다. 하지만 최소한 프로그램은 작동하고 있습니다.

관련 문제