私は次のコードを持っています:
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ビットを実行しています。
何がうまくいかないのか、誰にもわかりますか?
ありがとうございました。