2

Windows フォーム プロジェクトを作成し、Kinect to Windows SDK を使用して Kinect の音声認識を使用しようとしています。私は持っている

  • フォーム アプリケーション プロジェクト (p1) と
  • コマンド プロンプトである Kinect 音声プロジェクト (p2)。

コマンドプロンプトにしたのは、それが最も簡単な方法だったからです。とにかく、私はこれについて2つのことを読んで見つけました。

1) 同じソリューションで同時に 2 つのプロジェクトを実行する方法を見つけました。

2)各プロジェクトから他のプロジェクトへのクラスを取得するための参照を追加する方法も見つけました。

では、各プロジェクトから変数を取得するにはどうすればよいでしょうか? プロジェクト参照などを使用するだけですか?P2 は音声を認識し、変数に保存できます。

4

4 に答える 4

7

コマンドプロンプトにしたのは、それが最も簡単な方法だったからです。

それが問題のように聞こえます。Kinect プロジェクトをクラス ライブラリにすることを検討する必要があるようです。次に、Windows フォーム アプリケーションからそのクラス ライブラリを呼び出すだけです。

「テスト ベッド」コンソール アプリが必要な場合は、クラス ライブラリも参照するアプリをいつでも作成できます。

一般に、プロジェクト間で変数を共有するべきではないことに注意してください-変数は、ほとんどのカプセル化されたシステムの実装の詳細です-しかし、プロパティ、適切なメソッドなどを公開する型を作成します.

于 2012-06-15T06:00:33.770 に答える
2

私があなたを正しく理解している場合、ここにいくつかのオプションがあります:

  1. これらの変数をプロパティとしてクラスに追加してから、

    using Solution.MyNamespace; 他のプロジェクトを使用するクラスで

  2. 独立している必要がある変数がある場合は、Abstract という名前のクラス ライブラリ プロジェクトを追加するか、両方のプロジェクトが参照するものを追加することを検討してください。

これが役立つことを願っています、乾杯

于 2012-06-15T05:49:36.077 に答える
0

@JonSkeetが言ったように、クラスライブラリを作成すると、次のように情報を保存できます:

    public class SpeechRecognizer
    {
        public List<string> SpeechRecognized = new List<string>
        {

        };

        public void SaveRecognizedSpeech(string foundSpeech)
        {
            SpeechRecognized.Add(foundSpeech);
        }
    }

コード内:

        SpeechRecognizer sr = new SpeechRecognizer();
        sr.SaveRecognizedSpeech("blah blah");
        sr.SaveRecognizedSpeech("BLAH BLAH");
        Console.WriteLine("{0}, {1}", sr.SpeechRecognized[0], sr.SpeechRecognized[1]);
        Console.Read();

ああ、プログラム全体に変数を認識させるには(これらが両方とも同じソリューションにあることを願っています!)、 make them public. お役に立てれば!

于 2012-06-15T15:13:53.923 に答える