如何复制/替换 DLL?

2024-02-29

我有一个实用程序,可以通过简单地复制/替换可执行文件来更新应用程序。现在,我有一些 DLL 文件也需要更新。然而,有时 Windows 不会让我替换它,因为有东西正在使用它,有时有太多东西使用该 DLL,我无法保证它会被解锁以供我替换它。

目前,我唯一的解决方法是首先重新命名现有的 DLL,然后我可以将新的 DLL 复制到其位置。但随后旧的 DLL 会被保留,并且文件名已更改。

在这种情况下,如何以编程方式替换 DLL?


你的方法很好 - 只需重命名该文件并将新的 DLL 复制到正确的位置即可。完成后就可以使用Windows API函数了移动文件Ex http://msdn.microsoft.com/en-us/library/windows/desktop/aa365240%28v=vs.85%29.aspx注册旧文件以便在下次机器重新启动时删除。来自 MSDN 文档:

如果dwFlags指定MOVEFILE_DELAY_UNTIL_REBOOT且lpNewFileName为NULL,则MoveFileEx注册系统重新启动时要删除的lpExistingFileName文件。如果 lpExistingFileName 引用一个目录,则仅当该目录为空时,系统才会在重新启动时删除该目录。

所以你会想做类似的事情:

MoveFileEx(szSrcFile, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);

