.net 非托管C++;应用程序是否仅在需要托管类型时加载CLR? 更重要的是,我有一个本地C++应用程序,它可能永远不需要使用托管类型。我希望CLR保持卸载状态,直到实际依赖于托管类型的代码路径被实际命中为止 我试图用VisualStudio 2005中的/CLR开关来实现这一点,但就我所知,只要我使用这个开关,整个C++应用程序就变成了一个托管的应用程序。有没有办法只为某个编译单元或函数指定它?我试图用我的测试应用程序标记我的主()函数,但它并没有阻止它在启动时加载CLR。< /P> < P>如果你有一个混合模式C++ DLL,CLR将在你的DLL/EXE加载到进程中时加载。没有办法改变这种行为
实现所需功能的最佳方法是将DLL分解为两部分.net 非托管C++;应用程序是否仅在需要托管类型时加载CLR? 更重要的是,我有一个本地C++应用程序,它可能永远不需要使用托管类型。我希望CLR保持卸载状态,直到实际依赖于托管类型的代码路径被实际命中为止 我试图用VisualStudio 2005中的/CLR开关来实现这一点,但就我所知,只要我使用这个开关,整个C++应用程序就变成了一个托管的应用程序。有没有办法只为某个编译单元或函数指定它?我试图用我的测试应用程序标记我的主()函数,但它并没有阻止它在启动时加载CLR。< /P> < P>如果你有一个混合模式C++ DLL,CLR将在你的DLL/EXE加载到进程中时加载。没有办法改变这种行为,.net,visual-studio,visual-studio-2005,managed-c++,.net,Visual Studio,Visual Studio 2005,Managed C++,实现所需功能的最佳方法是将DLL分解为两部分 纯天然的部分 需要使用托管代码的部件 您可以通过控制将#2加载到进程中的时间来控制CLR何时启动。这需要一些设置工作,但应该会得到您想要的结果 谢谢你的建议。您能否解释如何实现这一点,或者指向解释它的资源?这是否会使用链接器中的延迟加载功能?
您可以通过控制将#2加载到进程中的时间来控制CLR何时启动。这需要一些设置工作,但应该会得到您想要的结果 谢谢你的建议。您能否解释如何实现这一点,或者指向解释它的资源?这是否会使用链接器中的延迟加载功能?