如果不安装Windows SDK,如何在客户端PC中使用已编译的DLL? 我在C++应用程序中建立了一个C++ DLL,链接到一些Windows API。p>

如果不安装Windows SDK,如何在客户端PC中使用已编译的DLL? 我在C++应用程序中建立了一个C++ DLL,链接到一些Windows API。p>,c++,windows,visual-c++,C++,Windows,Visual C++,然而,我在干净的Windows7上运行它时出错,它说“System.DllNotFoundException:无法加载DLL” 如果我安装了Windows SDK,那么一切都正常。任何人都可以告诉我如何在不安装Windows SDK的情况下修复, “丢失的DLL”的第一个嫌疑犯是C++运行时,它通常不是Windows操作系统安装的一部分。如果您只在干净的Windows 7框上安装C++运行时(对于VisualStudio的版本),会发生什么情况? 确定缺少的依赖项的另一种方法(如果无法从代码中确

然而,我在干净的Windows7上运行它时出错,它说“System.DllNotFoundException:无法加载DLL”

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

“丢失的DLL”的第一个嫌疑犯是C++运行时,它通常不是Windows操作系统安装的一部分。如果您只在干净的Windows 7框上安装C++运行时(对于VisualStudio的版本),会发生什么情况?

确定缺少的依赖项的另一种方法(如果无法从代码中确定)是使用依赖项查看器来标识缺少的dll(例如)。一旦确定,将安装缺失的子系统和,或修复路径以包括其文件位置

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

我正在使用“调试”一个

C++运行库的可重新分配不包括“调试”版本,只包含“发布”版本。在“发布”模式下构建dll,并在Windows 7框上运行该dll


“调试”版本通常仅用于调试dll/应用程序,因此,对SDK的要求是合理的。反过来,在不调试应用程序时,SDK的使用也不太合理——因此您可能希望将“发布”版本分发给您的客户端。

为什么不想安装WSDK?我认为客户端的计算机不应该需要SDK之类的开发工具,我不知道我的想法是否正确……第一个怀疑“缺少dll”的人将是C++运行时。如果只在干净的Windows 7框上安装C++运行时(对于正在使用的VisualStudio版本),会发生什么情况?另一种方法是(如果您无法从代码中确定这一点)使用Decenty查看器来识别缺少的dll(例如Dependency Walker)。一旦确定,将安装缺少的子系统和,或者修复路径以包括它们的位置。我认为可以将所需的dll与应用程序捆绑在一起,但我不知道。您是否正在分发dll的“调试”或“发布”版本?