我与 Delphi 的合作不多。想必您可以导入正确的 Windows API 函数并直接从 Delphi 进行此调用,或者编写一个小的 C++ 程序,您可以调用该程序来为您处理此问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何复制/替换 DLL? 的相关文章

  • 在 Outlook 中创建带有附件的邮件并显示它

    我想在 Outlook 中创建一封带有附件的邮件并在发送之前显示它 但我想我已经尝试了几乎在网上找到的所有示例 但没有任何运气 我可以使用 Indy 但我非常想使用 Outlook 来确保邮件正确 因为它是用于商业用途 函数的任何输入 该函
  • 从单个应用程序中的多个线程调用 dll 函数是否安全?

    我正在 Delphi 2009 中编写一个服务器应用程序 它实现了多种类型的身份验证 每种身份验证方法都存储在单独的 dll 中 第一次使用身份验证方法时 会加载适当的 dll 仅当应用程序关闭时 DLL 才会被释放 在服务器线程 连接 之
  • 如何使用用户输入来寻址 Pascal 中的特定变量(Eval/Exec?)

    我正在尝试在分形程序中做一些非常具体的事情隆起7X http apophysis 7x org 使用的脚本语言是Pascal 该项目是用德尔福写的 https svn code sf net p apophysis7x svn trunk
  • Powershell 调用程序集委托

    我有一个用于过程控制应用程序的 dll 程序集 我在我的内部使用 load电源外壳 script 该DLL包含我需要使用的委托类型 委托名称是 X Y Delegate 我在该 DLL 中有另一个方法 应该这样调用 Method deleg
  • Delphi XE2 Firemonkey 示例应用程序未在 MAC 上运行

    我正在尝试在 Mac 上运行示例 Firemonkey 应用程序 但我在 Mac 中收到以下消息 dyld Library not loaded rpath libcgunwind 1 0 dylib Referenced from Use
  • 以 png 格式剪辑幻灯片 (Delphi 2010)

    I have a filmstrip of images in png format like this 我想知道如何剪辑每个图像并将这些图像放入 TImageList 控件中 并始终保留透明度 EDIT 是的 在设计时 RRUZ 提到的技
  • 在 Delphi 2007 中将具有透明度的位图保存为 PNG

    我有一个包含透明度信息的 Delphi 位图 32 位 我需要将其转换并保存为 PNG 文件 同时保留透明度 我目前拥有的工具是graphics32 Library GR32 PNG 由Christian Budde 提供 和PNGImag
  • 如何向标准集合编辑器添加图标?

    我有一个自定义控件 它利用TCollection and TCollectionItem 在集合编辑器中 我想向每个列表项添加图标 该列表项由内部TImageList 在其父组件内 集合项本身代表图标 我想在这个编辑器中显示相应的图标 如何
  • 使用 TStringList 的分隔符解析字符串,似乎也解析空格(Delphi)

    我有一个简单的字符串 由某个字符分隔 比如说逗号 我应该能够创建一个 TStringList 并将其分隔符设置为逗号 然后将 DelimitedText 设置为我想要解析的文本 并且应该自动解析它 问题是 当我查看输出时 它还包含空格作为分
  • SidBySide:3rd Party Dll 指的是 MSVCR80.DLL 的两个版本

    我们包含了一个 3rd Party lib DLL 最近在安装时造成了很多麻烦 使用依赖步行者 http www dependencywalker com 我们发现dll本身引用了两个不同版本的 MSVCR80 DLL Version 8
  • Delphi - 如何获取 USB 可移动硬盘和记忆棒的列表?

    在我的应用程序 Delphi 中 我需要列出所有 USB 存储设备 这些可以是闪存棒or外部存储驱动器 有一个Jvcl成分JvDriveCombo 并且它有DriveType属性 问题是我是否选择DriveType Fixed那么除了外部驱
  • 当 Delphi 处于覆盖模式时,如何更改它的光标形状?

    当使用 Delphi 的任何版本时 我有时会碰巧按下插入键并打开覆盖模式 这通常是一个很大的麻烦 并且您进入覆盖模式的唯一指示是编辑器底部的小文本 当使用其他程序 首先想到的是 Notepad 时 当您处于插入模式时 文本光标是 当您处于覆
  • FreePascal x64 上系统单元函数的汇编调用

    我有一些 Delphi 汇编代码 可以在 Win32 Win64 和 OSX 32 上编译并正常工作 XE2 但是 由于我需要它在 Linux 上工作 所以我一直在考虑编译它的 FPC 版本 到目前为止 Win32 64 Linux32 6
  • 防止 Ada DLL 中的名称损坏

    有没有一种简单的方法可以防止在创建 Ada DLL 时 Ada 名称被破坏 这是我的 adb 代码 with Ada Text IO package body testDLL is procedure Print Call is begin
  • 在Delphi 7中,为什么我可以给const赋值?

    我将一些 Delphi 代码从一个项目复制到另一个项目 发现它在新项目中无法编译 但在旧项目中可以编译 代码看起来像这样 procedure TForm1 CalculateGP const Price money 0 begin Pric
  • TColorProperty德尔福柏林10.1.2?

    我正在尝试将组件从 Delphi 7 转换为 Delphi Berlin 平面组件 https sourceforge net projects flatstyle https sourceforge net projects flatst
  • Delphi应用程序窗口z顺序和MainFormOnTaskBar属性

    我正在维护一个最初用 Delphi 7 编写并移植到 Delphi XE 的应用程序 使用 Windows 7 我们遇到了一些问题 例如模态窗口出现在主窗口下方 以及最终无法与程序交互 因为用户需要与模态窗体交互 而这是不可能的 因为它位于
  • 资源文件是否编译为 UNICODE 或 ANSI 代码页?

    首先 如果这个问题已经被回答了一百次了 我深表歉意 噢 但我的搜索显然很糟糕 因为我没有运气回答这个基本问题 EXE DLL中的资源是如何存储的 作为 UNICODE UCS 2 Windows 本机内部字符格式 还是使用资源块的代码页作为
  • 对象的引用计数

    在我的代码中 我使用一个小的数据存储类 它是在不同的地方创建的 为了避免内存泄漏并简化事情 我想使用引用计数 所以我这样做了 type TFileInfo class TInterfacedObject IInterface 并删除了我对
  • 如何用不同的颜色绘制选定的列表框项目?

    是否可以更改 TListBox 中的项目选择焦点颜色和文本颜色 当项目中未启用主题或列表框样式设置为所有者绘制时 项目周围的选择将被涂成蓝色 我相信这是由系统的外观设置全局定义的 我想将所选项目的颜色更改为自定义颜色 举个例子 结果会是这样

