在 Windows 上重命名 DLL
Posted
技术标签:
【中文标题】在 Windows 上重命名 DLL【英文标题】:Renaming DLLs on Windows 【发布时间】:2009-06-19 11:50:28 【问题描述】:我正在使用 Visual Studio 2003 在 Windows 上构建应用程序。
我的应用程序正在链接到第 3 方库 (Qt)。该库称为qtcore4.lib
,而dll 称为qtcore4.dll
。
我的应用程序是另一个基于 Qt 的应用程序的插件,它使用相同 qtcore4.dll 的不同版本。
不幸的是,我不能使用与主机应用程序相同版本的 Qt,所以我想如果我重命名我的 Qt 版本的 lib 和 DLL 是否可以工作,例如:
qtcore4_my.lib
qtcore4_my.dll
我猜qtcore4.lib是指里面的qtcore4.dll。所以我不确定这是否可行。
【问题讨论】:
【参考方案1】:您应该注意在同一个应用程序中使用同一个库的两个不同版本。
如果插件接口使用来自 QT 的类,那么您应该预料到潜在的讨厌问题(如崩溃)。
最简单的方法是重新编译qt并配置构建过程以生成其他名称的dll和lib文件。
【讨论】:
我删除了我的答案 - 这个更好 - 重新:重建 qt。尽管存在潜在问题,但它仍然是一个巨大的雷区...... 我同意你的看法 :)。还有一项漫长的任务。 我正在尝试这个。让我们看看运行时会发生什么:( 用不同的 dll 名称重建 qt,似乎工作正常。 对,但是一旦您将插件加载到应用程序中,我预计会出现可怕的符号冲突和其他可能导致灾难性崩溃的问题。以上是关于在 Windows 上重命名 DLL的主要内容,如果未能解决你的问题,请参考以下文章
如何在“GitHub 桌面”上重命名仅限本地的存储库 - 无需重命名存储库目录