0

私はプログラミングに戻ったばかりなので、これが非常にばかげている場合はご容赦ください。

私は2つのクラスを持っています(今のところ)。1 つは Windows フォーム クラスで、Button_Click イベントを使用して通信ポートを開くようにしています。ユーザーがフォームに入力したデータを Communication クラスに渡して、さらに処理 (送信) したいと考えています。これは Communication クラスを初期化して呼び出す部分です。

wchar_t * data = new wchar_t[nLength];
    *data = *wch;

    SerialCommunication comm1;
    bool comm1ok = comm1.SerialWrite(data);

変数「data」はポインタなので、そのアドレスを他のクラスに渡して使用したい。これは私の2番目のクラスです:

bool SerialCommunication::SerialWrite(wchar_t * datar){...

しかし、データがそこに到達することはありません。SerialWrite() 関数が起動するとすぐに範囲外になります。クラス間を移動したときにポインターが消えないようにするために、このポインターを別の方法で宣言する必要がありますか?

私の知る限り、これらのクラスはどちらも公開されています (SerialCommunication は私が作成したので、公開されていることはわかっています)。

私は何を間違っていますか?何を変更すればよいですか?

ありがとう!

4

1 に答える 1

4

これ:

*data = *wch;

あなたが考えていること(または私があなたが考えていると思うこと)をしません。の最初の要素を の最初の要素にコピーするだけwchですdata

于 2012-05-23T22:42:47.807 に答える