Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.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
C# C++/.NET应用程序的CLI程序集_C#_C++_.net_.net Assembly - Fatal编程技术网

C# C++/.NET应用程序的CLI程序集

C# C++/.NET应用程序的CLI程序集,c#,c++,.net,.net-assembly,C#,C++,.net,.net Assembly,我目前正在为现有应用程序开发.NET程序集。此应用程序调用文件中的特定函数,该文件应称为external.dll。我有一些C#代码,编译后可以正常使用应用程序: using System.Windows.Forms; /// Sample external.dll code namespace External { public class Handler { public void Execute(int row, double duration, strin

我目前正在为现有应用程序开发.NET程序集。此应用程序调用文件中的特定函数,该文件应称为external.dll。我有一些C#代码,编译后可以正常使用应用程序:

using System.Windows.Forms;

/// Sample external.dll code
namespace External
{
    public class Handler
    {
        public void Execute(int row, double duration, string comment,     double[] argument)
        {
            //Some code
        }
    }
}
<>我已经在C++中编写了一个大程序,它应该由我想用C++编写的.LULL .DLL的应用程序调用。 我尝试用VisualStudioC++/CLR类库模板重写C++中的C代码,但是在现有应用程序启动时,有一个错误:“这个程序集是由运行时更新的,而不是当前加载的运行时,不能加载”。p>
因为我是.NET framework编程新手,所以我有点困惑。我认为使用C++/CLR模板应该生成与使用C#相同的CIL代码。

检查C++/CLI项目的项目设置并查看目标运行时。将其设置为与您的C#项目匹配。C++/CLI只是选项之一。CPPHARP是另一种常用的选项,我使用了C++代码的相同目标运行时版本以及C代码。我还尝试了目前安装在我机器上的每个运行时版本。错误仍然存在,没有一个合适的方式来强制C++程序使用一个更旧版本的框架。任何使用VS2010及更高版本构建的C++/CLI程序都必须始终以.NET 4.x为目标。不是任意的,您可以链接一个包含.NET代码的运行库来提供粘合。您的C#项目必须符合要求,并且也不能针对任何超过4.0的版本。因此,只需使用项目>属性>应用程序选项卡并升级“目标框架”设置。仍然使用3.5或更少的版本很久以前就不再有意义了。如果这是一个阻碍,那么您需要使用VS2008构建您的C++/CLI项目。