不能在 C# 项目中使用 C++/CLI 项目的类
Can't use classes of C++/CLI project in C# Project
我在C++方面没有太多经验。我正在使用Visual Studio 2012进行构建。
我有:
- 具有以下功能的解决方案:
- C++中的静态库(不在C++/CLI中)
- C++测试项目(我在这里测试C++静态库中的所有代码)
- 包装程序项目C++/CLI
- 另一个解决方案:
- C#测试项目
我想构建第一个解决方案,然后在C#单元测试中使用生成的dll。稍后,C++/CLI将用于几个项目,因此我将创建测试来验证功能。
当我创建C++/CLI投影时,默认情况下它创建了Class1。我还没有删除这个类,但我为其中一个C++类创建了一个包装器。
当我将这个dll添加到C#项目中时,Class1是可见的(我甚至添加了一个测试方法,它可以工作),但我可以访问我创建的Wrapper类。
我的C++/CLI项目名称是:
- MyNamespace。子命名空间。管理。我的项目
Class1代码(C++/CLI)
#pragma once
using namespace System;
namespace MyNamespaceSubNamespaceManagedMyProject
{
public ref class Class1
{
public:
//I used this method to see if the values were going back and forth, and they do
int TestMethod(int value){return value;}
};
}
My Wrapper Class.h代码(C++/CLI)
#pragma once
#include "..C++ProjectFolderPathMyCPPClass.h"
namespace MyNamespace { namespace SubNamespace { namespace ManagedTest {
ref class MyManagedWrapper
{
private:
MyNamespace::SubNamespace::UnmanagedTest::MyCPPClass *myInstance;
public:
MyManagedWrapper(double value1, System::String ^text1,
System::String ^text2, array<System::Double>^ double1,
array<System::Double>^ double2, array<System::Double>^ double3,
array<System::Double>^ double4);
~MyManagedWrapper();
};
}}}
我的C#测试
[TestClass]
public class TEMServiceCppTest
{
[TestMethod]
public void TestMethod1()
{
var test = new Class1();
Assert.AreEqual(3, test.TestMethod(3));
}
}
Class1运行良好,但我尝试执行新的MyManagedWrapper(),但它不起作用。我也尝试过使用fullnamespace,但它就像类一样,命名空间不存在。
我使用此页面作为创建代码的参考。为什么Class1类是可访问的,而不是我创建的类?我想知道是否有什么特殊的地方需要注册Class1或它的命名空间,但我找不到。
我不知道如何使我的MyManagedWrapper类在C#代码中可见
(如果您需要更多详细信息,请告诉我,我会添加它)
您缺少"ref class MyManagedWrapper
"的public
。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 在 C++/CLI/C# 项目中启用"Native Code Debugging"导致应用程序崩溃
- C++/CLI 项目如何在控制台窗口中显示消息
- 通过 WIX 安装程序安装带有 CLI 项目 EXE 的 C# 不起作用
- 如何在 silverlight 应用程序中引用 C++/CLI 项目
- 我应该使用CLI将C#项目转移到C++和Linux吗
- 如何在 C++/CLI 项目中包含 JpegBitmapDecoder^
- C#/WPF 项目中的类在 C++/CLI 项目中不起作用
- 从CLI C++项目引用非托管C++项目
- 混合模式程序集(C++/CLI项目)在.NET Core上工作吗
- 不能在 C# 项目中使用 C++/CLI 项目的类
- Visual Studio 2010在编译C++/CLI项目时出现奇怪错误
- LNK2001正在尝试使用Visual Studio C++CLI项目中的v8
- C++/CLI 项目如何引用可移植类库
- 如何在 C++/CLI 项目中 #include 使用 nullptr 的第三方本机 C++ 标头
- 使用 C、C++ 和 C++/CLI 项目解析LNK2005
- 在x86中编译引用C++/CLI DLL的C#项目时,MSBuild无法生成
- 链接CLR控制台项目中的C++/CLI库
- 是否有可能从托管c++ /CLI项目中正常运行非托管c++ ?
- visual Assurance VS 2008将我的项目视为C++,而不是C++/CLI