Это простое консольное приложение на c #, для добавления двух чисел, я вызываю этот exe из php и передаю 2 аргумента 5 и 6, ожидая, что вывод будет суммой двух чисел, но я получаю вывод как "x: \ Program ' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл. " Хотя файл успешно выполнен. Кажется проблема с фредом.
PHP:
<?php
$handle = popen(dirname(__FILE__) . '/sum.exe 5 6 2>&1', 'r');
$read ='';
while (!feof($handle))
{
$read .= fread($handle, 8192);
}
echo $read;
pclose($handle);
?>
C#:
static void Main(string[] args)
{
int result = Convert.ToInt32(args[0]) + Convert.ToInt32(args[1]);
Console.Write(result.ToString());
}
Однако, если я возвращаю простую строку из c # и затем вызываю ее, хотя это exe из php без каких-либо аргументов, то это работает нормально. например
static void Main(string[] args)
{
Console.Write("check");
}
<?php
$handle = popen(dirname(FILE) . '/sum.exe', 'r');
$read ='';
while (!feof($handle)) {
$read .= fread($handle, 8192);
}
echo $read;
pclose($handle);
?>