0

私は次のコードを持っています:

 Imports System.Speech.Synthesis

 Public Class Form1

     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim m_Synth As New SpeechSynthesizer
        For Each v As InstalledVoice In m_Synth.GetInstalledVoices
            Debug.WriteLine(v.VoiceInfo.Name)
        Next

    End Sub
 End Class

で止まる

        For Each v As InstalledVoice In m_Synth.GetInstalledVoices

エラー「System.FormatException」が表示されます。

これはスタック トレースです。

System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) System.Speech.Internal.SapiAttributeParser.GetCultureInfoFromLanguageString(String) valueString) System.Speech.Synthesis.VoiceInfo..ctor(VoiceObjectToken token) System.Speech.Internal.Synthesis.VoiceSynthesis.BuildInstalledVoices(VoiceSynthesis voiceSynthesizer) System.Speech.Internal.Synthesis.VoiceSynthesis..ctor(WeakReference speechSynthesizer) System.Speech.Synthesis.SpeechSynthesizer.get_VoiceSynthesizer() bei System.Speech.Synthesis.SpeechSynthesizer.GetInstalledVoices() bei voice_test.Form1.Form1_Load(Object sender, EventArgs e) in C:\Users\MyUser\Downloads\kontakt\voice test\voice test\Form1.vb:Zeile 8.

この問題は、プロジェクトの「拡張コンパイル オプション」を「ターゲット CPU: x86」に設定した場合にのみ発生します。「ターゲット CPU: 任意の CPU」に設定すると、コードはエラーなしで実行され、期待どおりの名前が返されます。対象フレームワークは「.NET Framework 4」です。Win7 64ビットを実行しています。

何がうまくいかないのか、誰にもわかりますか?

ありがとうございました。

4

0 に答える 0