0

1 つのソリューションに 2 つのプロジェクトがあります。Project1Project2と言います。Project1 には抽象クラスとその実装のみが含まれ、Project2 への参照として追加されます。関数の 1 つであるProject1 のClass1のConnect()は、次のように定義されています。

 public bool Connect() { ...TCP connection code }

Project2 では、 Object1の Connect 関数は次のように呼び出されます。

 if (carlValentin.Connect() != false) {...}

IDE として Visual Studio 2010 を使用しています。
ここに奇妙さがあります。構成としてデバッグを選択すると、すべてがうまくいき、コンパイルが完了し、アプリケーションが実行されます。ただし、構成をReleaseに切り替えると、次の関数の戻り値の型エラーが発生します。
Operator != cannot be applied to the operands of type void and bool.

Project1 には、Connect 関数の他のオーバーロードされたメソッドは含まれていません。前述のとおり、Project2 は Project1 に依存しています。Connect の以前の定義では戻り値の型として void があったため、私が行った変更に問題があるのではないかと思います。しかし、Project1 が最初にコンパイルされてから Project2 がビルドされるように、プロジェクトのビルド順序が構成されていることは確かです。

4

1 に答える 1

1

さまざまなデバッグ/リリース モードでコンパイルされたもののリストが破損したと言えます。Build->Configuration Manager に移動し、Debug/Release モードとプラットフォームのさまざまな組み合わせをすべて選択し、さまざまなBuildチェックボックスがすべてオンになっていることを確認します。

于 2013-08-21T07:52:11.407 に答える