相关疑难解决方法(0)

Mono .NET是否支持并编译C++/CLI?

Mono .NET是否支持并编译C++/CLI?

如果没有,你知道他们是否有任何支持它的计划?

.net mono c++-cli

31
推荐指数
4
解决办法
2万
查看次数

为Windows应用程序实现webrtc数据通道

是否有任何机构知道如何将WebRTC DataChannel API实现到在C#中构建的Windows应用程序,以便在NAT后面的客户端之间发送TCP消息.这不适用于Web应用程序,它仅适用于Windows.

任何意见或想法都非常感谢.

谢谢.

c# tcp webrtc

16
推荐指数
2
解决办法
1万
查看次数

将ISO C++类暴露给C#

我需要向C#公开一些C++类(我在Linux上构建,使用单声道,所以COM不是一个选项)

到目前为止我收集的证据表明,解决这个问题的最佳方法是:

  1. 在ISO C++类周围编写一个包装器C++ .Net类
  2. 从C#中使用C++ .Net类

我有以下问题:

  • 首先,这是实现将C++类暴露给C#的目标的"最佳"方式吗?
  • 到目前为止,我还没有看到任何实际显示如何执行此操作的示例 - 任何人都可以建议一些链接,或者代码片段来显示如何为虚拟类完成此操作?
  • 如何从C++代码向C#代码发送异步消息通知?理想情况下,我想使C#类引发事件,并将接收到的数据作为参数

c# c++ mono pinvoke c++-cli

14
推荐指数
1
解决办法
3234
查看次数

如何在C#应用程序中使用C++/CLI

我试图从我的C#应用​​程序(通过C++/CLI)调用我的C++库.我按照这个问题的例子(针对我的具体应用).我的应用程序的设置是:

  • Project1:C++项目(我将其编译为DLL)
  • Project2:C++ Project(我的CLR包装器;只是上面例子中的头文件;引用Project1)
  • Project3:C#项目(参考Project2)

不幸的是,当我真正去访问我的C#应用​​程序中的CLR包装器对象时,我收到以下错误:

找不到类型或命名空间名称'YourClass'(您是否缺少using指令或程序集引用?)

我是否错误地设置了项目,或者还有其他我应该研究的内容?(不幸的是,我不能出于专有原因发布代码,但这是一个非常简单的代码,很容易遵循上面的例子.)

更新:

所以我完全按照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(); 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
  • Project3 - 这是我的C#应用​​程序.

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)

.net c# command-line-interface

14
推荐指数
2
解决办法
2万
查看次数

从c#调用c ++库

这个问题似乎与之前的问题重复.我已阅读了一系列帖子,但对我的情况并不完全清楚.

我有一个使用momentics IDE创建的c ++库.我必须能够将这个库用于ac #project.

在交给我之前,有人一直在研究这个项目.目前,有2层可以实现这一目标.首先,c ++项目包括带有c ++包装器的完整库.该项目创建一个dll作为输出.然后将这个c ++ dll输入到ac #project,该项目具有对c ++ dll的dllimport调用.这个c#项目再次创建一个dll.最后,为了在c#应用程序中使用库,我必须包含对这两个dll的引用.

这是让它运作的正确方法吗?我想可能应该有一种简化过程的方法.

有人可以帮我解决这个问题吗?

c# c++ unmanaged

6
推荐指数
1
解决办法
6512
查看次数

从c#调用本机c ++的Stackoverflow

我试图从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++代码时,我通过增加项目属性中的"堆栈保留大小"来增加堆栈大小.

但对于这种情况,我不知道该怎么做.

c# c++-cli

0
推荐指数
1
解决办法
377
查看次数

标签 统计

c# ×5

c++-cli ×3

.net ×2

c++ ×2

mono ×2

command-line-interface ×1

pinvoke ×1

tcp ×1

unmanaged ×1

webrtc ×1