첫 번째 매개 변수로 double 배열을 사용하고 첫 번째 매개 변수를 기반으로 다른 배정 밀도 배열을 다시 전달하는 .net C# 함수가 있습니다.PHP에서 double 배열을 C#으로 전달하는 방법
C# 코드
public int testMath(double[] InputSet, double[] OutputSet)
{
// more complicated than what I am showing but
for (int i = 0; i < 3; i++)
{
OutputSet[i] = InputSet[i] * 2.0;
}
return 1; // Really something else
}
PHP
$mathTest = new DOTNET("MathTest,"
."Version=1.0.0.0,"
."Culture=neutral,"
."PublicKeyToken=213536b1e6bb8ea5"
, "MathTest.MathTest");
$inputValue = Array();
$outputValue = Array();
for ($i = 0; $i < 3; $i++){
$inputValue[$i] = $i * 3.0;
$outputValue[$i] = 0.0;
}
$status = $mathTest->testMath($inputValue, $outputValue);
내가 매개 변수 1은 유형 불일치라고 오류가이를 실행 해보십시오.
필자는 예상대로 작동하는 ref 출력과 입력으로 double을 사용하는 다른 루틴을 가지고 있습니다. 다른 프로그래밍 언어에서이 루틴을 호출 할 수 있지만 PHP에서 작동하도록하는 방법에 관해서는 난처한 입장입니다. com_print_typeinfo를 사용하여 매개 변수를 보았는데 두 인수가 모두 VT_SAFEARRAY로 표시된다는 것을 알았습니다. 저는 1 인자를 OUT으로 바꾸기위한 몇 가지 테스트를 했었습니다. 그리고 그것은 더 나쁘게 만들었습니다 (전혀 실행되지 않을 것입니다). 어떤 제안이라도 대단히 감사하겠습니다.
진지하게, 왜 C#에서 일어날 필요가 있습니까? 또는 다른 방법 라운드? 이것은 끔찍한 일처럼 보입니다. –