【发布时间】:2011-04-13 21:32:24
【问题描述】:
我正在尝试从我的 C# 应用程序(通过 C++/CLI)调用我的 C++ 库。我遵循this question 的示例(针对我的特定应用程序)。我的应用程序的设置是:
- Project1:C++ 项目(我将其编译为 DLL)
- Project2:C++ 项目(我的 CLR 包装器;只是上面示例中的头文件;参考 Project1)
- Project3:C# 项目(参考 Project2)
不幸的是,当我实际访问 C# 应用程序中的 CLR 包装对象时,我收到以下错误:
类型或命名空间名称“YourClass” 找不到(您是否缺少 使用指令或程序集 参考?)
我的项目设置是否不正确,还是我应该研究其他什么? (不幸的是,由于专有原因,我无法发布代码,但这是一段非常简单的代码,很容易遵循上面的示例。)
更新:
所以我完全按照 Chris 说的去做(请参阅下面的答案),但我仍然收到来自我的 C# 应用程序的消息“找不到类型或命名空间名称‘MyProgram’(您是否缺少 using 指令还是程序集参考?)。这是我的代码的(模型)。
- Project1 - 这是我的 C++ 应用程序。它编译/工作。我在别处用过。 (我从这个构建中得到了一个 DLL。)
- Project2 - 这是我的包装器代码。
MyWrapper.h
#pragma once
#include "myorigapp.h"
using namespace System;
namespace MyProgram
{
public ref class MyWrapper
{
private:
myorigapp* NativePtr;
public:
MyWrapper()
{
NativePtr = new myorigapp();
}
~MyWrapper()
{
delete NativePtr;
NativePtr = NULL;
}
void dostuff()
{
NativePtr->dostuff();
}
}
}
- Project3 - 这是我的 C# 应用程序。
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyProgram;
namespace Testing
{
class Program
{
static void Main(string[] args)
{
MyWrapper p = new MyWrapper();
p.dostuff();
}
}
}
Project3 引用 Project2 引用 Project1。一切都没有错误地构建(除了我上面在 using MyProgram 行的 C# 代码中描述的错误)。
【问题讨论】:
-
您是否缺少 using 指令或程序集引用?
-
你应该发布一些代码,如果你不想发布原始的东西,也许你可以提取相关部分,简化和修改一些名称等。跨度>
-
@Hans @Doc - 用代码和更多信息更新了问题。
标签: c# .net command-line-interface