2011-02-08 14 views
1

私はC++でプログラミングをしていましたが、Visual C++で始まって電卓を作ろうとするのは面白いと思いました。VisualC++関数の問題点(その他)

私は単純なウィンドウで、2つのテキストボックスと1つのボタンで2つのボックスを一緒に追加するように設計しました。 私はこれのための関数が必要ないことを知っていますが、私はそれらを学ぶために、物事を試してみたい。 デザインビューのImでは、ボタンをダブルクリックしてコードを取得します。 コードの最初に、2つの変数を作成し、値を割り当てました。 ここでは、2つのパラメータをとり、追加された値を返す関数を呼びたいと思います。私はこのエラーが出るので、それは、迷惑を取得 ザッツ:

error C3861: 'addFunction': identifier not found 

私はまた別の問題を抱えています。 両方のテキストボックスに値があることを確認するif()があります。 ザ・このようであれば:右、変数の

error C2676: binary '&&' : 'std::string' does not define this operator or a conversion to a type acceptable to the predefined operator 

うん、1は文字列ですが、それはまだ動作するはずです:コンパイラは私にこのエラーが発生します

if(a && b) 

私はあなたが私を助けることができる!

編集 私はこれらの2つの問題を解決しましたが、今ではもう少し発生しました。

つのエラーは、この文句を言っている:

textstring = DecryptedBox->Text; 

、別のエラーが発生し、それが何を意味するコンパイラログに同様の10倍

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring(707): could be 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(std::basic_string<_Elem,_Traits,_Ax> &&)' 
1>   with 
1>   [ 
1>    _Elem=char, 
1>    _Traits=std::char_traits<char>, 
1>    _Ax=std::allocator<char> 
1>   ] 

をoccuring?

+2

いくつかのコードを投稿し、またファイル構造についても言及してください。 – Nawaz

+1

問題を解決した場合は、有用な回答に投票し、最も役立った回答を受け入れる必要があります。次に、新しい問題について新しい質問を投稿する必要があります。 – Dima

+0

それでは。私はこれについて新しい質問をします。 – Janman

答えて

1

は、両方の文字列値です。だから、

if(a.empty() || b.empty()) 
    std::cout << "Values don't exist in one of the boxes" << std::endl; 

ような何かを行う必要があり、見つかっていないaddFunction識別子は、コンパイラがaddFunction機能を見つけることができないことを意味します。あなたはそれを宣言しましたか?それは別のクラスにあり、あなたはインクルードをしていませんか? if(a && b)文のエラーのために

+0

'empty'は関数です。あなたはそれに空のかっこが必要です。 –

+0

おかげで、少し速くそれを書きました – Grammin

1

&&の文字列を使用することはできません。これは論理演算子です。パラメータはブール値に変換する必要があります。試してみることができます:

とすると、aとbは空文字列に初期化されます。

あなた addFunction問題については

、十分な詳細...

MY2C

+0

FWIWは、式を 'if'ステートメントで組み合わせると、余分な括弧が読み込みを助けます。 '' if((a!= "")&&(b!= "")) 'とすると、読者(およびコーダ)がその文を誤解しないように特別な保険を提供します。 –

+0

@トーマス:もちろん。私は私の "コード"を変更しました – neuro

1

あなたが "addFunction" を定義していないように思えます。あなたはおそらくそれを間違って綴りました。

、文字列が空であるかどうかをチェックし、そのサイズは、だからあなたのコードになるはずです> 0の場合だけで確認するには:私は、その文字列に& & Bをassummingてる

if(a.size() && b.size()) 
+0

ねえ。あなたは system :: Stringでそれをテストしましたか? コンパイルエラー: エラーC2039: 'Size': 'System :: String'のメンバーではありません – Janman

+0

これはSystem :: Stringではなくstd :: stringで動作するようになっています。とにかく小文字の "サイズ"を試してみてください。 – mfontanini

+0

私は持っていて、うまくいきませんでした。長さを得る別の方法があるかどうか教えてください。 – Janman

1

、あなたはおそらく誤っabchar * Cスタイルであると仮定されている、とあなたはNULLであることのためにそれらをチェックしようとしています。しかし、実際にはabはブール値に変換できないクラスstd::stringのオブジェクトであると思われます。 empty()メンバ関数を使用すると、std::stringが空であるかどうかを確認できます。または、それが""に等しいかどうかをチェックします。

未定義関数のエラーについては、関数が定義されているヘッダーと正しい名前空間を持っているかどうかを確認してください。