我的解决方案包括两个项目:
基本上,从我的应用程序的角度来看,DLL必须满足的唯一要求是出现在我的应用程序的工作目录中。简而言之,我的DLL不会导出我的应用程序感兴趣的任何函数。
我想强烈地结合这两个二进制文件。除了在我的应用程序中手动调用LoadLibrary
之外,我有哪些选择?
如果这太模糊,请告诉我。
由于似乎没有人“回答”,我最终做了EFraim
提出的建议(见评论)。
我从我的DLL导出了一个虚函数,并在我的应用程序的链接器属性表中添加了DLL生成的*.lib
文件作为附加依赖项。现在,在运行时,如果DLL丢失,Windows会提供一个很好的错误消息并终止执行。另外,在成功进行IAT初始化后,DLL映像也会被锁定;这可以防止用户删除等事情。
答案 0 :(得分:1)
如果您不希望单独发布dll和exe,可以在您的资源中添加dll并在启动时从那里解压缩。