在Inno-Setup中使用自定义DLL

逻辑鼠

我在获取Inno-Setup来加载DLL时遇到问题。我看过类似的文章,但是这些文章中提供的解决方案似乎都没有帮助。特别是,这篇文章非常接近,但似乎不是一个完全相同的问题。

我的安装程序在我的测试系统上运行正常。我的DLL是使用VS 2010用C ++编写的。有一个DEF文件。我已经成功使用VS调试器将其附加到安装程序的线程并逐步执行了我的代码。万事皆安。发行版在我的测试系统上运行良好并且没有调试器。安装程序将调用我的DLL,并且可以正常工作。

然后,我将安装程序带到另一个原始系统中进行尝试。每次启动安装程序时,它都会以通常的UAC提示符启动:“是否要允许未知发行商的以下程序对此计算机进行更改?” 我说“是”。然后,我会听到一声提示音和警报:

Runtime Error (at -1:0):
Cannot import
dll:<utf8>C:\Users\Logicrat\AppData\Local\Temp\is-4E245\MyDLL.dll

在我的安装脚本中

[Files]
Source: "MyDLL.dll"; DestDir: "{app}"; Flags : dontcopy

function MyFunc(hWnd: Integer; lpText, lpCaption: AnsiString; uType: Cardinal): Integer;
external 'MyFunc@files:MyDLL.dll stdcall setuponly';

根据Inno文档,dontcopy如果卸载不需要DLL ,则该标志是适当的,否则不需要。

我怀疑问题出在确切地指定DLL应该位于的位置,正如我的脚本要求将其放在{app}目录中一样,但是错误消息指向的是临时目录。我尝试了脚本的多种变体,所有变体都具有相同的结果。

我的开发/测试系统和原始目标系统都是Windows 7(32位)。数周来我一直在敲打它,没有明显的进步。任何建议都将受到欢迎。

逻辑鼠

由于TLama关于检查依赖项的建议,问题得以解决。当我最初在MS Visual Studio 2010中为DLL创建新项目时,我选择了“在共享库中使用MFC”选项。事实证明,这是问题的根源,因为DLL本身依赖于mfc100u.dllmsvcr100.dll,而我用来测试安装程序的目标系统上不存在。我通过将项目首选项更改为“在静态库中使用MFC”来解决此问题。这使DLL变大,但也使它起作用。然后,在我首先重建DLL之后再重建使用它的安装程序之后,一切都很好。

如果我第一次遇到的错误消息将其命名为正在寻找的DLL,而不是试图调用丢失的DLL的DLL,则可能会很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Inno Setup中使用Define和Constant

来自分类Dev

Inno Setup的自定义页面向导

来自分类Dev

如何在Inno Setup中引用文件关联的自定义图标?

来自分类Dev

Inno Setup语言对话框自定义

来自分类Dev

Inno Setup在下次安装时记住“自定义”复选框状态

来自分类Dev

Inno Setup相对于现有按钮定位自定义按钮

来自分类Dev

Chrome的Inno设置自定义网址

来自分类Dev

Inno Setup:“就绪页面”自定义布局

来自分类Dev

每个用户或每个计算机安装的Inno Setup自定义对话框

来自分类Dev

Inno Setup:从另一个控件的OnClick事件访问自定义控件

来自分类Dev

如何添加可点击的链接到自定义的Inno Setup WelcomeLabel?

来自分类Dev

Inno Setup:自定义类

来自分类Dev

Inno Setup如何在自定义消息中添加CRLF /换行符

来自分类Dev

Inno Setup安装程序默认为“自定义”安装,而不是“完全”安装

来自分类Dev

使用Inno Setup将自定义字符串值写入SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall

来自分类Dev

Inno Setup:创建自定义表单

来自分类Dev

如何使用RichEditViewer在Inno Setup中向自定义页面添加可点击链接?

来自分类Dev

使用Inno Setup包含注册表,自定义消息和代码文件的正确方法

来自分类Dev

Inno Setup-使用进度条在自定义页面上复制文件

来自分类Dev

Inno Setup使用Pascal脚本自定义FinishedLabel

来自分类Dev

为什么在Inno Setup中使用“&”字符?

来自分类Dev

Inno Setup的自定义页面向导

来自分类Dev

在Inno Setup中:如何使用/了解自定义页面的CurPageIDs的值?

来自分类Dev

使用Google Map的Inno Setup自定义页面

来自分类Dev

如何在Javafx-ant,maven和INNO中使用自定义* .ISS?

来自分类Dev

Inno Setup:自定义类

来自分类Dev

在不使用全局变量的情况下从自定义Inno Setup向导页面读取值

来自分类Dev

Inno Setup:自定义页面选择更新或删除/卸载

来自分类Dev

Inno Setup - 创建自定义消息框(是/否)

Related 相关文章

  1. 1

    在Inno Setup中使用Define和Constant

  2. 2

    Inno Setup的自定义页面向导

  3. 3

    如何在Inno Setup中引用文件关联的自定义图标?

  4. 4

    Inno Setup语言对话框自定义

  5. 5

    Inno Setup在下次安装时记住“自定义”复选框状态

  6. 6

    Inno Setup相对于现有按钮定位自定义按钮

  7. 7

    Chrome的Inno设置自定义网址

  8. 8

    Inno Setup:“就绪页面”自定义布局

  9. 9

    每个用户或每个计算机安装的Inno Setup自定义对话框

  10. 10

    Inno Setup:从另一个控件的OnClick事件访问自定义控件

  11. 11

    如何添加可点击的链接到自定义的Inno Setup WelcomeLabel?

  12. 12

    Inno Setup:自定义类

  13. 13

    Inno Setup如何在自定义消息中添加CRLF /换行符

  14. 14

    Inno Setup安装程序默认为“自定义”安装,而不是“完全”安装

  15. 15

    使用Inno Setup将自定义字符串值写入SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall

  16. 16

    Inno Setup:创建自定义表单

  17. 17

    如何使用RichEditViewer在Inno Setup中向自定义页面添加可点击链接?

  18. 18

    使用Inno Setup包含注册表,自定义消息和代码文件的正确方法

  19. 19

    Inno Setup-使用进度条在自定义页面上复制文件

  20. 20

    Inno Setup使用Pascal脚本自定义FinishedLabel

  21. 21

    为什么在Inno Setup中使用“&”字符?

  22. 22

    Inno Setup的自定义页面向导

  23. 23

    在Inno Setup中:如何使用/了解自定义页面的CurPageIDs的值?

  24. 24

    使用Google Map的Inno Setup自定义页面

  25. 25

    如何在Javafx-ant,maven和INNO中使用自定义* .ISS?

  26. 26

    Inno Setup:自定义类

  27. 27

    在不使用全局变量的情况下从自定义Inno Setup向导页面读取值

  28. 28

    Inno Setup:自定义页面选择更新或删除/卸载

  29. 29

    Inno Setup - 创建自定义消息框(是/否)

热门标签

归档