Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.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++ - Fatal编程技术网

.net 非托管C++;应用程序是否仅在需要托管类型时加载CLR? 更重要的是,我有一个本地C++应用程序,它可能永远不需要使用托管类型。我希望CLR保持卸载状态,直到实际依赖于托管类型的代码路径被实际命中为止 我试图用VisualStudio 2005中的/CLR开关来实现这一点,但就我所知,只要我使用这个开关,整个C++应用程序就变成了一个托管的应用程序。有没有办法只为某个编译单元或函数指定它?我试图用我的测试应用程序标记我的主()函数,但它并没有阻止它在启动时加载CLR。< /P> < P>如果你有一个混合模式C++ DLL,CLR将在你的DLL/EXE加载到进程中时加载。没有办法改变这种行为

.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何时启动。这需要一些设置工作,但应该会得到您想要的结果 谢谢你的建议。您能否解释如何实现这一点,或者指向解释它的资源?这是否会使用链接器中的延迟加载功能?

实现所需功能的最佳方法是将DLL分解为两部分

  • 纯天然的部分
  • 需要使用托管代码的部件

  • 您可以通过控制将#2加载到进程中的时间来控制CLR何时启动。这需要一些设置工作,但应该会得到您想要的结果

    谢谢你的建议。您能否解释如何实现这一点,或者指向解释它的资源?这是否会使用链接器中的延迟加载功能?