正如标题所说,我想为我的C ++项目更改.NET Target Framework版本。我试图使用/ clr命令进行编译,我认为应该启用它吗?
我正在尝试构建一个在Unity中使用的DLL,我希望能够选择合适的框架。
我已尝试更改.vxproj文件中的信息但我无法找到正确的标记,当我自己添加它时会抛出错误。
编辑:
这是包含可以在C#中调用的方法的代码,以使用我之前编写的C ++代码。我只编辑了CLR类库的.h文件(所以.cpp文件只包含我认为应该没用的标题)
#pragma once
#include "PortAudioManager.h"
using namespace System;
namespace PortAudioWrapper {
public ref class PortAudioManaged
{
private:
PortAudioManager* audioManager;
public:
PortAudioManaged() : audioManager(new PortAudioManager()) {
}
virtual ~PortAudioManaged() {
this->!PortAudioManaged();
}
// = Object.Finalize
!PortAudioManaged() {
delete audioManager;
audioManager = nullptr;
}
void openStreamManaged() {
audioManager->openStream();
}
void stopStreamManaged() {
audioManager->stopStream();
}
};
}
答案 0 :(得分:6)
您应该可以按照https://msdn.microsoft.com/en-us/library/ff770576.aspx
上的指南进行操作您可以在C ++中定位的.NET框架取决于您选择的工具集。您可能会发现只需下载支持您希望使用的框架的旧版VS即可。
在项目文件中,我刚刚创建了如下所示的部分:
<PropertyGroup Label="Globals">
<ProjectGuid>{48ACEC98-3369-486F-9033-8C433D408570}</ProjectGuid>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<Keyword>ManagedCProj</Keyword>
<RootNamespace>ClassLibrary1</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
答案 1 :(得分:2)
使用VS2015,我不得不将托管C ++ DLL的.Net目标从3.5升级到4.5.1。在“配置属性 - 常规”设置中,“。Net目标框架版本”显示为灰色且其值框不可编辑。
注意:取下尖括号周围的“”。 然后,当项目重新加载到VS2015时,您可以看到设置中列出的.Net版本。就我而言,它是V4.5.1。