如題 以前學做外掛的時候 用到了winio.dll
代碼基本抄的 當時程式做好 被抓住 號給封了 就沒做了
現在想做個腳本 把當時的程式翻出來 再運行時一直提示加載winio失敗
代碼是沒問題的 當初運行是良好的
但我重裝了系統 XP的 原來也是XP的
重裝之后就不能運行了
網上說要把winio的3個檔案放在system32下 然后運行 regsvr32 注冊winio.dll 但一直提示
“已加載 winio.dll,但沒有找到 DllRegisterServer 輸入點。無法注冊這個檔案。”
搞的人都暈了 求有經驗的高手解答
uj5u.com熱心網友回復:
winio.dll有哪“3個檔案”?regsvr32注冊dll,提示“已加載 winio.dll,但沒有找到 DllRegisterServer 輸入點。無法注冊這個檔案。”
一般來說,說明這個不是AcitveX dll,是不用注冊的(也不能注冊)。
應該是有匯出函式的dll,在VB6中用Declare宣告相應的匯出函式,代碼中進行呼叫。
也可以通過LoadLibrary、GetProcAddress,采用一定的手段實作動態呼叫。
uj5u.com熱心網友回復:
在一個 .bas 檔案中宣告:Declare Function MapPhysToLin Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysSize As Long, ByRef PhysMemHandle) As Long
Declare Function UnmapPhysicalMemory Lib "WinIo.dll" (ByVal PhysMemHandle, ByVal LinAddr) As Boolean
Declare Function GetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByRef PhysVal As Long) As Boolean
Declare Function SetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysVal As Long) As Boolean
Declare Function GetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByRef PortVal As Long, ByVal bSize As Byte) As Boolean
Declare Function SetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByVal PortVal As Long, ByVal bSize As Byte) As Boolean
Declare Function InitializeWinIo Lib "WinIo.dll" () As Boolean
Declare Function ShutdownWinIo Lib "WinIo.dll" () As Boolean
Declare Function InstallWinIoDriver Lib "WinIo.dll" (ByVal DriverPath As String, ByVal Mode As Integer) As Boolean
Declare Function RemoveWinIoDriv
uj5u.com熱心網友回復:
3個檔案是WinIo.sys (用于win xp下的驅動程式),
WINIO.VXD (用于win 98下的驅動程式),
WinIo.dll (封裝函式的元件)。
無需注冊。
uj5u.com熱心網友回復:
If InitializeWinIo = False ThenMsgBox "驅動程式加載失敗!"
Unload Me
End If '這是form load事件中的代碼
Public Declare Function MapPhysToLin Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysSize As Long, ByRef PhysMemHandle) As Long
Public Declare Function UnmapPhysicalMemory Lib "WinIo.dll" (ByVal PhysMemHandle, ByVal LinAddr) As Boolean
Public Declare Function GetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByRef PhysVal As Long) As Boolean
Public Declare Function SetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysVal As Long) As Boolean
Public Declare Function GetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByRef PortVal As Long, ByVal bSize As Byte) As Boolean
Public Declare Function SetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByVal PortVal As Long, ByVal bSize As Byte) As Boolean
Public Declare Function InitializeWinIo Lib "WinIo.dll" () As Boolean
Public Declare Function ShutdownWinIo Lib "WinIo.dll" () As Boolean
Public Declare Function InstallWinIoDriver Lib "WinIo.dll" (ByVal DriverPath As String, ByVal Mode As Integer) As Boolean
Public Declare Function RemoveWinIoDriver Lib "WinIo.dll" () As Boolean
'這是本身就有的模塊中的代碼
我認為代碼是沒有問題的 問題出在這幾次的重裝系統中 之前沒有重裝的時候程式是可用的 運行也是沒問題的
重裝之后就不行了。。。。
uj5u.com熱心網友回復:
會不會是需要“權限”,你要在IDE中運行,試下“以管理員身份運行”啟動VB6,再執行代碼。uj5u.com熱心網友回復:
已經是管理員權限了 個人電腦
uj5u.com熱心網友回復:
是直接以“Administrator”賬號登錄系統的?
如果是自己創建的“管理員”,沒有全部的權限,比“Administrator”的權限要低一截。
uj5u.com熱心網友回復:
是Administrator啊
不過不需密碼 上傳圖片失敗 不然我發圖給你看看
uj5u.com熱心網友回復:

這應該是管理員權限了 如果不是 還請樓上 再費心解答 謝謝
uj5u.com熱心網友回復:
哦,這是“最高級管理員登錄”的了。你這是WinXP系統的吧,網上下載的Ghost鏡像WinXP系統,幾乎都是直接啟用了Administrator登錄計算機的。
當然,你現在的“winio.dll加載失敗”我也就不清楚是何原因了。
uj5u.com熱心網友回復:
真的沒人可以解決這個問題嗎
uj5u.com熱心網友回復:
![]()
真的沒人可以解決這個問題嗎
我在網上找到一個WinIO 2.0的檔案。
試了一下,WinXP下這樣可以成功:
1. 系統System32放上一份 WinIO.dll和WinIO.sys;
2. 在“程式”所在的目錄中,同樣放一份 WinIO.dll和WinIO.sys 。
注意在IDE中運行時,你的 App.Path 具體是哪個路徑!
反正我這樣試的時候,應該是“成功”了的。
之前只放“程式”目錄,只放System32目錄,呼叫 InitializeWinIo( ) 是失敗的。
當“兩處放檔案”后,成功了……
然后,試了一下這個“運用”的代碼:獲取CPU溫度
http://bbs.eyuyan.com/read.php?tid=221625
不過唯有 GetPortVal( )執行失敗, 得到的值是 -1 (是否“埠號”不對?或硬體不支持了?)
那兩個“寫埠資料”的操作都是回傳1(TRUE,執行成功)的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/45279.html
標籤:非技術類
