这是DELPHI的官方例子:unit Unit1;interfaceuses
   ActiveX,
{$ifdef CONDITIONALEXPRESSIONS}
  Variants,
{$endif}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, OleServer, SpeechLib_TLB;type
  TfrmContinuousDictation = class(TForm)
    memText: TMemo;
    SpSharedRecoContext: TSpSharedRecoContext;
    procedure FormCreate(Sender: TObject);
    procedure SpSharedRecoContextRecognition(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      RecognitionType: TOleEnum; var Result: OleVariant);
  private
     SRGrammar: ISpeechRecoGrammar;
     { Private declarations }
  public
    { Public declarations }
  end;var
  frmContinuousDictation: TfrmContinuousDictation;implementation{$R *.dfm}procedure TfrmContinuousDictation.FormCreate(Sender: TObject);
begin
  SpSharedRecoContext.EventInterests := SREAllEvents;
  SRGrammar := SpSharedRecoContext.CreateGrammar(1);
   SRGrammar.DictationSetState(SGDSActive);
end;procedure TfrmContinuousDictation.SpSharedRecoContextRecognition(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  RecognitionType: TOleEnum; var Result: OleVariant);
var
  SRResult: ISpeechRecoResult;
begin
  SRResult := IDispatch(Result) as ISpeechRecoResult;
  memText.Text := SRResult.PhraseInfo.GetText(0, -1, True) + #32
end;
end.
为何编译后出现:变量转换错误类型!
而我把该例子翻成VB,却正常。
急!!!!!!!!