1

背景

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

  1. 标准的 Windows 应用程序
  2. 我的应用程序不直接使用的 DLL ,而是将其注入目标进程

基本上,从我的应用程序的角度来看,DLL 必须满足的唯一要求是存在于我的应用程序的工作目录中。简而言之,我的 DLL 不会导出我的应用程序感兴趣的任何函数。


问题

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

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


编辑

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

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

4

1 回答 1

1

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

于 2009-08-01T04:06:28.000 回答