找回密码
 加入
搜索
查看: 3272|回复: 5

[系统综合] 如何返回某DLL中的字符串资源[已解决]

[复制链接]
发表于 2010-8-20 15:55:50 | 显示全部楼层 |阅读模式
本帖最后由 辣椒龙 于 2010-8-20 19:50 编辑

用ResHacker可以看到这些资源,以字符串形式保存于DLL之中,我知道它们的索引号。
有没有方法能像GUICtrlSetImage那样提供个DLL文件路径,索引号,就能读到这些字符串资源呢?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-8-20 15:57:15 | 显示全部楼层
不是很喜欢用 Extras\OtherEXE 目录下的 ResHacker.exe 觉得它体积太大了……
发表于 2010-8-20 15:59:44 | 显示全部楼层
 楼主| 发表于 2010-8-20 16:08:00 | 显示全部楼层
看到过:$LoadBitmap = DllCall("User32.dll", "hwnd", "LoadBitmap", "hwnd", $LoadLibraryA[0], "str", $sBitmap)
但是不知道我要用什么入口函数名……
还望楼上同学指点一二!
发表于 2010-8-20 17:26:45 | 显示全部楼层
LoadString
 楼主| 发表于 2010-8-20 19:49:06 | 显示全部楼层
多谢楼上,选来选去,还是选了 WinAPI.au3 中的 _WinAPI_LoadString
摘录一个简单的例子:
                $hInstance = _WinAPI_LoadLibraryEx("shell32.dll", $LOAD_LIBRARY_AS_DATAFILE)
                If $hInstance Then
                    $sText = _WinAPI_LoadString($hInstance, GUICtrlRead($hInput));GUICtrlRead($hInput)是资源序号
                    If Not @error Then
                        MemoWrite('获取的字符串(字符 : ' & @extended & '): ' & @CRLF & $sText)
                    Else
                        MemoWrite("最后一个错误信息 : " & @CRLF & _WinAPI_GetLastErrorMessage())
                    EndIf
                    MemoWrite(@CRLF & "成功释放了吗? " & _WinAPI_FreeLibrary($hInstance))
                EndIf
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-11 18:53 , Processed in 0.074678 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表