Как вызвать код C ++ с помощью сетки событий в Azure? - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь загрузить большой двоичный объект в хранилище Azure, и он успешно загружен. Теперь следующим шагом является обработка большого двоичного объекта с помощью кода C ++. Поскольку функция Azure не поддерживает C ++, как я могу обработать большой двоичный объект?

Ответы [ 2 ]

1 голос
/ 04 июня 2019

К настоящему моменту в функциях Azure, как сказано в комментарии, поддерживаются .NET, Python, Node.js, Java, нет C ++.

Однако, если вы работаете в Linux, вы можете рассмотреть возможность вызоваC ++ в Python или Node.js, например, после документов для Python с Extending Python with C or C++ или для Node.js с C++ Addons.Я думаю, что вам проще использовать сетку событий с функцией Azure.

И есть существующий поток SO о Вызове C / C ++ из Python? , к которому вы можете обратиться.

Или же для работы в Windows, другое решение состоит в том, чтобы скомпилировать ваш код C ++ в динамическую библиотеку в Visual Studio, а затем вы можете вызвать библиотеку DLL в C ++ из кода C #.Пожалуйста, обратитесь к документу MSDN Calling Native Functions from Managed Code, чтобы узнать это, или обратитесь к потоку SO Можно вызвать код C ++ из C #? .

Надеюсь, это поможет.

1 голос
/ 04 июня 2019

Функция Azure поддерживает запуск .exe исполняемого файла. Поэтому я предлагаю сгенерировать exe-файл вашей программы cpp, затем загрузить его в функцию Azure и запустить приведенный ниже пример кода.

enter image description here

using System;

public static void Run(TimerInfo myTimer, TraceWriter log)
{
    System.Diagnostics.Process process = new System.Diagnostics.Process();
    process.StartInfo.FileName = @"D:\home\site\wwwroot\TimerTriggerCSharp1\testfunc.exe";
    process.StartInfo.Arguments = "";
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardError = true;
    process.Start();
    string output = process.StandardOutput.ReadToEnd();
    string err = process.StandardError.ReadToEnd();
    process.WaitForExit();

    log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...