Mono .NET是否支持并编译C++/CLI?
如果没有,你知道他们是否有任何支持它的计划?
是否有任何机构知道如何将WebRTC DataChannel API实现到在C#中构建的Windows应用程序,以便在NAT后面的客户端之间发送TCP消息.这不适用于Web应用程序,它仅适用于Windows.
任何意见或想法都非常感谢.
谢谢.
我需要向C#公开一些C++类(我在Linux上构建,使用单声道,所以COM不是一个选项)
到目前为止我收集的证据表明,解决这个问题的最佳方法是:
我有以下问题:
我试图从我的C#应用程序(通过C++/CLI)调用我的C++库.我按照这个问题的例子(针对我的具体应用).我的应用程序的设置是:
不幸的是,当我真正去访问我的C#应用程序中的CLR包装器对象时,我收到以下错误:
找不到类型或命名空间名称'YourClass'(您是否缺少using指令或程序集引用?)
我是否错误地设置了项目,或者还有其他我应该研究的内容?(不幸的是,我不能出于专有原因发布代码,但这是一个非常简单的代码,很容易遵循上面的例子.)
更新:
所以我完全按照Chris所说的去做(见下面的答案),但我仍然收到来自我的C#应用程序的消息"找不到类型或命名空间名称'MyProgram'(你是否缺少using指令或程序集)参考?).这是我的代码的(模拟).
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Program.cs中
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyProgram;
namespace Testing
{
class Program
{ …Run Code Online (Sandbox Code Playgroud) 这个问题似乎与之前的问题重复.我已阅读了一系列帖子,但对我的情况并不完全清楚.
我有一个使用momentics IDE创建的c ++库.我必须能够将这个库用于ac #project.
在交给我之前,有人一直在研究这个项目.目前,有2层可以实现这一目标.首先,c ++项目包括带有c ++包装器的完整库.该项目创建一个dll作为输出.然后将这个c ++ dll输入到ac #project,该项目具有对c ++ dll的dllimport调用.这个c#项目再次创建一个dll.最后,为了在c#应用程序中使用库,我必须包含对这两个dll的引用.
这是让它运作的正确方法吗?我想可能应该有一种简化过程的方法.
有人可以帮我解决这个问题吗?
我试图从C#项目调用本机C++代码.为此,我按照这篇文章中的步骤进行操作.
但是当我在C++文件中创建一个巨大的数组时,我得到了一个stackoverflow异常.这是代码:
//CSharpTest.h
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharpTest
{
class Program
{
static void Main(string[] args)
{
CpTest.Class1 instance = new CpTest.Class1();
Console.WriteLine(instance.DoSomething());
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
和c ++文件
// CpTest.h
#pragma once
using namespace System;
namespace CpTest {
public ref class Class1
{
public:
int DoSomething(){
int arr[640 * 480];
return 123;
}
// TODO: Add your methods for this class here.
};
}
Run Code Online (Sandbox Code Playgroud)
数组声明导致stackoverflow异常.
早些时候,当我只运行本机C++代码时,我通过增加项目属性中的"堆栈保留大小"来增加堆栈大小.
但对于这种情况,我不知道该怎么做.