2010-02-11 86 views
0

我有一個使用標準NTSVC.OCX文件,以幫助管理所有NT服務功能的VB6服務。該應用程序已在Windows 2003 Server RC1上運行,沒有問題。我們的銷售團隊問我們是否可以將這個相同的應用程序放在可用作現場演示的筆記本上。我遇到的唯一問題是筆記本電腦是全新的,運行Windows 7,製造商只有設備的Windows 7驅動程序。NTSVC.OCX問題在Windows 7

此服務沒有安裝程序。我手動加載ocx並支持其他dll到各種Windows和System32文件夾中,然後從命令提示符下運行regsvr32以加載OCX。該服務具有一組命令行參數來安裝和卸載服務本身。

當我嘗試REGSVR32的OCX我得到以下錯誤:

模塊 「C:\ WINDOWS \ SYSTEM32 \ NTSVC.OCX」 加載失敗。確保二進制文件存儲在指定路徑或調試,以檢查二進制文件或相關.DLL文件的問題。指定的模塊無法找到。

回答

0

我先試試Dependency walker。如果這不能讓你知道你需要什麼,你可能是SOL。你也必須以管理員身份運行regsvr32,這樣你才能得到小UAC彈出窗口。

0

此OCX(一個還其它的OCX如vbwheelscollfix.dll)註冊IST非常容易。 第一步: 將此OCX複製到文件夾C:\ Windows \ SYSWOW64(在32位上,我懷疑它的SYSWOW32)。

第二步: 具有管理權限打開CMD。

最後一步: 現在你可以註冊/註銷從SYSWOW路徑的文件。

0

可能導致您的問題的一個潛在原因是NTSVC.OCX使用固定的基地址(換句話說,圖像已被鏈接器與/FIXED switch綁定)構建。從Vista開始,Windows加載程序使用Address Space Layour Randomization (ASLR) mechanism

基於此ASLR功能,Windows Loader會嘗試在另一個基地址加載OCX組件,而不是預定義的OCX組件(OCX圖像文件中的一個硬編碼)。由於你的OCX地址庫是硬編碼的,所以裝載器將無法加載你的OCX(這在技術上只是一個DLL!)。

見快照下面使用PeStudio表示NTSVC.OCX圖像的這些字段:在管理殼 :

​​

0

作爲ICH所述 REGSVR32 C:\的Windows \ SYSWOW64 \ NTSVC.OCX爲我工作。請注意\ System32沒有工作,因爲它給了我一個錯誤。不過,它可能在x86環境中工作。

我現在已經沒有錯誤在我的項目,但如果它工作正常,沒有嘗試。