2012-08-14 32 views
1

enter image description here我在我的应用程序中使用了一个dll,其中包含该dll提供的功能。这个DLL我得到后安装一个msi。 但在我的应用程序中,我有一个要求,如果用户没有安装该msi,那么我们必须显示一个警告消息(例如,msi没有安装,代码为我已经在我的应用程序的main()中实现)退出应用程序。启动应用程序时的Dll问题

但问题是,如果用户没有安装msi,然后启动应用程序本身显示一个错误消息,因为它无法得到dll,这次控制甚至没有来到我的主要(),我在哪里我已经编写了用于此msi检查的代码(通过注册表项)。

有没有解决这个问题..

+0

所以你说你的'main()'没有执行,当你没有DLL?我们讲的是main()而不是'DllMain()',对吗? – 2012-08-14 07:46:16

+0

是的。我想要的是,即使DLL不存在,我已经写在我的int main(){...}中的代码应该被执行。但正如我上面提到的那样,控制甚至没有进入我的main(),因为它在启动应用程序时显示了问题。 – Kenta 2012-08-14 08:02:10

回答

1

考虑任何有效的方式延迟加载DLL(项目 - >选项 - >高级链接)。

这将允许您的应用程序在DLL丢失时加载。

+0

但在这种情况下,我得到各自的.lib文件的致命错误..是否有任何其他方式来做到这一点? – Kenta 2012-08-14 08:50:37

+0

@vivek在这种情况下,确切的错误是什么? .lib文件通常链接到可执行文件中,所以我不希望看到有关.lib文件的运行时错误。 – 2012-08-15 03:33:05

相关问题