Отправить изображение из C ++ в приложение C #, используя Named Pipe - PullRequest
0 голосов
/ 30 мая 2018

Я узнал о Named Pipe и попытался отправить сообщение из приложения C ++ и C #, и оно отлично работает.Но я не могу отправить изображение со стороны C ++ в C # с помощью Named Pipe.Может кто-нибудь, пожалуйста, скажите мне, как я могу это сделать.

Мой код C # для именованного канала

static void Main(string[] args)
    {
        Console.WriteLine("Creating Client Pipe");
        NamedPipeClientStream pipe = new NamedPipeClientStream(".", "HyperPipe", PipeDirection.InOut);
        Console.WriteLine("Pipe Created Successfully, Connecting to Server");
        pipe.Connect();
        Console.WriteLine("Successfully, Connected to Server");
        using (StreamReader rdr = new StreamReader(pipe, Encoding.Unicode))
        {
            System.Console.WriteLine("Message from Server: " + rdr.ReadToEnd());
        }

        Console.ReadKey();
    }

и Код C ++

int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Server Creating Pipe\n";
    HANDLE hPipe = ::CreateNamedPipe(_T("\\\\.\\pipe\\HyperPipe"),
        PIPE_ACCESS_DUPLEX,
        PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE,
        PIPE_UNLIMITED_INSTANCES,
        4096,
        4096,
        0,
        NULL);

    cout << "Server Created Succesfully";
    ConnectNamedPipe(hPipe, NULL);

    LPTSTR data = _T("Hello");
    cout << "Sending Message to Client";
    DWORD bytesWritten = 0;
    WriteFile(hPipe, data, _tcslen(data) * sizeof(TCHAR), &bytesWritten, NULL);
    CloseHandle(hPipe);
    return 0;
}

Я хочу, чтобы, когда я ввожу путь на стороне C #, он отправлял его на C ++, а с помощью библиотеки OpenCV я извлекал это изображение из памяти и отправлял на C #.

Заранее спасибо

1 Ответ

0 голосов
/ 30 мая 2018

Вы пытались преобразовать ваше изображение в массив байтов, а затем отправить его так же, как вы сделали с текстом?

...