相关疑难解决方法(0)

使用 IPC 在 Python 和 C# 之间进行通信的最简单方法?

我有一些 C# 代码需要调用 Python 脚本数千次,每次传递一个字符串,然后期望返回一个浮点数。python 脚本可以使用任何版本的 Python 运行,所以我不能使用 Iron python。建议我使用 IPC 命名管道。我对此没有经验,并且无法弄清楚如何在 C# 和 Python 之间执行此操作。这是一个简单的过程,还是我正在考虑大量的工作?这是解决我的问题的最佳方法吗?

c# python ipc

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

使用RGiesecke.DllExport在C#DLL中没有函数

我正在尝试在C#中创建一个DLL,以便在其他几种语言中使用.我找到了RGiesecke的DllExport,但似乎没有用.它构建得很好并且创建了一个dll,但是当我在Dependency Walker中打开它时它没有显示任何函数,我的调用代码也找不到它们.

我创建了一个新的"类库"项目(VS 2013),然后从NuGet安装了"Unmanaged Exports(DllExport for .Net)".我需要任何项目设置吗?

这是我的代码.

using System;
using System.Collections.Generic;
using System.Text;
using RGiesecke.DllExport;

namespace ToolServiceDLL
{
    public class Class1
    {
      [DllExport("addUp", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
      public static double addUp(double num1, double num2)
      {
        return num1 + num2;
      }

      [DllExport("get5", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
      public static int get5()
      {
        return 5;
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# dll unmanaged

7
推荐指数
1
解决办法
5481
查看次数

在C#和Python之间命名管道

我正在尝试在两个程序之间创建一个双向通信通道(一个在Python中,另一个在C#中)

当我在两个C#程序或两个Python程序之间创建命名管道时,一切正常,但是当我尝试(例如)从Python代码连接到C#服务器时,它不起作用:

C#代码:

NamedPipeServerStream server = new NamedPipeServerStream(
    "Demo", PipeDirection.InOut, 100, PipeTransmissionMode.Byte,
    PipeOptions.None, 4096, 4096)
Run Code Online (Sandbox Code Playgroud)

如果我win32pipe在Python中使用代码块ConnectNamedPipe(它永远不会返回)

p = win32pipe.CreateNamedPipe(
    r'\\.\pipe\Demo',
    win32pipe.PIPE_ACCESS_DUPLEX,
    win32pipe.PIPE_TYPE_BYTE | win32pipe.PIPE_WAIT,
    1, 65536, 65536,
    300,
    None)
win32pipe.ConnectNamedPipe(p)
Run Code Online (Sandbox Code Playgroud)

如果我使用open函数,它只是建立一个连接,但没有任何反应:

open( '\\\\.\\pipe\\Demo', 'r+b' )
Run Code Online (Sandbox Code Playgroud)

现在,如果我关闭Python程序,C#服务器只接收来自Python的一个数据项,并System.IO.IOException引发"管道已损坏"消息

我做错了吗?

c# python windows named-pipes

6
推荐指数
2
解决办法
9902
查看次数

标签 统计

c# ×3

python ×2

dll ×1

ipc ×1

named-pipes ×1

unmanaged ×1

windows ×1