C# C++/.NET应用程序的CLI程序集
我目前正在为现有应用程序开发.NET程序集。此应用程序调用文件中的特定函数,该文件应称为external.dll。我有一些C#代码,编译后可以正常使用应用程序: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
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项目。