随机推荐

  • Android 多屏限定符定义

    我想创建一个与大量设备和屏幕兼容的布局 我一直在研究 发现最常见的屏幕分辨率是 249x320 480x800 600x1024 720x1280 以及与这些成比例的其他一些屏幕 好吧 阅读文档后我发现有两种方法可以做到这一点 到 3 2
  • 使用 J2V8 从 .js 执行函数

    我正在使用 J2V8 在 Android 上执行 JavaScript 代码 在我的 Java 代码中 我可以访问和执行单独 js 文件的 JavaScript 函数吗 如果可以的话 我该怎么做 与许多 JavaScript 环境一样 您只
  • Anorm 中的原子 MySQL 事务

    我编写了一个简单的命中计数器 它使用 Anorm 更新 MySQL 数据库表 我希望交易是原子的 我认为最好的方法是将所有 SQL 字符串连接在一起并执行一个查询 但这对于 Anorm 似乎是不可能的 相反 我将每个选择 更新和提交放在单独
  • 如何在 PyTorch 中保存模型架构?

    我知道我可以通过以下方式保存模型torch save model state dict FILE or torch save model FILE 但两者都不保存模型的架构 那么我们如何在 PyTorch 中保存模型的架构 就像创建一个 p
  • R CMD 氧气无法识别

    我刚刚尝试了 Roxygen 套餐 在 R 中 我可以运行 Roxygen Vignette 中的示例 但是在命令行中 R CMD roxygen未被识别为有效命令 当我跑步时R CMD help 我可以看到全部INSTALL check
  • 如何设置超时来中止工厂或服务内的 $http.get() ?

    我有以下方法getData url 在我的factory它使用 http get url 从 URL 获取数据 angular module az app factory WebServiceFactory function http q
  • 使用 ResumableJS 取消、中止和重试单个文件上传

    我已经成功地使用以下方法将多个文件分块上传到服务器可恢复JS http www resumablejs com 在上传过程中 用户可以看到整体上传进度和单个文件上传百分比 还可以暂停 恢复整个上传 我现在想要的是允许用户取消 中止单个文件上
  • 无法从没有窗口的视图中呈现弹出窗口

    这个错误说明什么 Popovers cannot be presented from a view which does not have a window 救了我一命的事情 if self view window nil popoverC
  • 如何读取浏览器中所有存储的 Cookie

    我只想读取浏览器中存储的所有 cookie 使用标准 Javascript API 我无法阅读它 但有没有一种方法可以读取所有 cookie 而不仅仅是通过我的网站注册的 cookie 浏览器安全会故意阻止这种情况 如果你能做到这一点 你就
  • 从代码运行测试时在 Eclipse 中显示 JUnit 视图

    当我在 Eclipse 中运行 Testclass 时 我会看到显示树结构以及测试是否成功的 JUnit 视图 如果我从代码开始测试 JUnitCore core new JUnitCore core run SimpleTests cla
  • MySQL语句选择特定列的最新条目

    我正在使用 MySQL 并且该表是使用以下架构创建的 CREATE TABLE example id INT UNSIGNED NOT NULL AUTO INCREMENT version INT UNSIGNED NOT NULL te
  • 如何加载离子段内的其他页面?

    任何人都知道如何加载离子段内的其他页面 我正在使用 ionic v4 我有三页试图在离子段内部显示 概况 疫苗接种 发育 我想将页面的功能分开以便于维护 这是孩子的详细信息页面 https i stack imgur com pta0M p
  • BOOST_FUSION_ADAPT_STRUCT 的限制

    我尝试过玩BOOST FUSION ADAPT STRUCT宏并尝试了一些天真的事情 例如使用 Fusion 打印任何任意结构 从此开始文档中给出的示例代码 http www boost org doc libs 1 55 0 libs f
  • 为什么 Bert Transformer 使用 [CLS] 令牌进行分类而不是对所有令牌进行平均?

    我正在对 bert 架构进行实验 发现大多数微调任务都将最终的隐藏层作为文本表示 然后将其传递给其他模型以进行进一步的下游任务 Bert 的最后一层如下所示 我们获取每个句子的 CLS 标记 图片来源 https jalammar gith
  • Windows编程对话框背景图片

    有没有什么好的教程或方法可以将背景图像添加到 Windows 对话框中 Something similar to this 我的资源文件 稍微修剪一下 include
  • VB 字符串中的转义双引号

    我使用了下面的代码来执行schtasks来自 VB6 的命令 执行时 如果文件夹包含空格 则忽略文件夹 例如 C program files test test exe 将被转换为 c program 我该如何解决这个问题 MyAppnam
  • 在圆圈上添加点击侦听器不起作用

    我正在尝试在地图上添加点击侦听器 这是我的代码 update
  • 为什么 SET DEFINE OFF 对冒号 (:) 字符不起作用?

    我有一个脚本试图通过 sqlplus 运行 在脚本的顶部 我设置了 SET DEFINE OFF 但是 当我运行它时 我收到此错误 SP2 0552 未声明绑定变量 CHANDAWALA 我相信这种情况正在发生 因为我有几个更新语句 其中在
  • Git 服务:我想要这么简单

    我想知道如何简单地通过 http 发布水星 http en wikipedia org wiki Mercurial的hg发球 在 Windows work 框中执行以下操作 git serve 然后在 Linux 机器上简单地执行 git
  • 如何复制/替换 DLL?

    我有一个实用程序 可以通过简单地复制 替换可执行文件来更新应用程序 现在 我有一些 DLL 文件也需要更新 然而 有时 Windows 不会让我替换它 因为有东西正在使用它 有时有太多东西使用该 DLL 我无法保证它会被解锁以供我替换它 目