VB怎么把我的wsock32.dll代替system32目录下的wsock32.dll文件呢?

来源:百度知道 编辑:UC知道 时间:2024/05/23 11:48:33
我有一个wsock32.dll,复制到游戏的文件夹里,游戏就可以实现优先运行它文件夹里的.而不运行system32里面的wsock32.dll.但我想不复制在游戏的文件夹里.而打开我的VB程序就可以让游戏优先加载我的wsock32.dll,能做到吗,请给个原码.谢谢
就是不用复制到游戏目录里,也能让游戏调用我的wsock32.dll
满意的答案我加分

我把wsock32.dll捆在我VB的EXE里了.还怎么复制哦?我要代码哦,怎么让游戏指定加载我那个dll呢,放到别处也可以了,别放游戏文件夹里就行.谢谢我VB还不是很熟悉,不好意思

给你个思路,供参考:
把捆绑的wsock32.dll保存为一个同名文件,然后用regsvr32注册(Shell "regsvr32 /s " & App.Path & " \ wsock32.dll", vbHide
),这样游戏运行时就只能调用你的wsock32.dll了。

好像没阐述明白!尤其是后面说的!

看明白了:
如同ytbelwxg所说,这个做不到,因为你用的是微软操作系统+微软的开发工具。

原因:对于window操作下的DLL库文件,在加载时如没有指定目录(当然一般是不会指定,通常做法,你的游戏也是)下会遵循如下位置原则:
1..EXE文件目录
2.当前目录
3.system32目录
4.windows目录
5.系统相关环境变量的path。

上述目录找不到对应的DLL时,加载就会失败。
所以想按你的位置是无法实现的。
只能换位思考。比如:放到上述首要目录中(备份原来的dll,再考入你的dll)

这个恐怕做不到吧,不过我有个思路,你把wsock32.dll拷贝到vb做的软件里边,做个按钮,点一下复制就把wsock32.dll拷贝到程序里边,再做个删除按钮,点一下删除就把游戏里边的wsock32.dll删掉,这样可以吧!

以上,希望对你有所帮助!

备份原来的dll,再考入你的dll