![]() |
1
18
下面是一个不错的替代方法: 延迟加载 . 构建应用程序时,将其全部链接到原始DLL名称(但将原始DLL设置为延迟加载)。 然后根据客户请求部署重命名的DLL。
读这篇文章 Linker Support for Delay-Loaded DLLs 看看 Delay Hook example .
|
![]() |
2
16
使用LIB工具(包括在visual studio中)可以从def文件生成LIB文件。测量dll源不包括def文件,必须先创建一个。你可以用垃圾箱来帮助你。例如:
在输出中可以看到导出的函数的名称。现在创建这样的def文件:
@number是dumpbin输出中的序号
使用
现在您可以轻松地修改def文件,并在每次重命名dll时生成一个新的libfile。
可以使用dumpbin验证libfile:
|
![]() |
3
7
你的顾客喝醉了吗?世界上所有疯狂的需求中。。。 回到我的荣耀时代,作为一个梅毒疯子,午夜C++程序员,我曾经把我的DLL添加到我的.exe文件中作为资源。然后在启动时,我会将它们解包并写入exe目录。此时程序可以决定DLL文件名。真的要搞混淆了-从一个随机数开始,把一些爱德华·李尔的诗歌串接起来,用你最喜欢的德语双管名词异或;不管怎样,对初学者来说都应该这样做。然后使用LoadLibrary()加载DLL。
|
![]() |
4
5
|
![]() |
5
0
否则,库没有理由携带旧的DLL名称。 |
![]() |
6
-1
或者使用插件使用的相同方法。在程序集中有一个类实现一个接口,您可以在某个目录中的每个程序集中从应用程序中搜索该接口。如果找到了就把它扔了。当然,您不必混淆接口名称。 |
|
Guilherme Albertini · DLL中的类 7 年前 |
![]() |
Naomi · C#dll资源文件更改语言 7 年前 |
![]() |
AidanH · C#DLL语言翻译实现[关闭] 7 年前 |
![]() |
subham · DLL函数调用不工作 7 年前 |
![]() |
PixelThis · 为什么我的DLL要求我的程序有一个特定的名称? 7 年前 |
![]() |
nemo · DLL的“好”调用约定是什么? 7 年前 |