执行DLL依赖项

时间:2009-07-31 23:02:29

标签: winapi visual-c++ dll coupling

背景

我的解决方案包括两个项目:

  1. 标准Windows应用程序
  2. 我的应用程序直接使用的DLL,而是将其注入目标进程
  3. 基本上,从我的应用程序的角度来看,DLL必须满足的唯一要求是出现在我的应用程序的工作目录中。简而言之,我的DLL不会导出我的应用程序感兴趣的任何函数。


    问题

    我想强烈地结合这两个二进制文件。除了在我的应用程序中手动调用LoadLibrary之外,我有哪些选择?

    如果这太模糊,请告诉我。


    修改

    由于似乎没有人“回答”,我最终做了EFraim提出的建议(见评论)。

    我从我的DLL导出了一个虚函数,并在我的应用程序的链接器属性表中添加了DLL生成的*.lib文件作为附加依赖项。现在,在运行时,如果DLL丢失,Windows会提供一个很好的错误消息并终止执行。另外,在成功进行IAT初始化后,DLL映像也会被锁定;这可以防止用户删除等事情。

1 个答案:

答案 0 :(得分:1)

如果您不希望单独发布dll和exe,可以在您的资源中添加dll并在启动时从那里解压缩。