我有如何調試使用regsvr32.exe進行的64位dll註冊過程?
註冊用Delphi XE2(I有更新3)內置64位DLL時運行時錯誤216在ADDRESS
。
從命令提示符下怎麼辦?(注:SYSTEM32文件夾中包含64位的EXE!)
c:\windows\system32\regsvr32.exe My64bitdll.dll
過了「DLL程序安裝成功的消息」 我有運行時錯誤。
我想調試註冊過程,以某種方式使用運行/參數/主機。
任何人都可以發佈正確的程序嗎?在其他一些問題,如this one提到一個錯誤,但它seems fixed now,我有一個比這個更舊的delphi構建。
更新: 也歡迎對RunTime錯誤的任何評論。
216是在SysUtils初始化之前初始化部分中的訪問衝突,217在SysUtils完成後的最終部分中是相同的。 –
@Marjan你說得對216.但不是217.看看System.pas。 217是'reControlBreak'。而'MapToRunError'將'STATUS_CONTROL_C_EXIT',又名'C000013A'映射到'reControlBreak'。 –
@DavidHeffernan:謝謝檢查。雖然在D5中,但我確信自己已經看到了AV'ing代碼生成的217。實際上,在完成SysUtils之後,仍然有可能在AV上得到217,因爲217在_UnhandledException和_ TABLE_BASED_EXCEPTIONS條件定義中被使用(硬編碼)。這在XE2中。在更多情況下,舊版本可能已經使用了217。事實上,在D2006it中,在_ExceptionHandler中使用了(hardcodedly),這意味着可能已經報告了任何ol異常。 –