.net — Определение имени сборки для использования с PHP DOTNET

Я пытаюсь использовать Microsoft Speech Platform 11 через PHP-объект DOTNET
https://msdn.microsoft.com/en-us/library/jj127858.aspx

Платформа должна создаваться следующим образом

$platform = new DOTNET("assembly-name", "Microsoft.Speech.Recognition");

Но как получить имя сборки для Speech Platform 11? (заменить «имя-сборки» в вызове инициализации)

Я попробовал несколько названий сборок … догадки, очевидно, без удачи.
Ошибка инициализации

Failed to instantiate .Net object [CreateInstance] [0x80070002] The system cannot find the file specified

ОБНОВИТЬ

С помощью следующего кода я смог заставить PHP найти и использовать сборку

$full_assembly_string = 'Microsoft.Speech, Version=11.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35';
$full_class_name = 'Microsoft.Speech.Recognition.SpeechRecognitionEngine';

$interface = new DOTNET($full_assembly_string, $full_class_name);

Тем не менее, есть новый блокпост:

Failed to instantiate .Net object [Unwrapped, QI for IDispatch] [0x80004002] No such interface supported

На первый взгляд кажется, что это связано с видимостью COM. Но если по какой-либо причине класс не виден для COM (и это кажется странным), как это изменить? Это вообще возможно?

3

Решение

Не испытано. Просто еще одно предположение.

В соответствии с Microsoft Speech Platform SDK 11 Документов:

https://msdn.microsoft.com/en-us/library/microsoft.speech.recognition.speechrecognitionengine.aspx

я бы попробовал:

  • «Сборка» Microsoft.Speech
  • «Имя_класс» Microsoft.Speech.Recognition.SpeechRecognitionEngine
  • Microsoft.Speech.Recognition это только пространство имен

    $sre = new DOTNET(
    'Microsoft.Speech',
    'Microsoft.Speech.Recognition.SpeechRecognitionEngine'
    );
    

Методы описаны здесь: https://msdn.microsoft.com/en-us/library/microsoft.speech.recognition.speechrecognitionengine_members(v=office.14).aspx#Anchor_2

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]