簡體   English   中英

增加了圖書館; Borland C ++ Builder無故暫停

[英]Added library; Borland C++ Builder pauses without reason

我一直在嘗試在Borland C ++ Builder(在Windows XP中)的程序中使用UnderC庫(提供c ++腳本功能),但是卻給我帶來了不確定的解決方法的麻煩。 出現了其他問題,我在網上找到了解決方案,但是很難用易於搜索的詞來形容。 我已經在編譯器搜索路徑中添加了包含所需文件的文件夾-“ ucdl.h”和“ ucc12.lib”(C ++告訴我我需要將.lib從coff轉換為omf,所以我做了;它不再給我那個錯誤)。 我添加了行#include“ ucdl.h”,現在它不給我任何錯誤消息-但是當我運行它時,它要做的第一件事是停在cpu調試窗口的中間,就好像我已經設置一個斷點。 沒有斷點。 它沒有給出任何停止原因。 如果我讓它繼續運行,則會給我一個訪問沖突錯誤。 可能有用或可能無效的一件事-如果在cpu調試器中我從暫停的位置備份了一行,它重新解析了可見的程序集,然后顯示該行所在的行早於一個字節開始。 據我所知,代碼從停止的地方開始運行,直到崩潰的地方,它從匯編代碼中
___CRTL_VCL_Init進入
___CRTL_VCL_Sharemem進入
__roundToInt64(),在以下行:
00403204 FF25387B4000 jmp dword ptr [$ 00407b38]

此行之前和之后是許多相似的行,指向相鄰的內存位置。 指針包含的地址是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)

好的...我搞砸了設置,我在ucc12.dll(而不是.lib)上使用“向您的項目添加文件”,然后選中“復制本地”,將文件復制到程序的本地目錄...程序在那個時候運行良好。 因此,它現在可以工作了……但是我仍然不知道為什么它可以工作,或者究竟是什么導致了以前非常奇怪的行為。 如果有人對此有任何想法,我很想知道。 但是,至少該程序現在可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM