Visual studio 微软VC++;如何在不需要vc redist的情况下构建DLL 我试图围绕一些基本的C++代码构建一个简单的.NET包装器。 < > C++代码不依赖于VCRISDT DLL中的任何东西,所以我想知道我是否可以设置我的项目,所以它不需要那些DLL工作?< /P>

Visual studio 微软VC++;如何在不需要vc redist的情况下构建DLL 我试图围绕一些基本的C++代码构建一个简单的.NET包装器。 < > C++代码不依赖于VCRISDT DLL中的任何东西,所以我想知道我是否可以设置我的项目,所以它不需要那些DLL工作?< /P>,visual-studio,visual-c++,Visual Studio,Visual C++,我不希望让我的用户下载并运行vcredist,只是为了让一个简单的DLL工作。您需要将DLL与“将CRT用作静态库”选项链接: 项目属性/配置/C/C++/代码生成/运行时库/多线程(即不是任何“DLL”选项)。这似乎是正确的方法,但是当我将其设置为/MT时,它抱怨这与/clr不兼容,我认为这是构建.Net类所必需的(用于本机C++类的包装器)啊,那可能是真的。但是如果你的用户需要.Net,那么假设他们也会有相关的CRT DLL是否合理?很明显,他们会有CRT DLL,这是MSVCR90.DLL

我不希望让我的用户下载并运行vcredist,只是为了让一个简单的DLL工作。

您需要将DLL与“将CRT用作静态库”选项链接:


项目属性/配置/C/C++/代码生成/运行时库/多线程(即不是任何“DLL”选项)。

这似乎是正确的方法,但是当我将其设置为/MT时,它抱怨这与/clr不兼容,我认为这是构建.Net类所必需的(用于本机C++类的包装器)啊,那可能是真的。但是如果你的用户需要.Net,那么假设他们也会有相关的CRT DLL是否合理?很明显,他们会有CRT DLL,这是MSVCR90.DLL和类似的东西,我担心的是VC++特有的东西。如果我试着用这个DLL运行应用程序,它会抱怨找不到MSVCR90.DLL:-((除非您安装了vcredist或visual studio)MSVCR90.DLL是CRT DLL…您可能会发现,您不需要做任何事情就可以了。要做的事情是设置一个干净的Windows VM,安装软件的已知先决条件(.Net和它需要的任何其他内容)然后试试你的DLL——它可能会正常工作。好吧,我对什么是CRT DLL不好——我指的是普通的.Net东西(mscorlib等等)。我正在安装一个干净的Windows VM,我会告诉你它是否工作。只是在过去,我总是必须安装vcredist才能运行使用VC++编译的任何东西。无论如何,我会通知你:-)