如何在不安装Windows SDK的情况下在客户端PC中使用编译的DLL?

Kin*_*oon 2 c++ windows visual-c++

我构建了一个供在C#Windows应用程序中使用的C ++ DLL,该DLL链接到某些Windows API。

但是,在干净的Windows 7上运行时出现错误,提示“ System.DllNotFoundException:无法加载DLL”。

如果我安装Windows SDK,则一切正常。任何人都可以告诉我如何在不安装Windows SDK的情况下进行修复?

Nia*_*all 5

“缺少dll”的第一个可疑对象将是C ++运行时,它通常不是Windows OS安装的一部分。如果仅在干净的Windows 7机器上安装C ++运行时(对于您使用的Visual Studio版本),会发生什么情况?

确定丢失的依赖项的另一种方法(如果无法从代码中确定)是使用依赖项查看器来识别丢失的dll(例如Dependency Walker)。一旦确定,将丢失的子系统并进行安装,或者修复包含其文件位置的路径。

您是否正在分发dll的“调试”或“发布”版本?

我正在使用“调试”程序。

C ++运行时的可再发行版本不包括“调试”版本,仅包括“发行”版本。以“发布”模式构建dll,然后在Windows 7框中运行该dll。

“调试”版本通常仅用于调试dll /应用程序,因此,SDK的要求是合理的。反过来,当不调试应用程序时,SDK的使用就不太合理-因此,您需要将“发行”版本分发给客户端。