[fpc-pascal] Microsoft SAPI on Freepascal

Michael Van Canneyt michael at freepascal.org
Mon Jun 26 20:26:05 CEST 2023



On Mon, 26 Jun 2023, James Richters wrote:

>
> I tried to make your example into a FPC program without Lazarus:
> {$mode objfpc}{$H+}
> uses
>  comobj;
> var
>  SavedCW: Word;
>  v: OleVariant;
> begin
>   v:=CreateOleObject('SAPI.SpVoice');
>   v.Speak('Hello');
> End.
> I get:
> Running "i:\programming\gcode\mill\sapi.exe "
> An unhandled exception occurred at $00414370:
> EOleError: Variant does not reference an automation object
>  $00414370
>  $0041948D
>  $0040B941
>  $004018DF  main,  line 9 of i:/programming/gcode/mill/sapi.pas

I suspect COM is not properly initialized, and that Lazarus does this for you.
(it needs com for some components on windows)

So, try adding unit windows to the uses clause and add

CoInitialize(nil);

as the first statement of your program.


Michael.


More information about the fpc-pascal mailing list