首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

LoadLibrary是以二进制读取到内存吗。该如何解决

2012-02-01 
LoadLibrary是以二进制读取到内存吗。Private Declare Function LoadLibrary Lib kernel32 Alias LoadLi

LoadLibrary是以二进制读取到内存吗。
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long


LoadLibrary返回的是在内存的首地址吗。?

我想释放一个资源文件里的DLL,从资源文件里读取DLL到一个字节数组,能不能直接在内存里执行API.不想保存到硬盘让人发现。

[解决办法]
你看看我的博客,可能对你有帮助
http://blog.csdn.net/SupermanKing/archive/2008/09/28/2992218.aspx
[解决办法]
参考
[解决办法]
不是,返回的是 Handle
需要用 GetModuleAddress 获得地址。
[解决办法]

VB code
'Example Name:Call ProcedureCreate a new project and add this code to Form1Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As LongPrivate Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongPrivate Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As LongPrivate Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As LongPrivate Sub Form_Load()    On Error Resume Next    'KPD-Team 1999    'URL: http://www.allapi.net/    'E-Mail: KPDTeam@Allapi.net    'We're going to call an API-function, without declaring it!    Dim lb As Long, pa As Long    'map 'user32' into the address space of the calling process.    lb = LoadLibrary("user32")    'retrieve the address of 'SetWindowTextA'    pa = GetProcAddress(lb, "SetWindowTextA")    'Call the SetWindowTextA-function    CallWindowProc pa, Me.hWnd, "Hello !", ByVal 0&, ByVal 0&    'unmap the library's address    FreeLibrary lbEnd Sub
[解决办法]
可以动态调用API,这里就有一个(超级神豆的):http://topic.csdn.net/u/20110329/10/78f7baa9-d526-4a6f-8e23-6141d9bb76d3.html
[解决办法]
LoadLibrary 返回的就是地址,win32api中没有GetModuleAddress这个东西
[解决办法]
探讨
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long


LoadLibrary返回的是在内存的首地址吗。?

我想释放一个资源文件里的DLL,从资源文件里读取DLL到一个字节数组,能不能直接在内存里执行API.不想保……

热点排行