2012-02-23 12 views
0

私は現在、複数の機能を持つプログラム(楽しいため、これは割り当てではありません)に取り組んでいます。私は昨日前にWin32を使用していないので、私はむしろ新しいです。 TheForgerのチュートリアルを使い始めました。今、私はそれに4つの編集ボックス、charge1、charge2、charge3、および粒子間の距離を持つダイアログフォームを持っています。私はこの情報を得て、粒子間の力の大きさを解くために式に差し込んでいます。私は私が編集ボックスからデータを取得しています部分を取得する場合ダイアログ編集コントロールからダブルを読む

、私はここで0

を受け付けております私の現在のコードです:

case ID_SOLVE: 
{ 
    ZeroMemory(coulombDisplay, sizeof(coulombDisplay)); 

    GetDlgItemText(g_hCoulombs, IDC_DISTANCE, value1, 10); 
    coulombsDistance = atof(value1); 

    GetDlgItemText(g_hCoulombs, IDC_CHARGE1, value2, 10); 
    coulombsStrength1Base = atof(value2); 

    GetDlgItemText(g_hCoulombs, IDC_CHARGE2, value3, 10); 
    coulombsStrength2Base = atof(value3); 

    if(coulombsDistance == 0.0) 
    { 
     MessageBox(NULL, "WHAT", "WHAT", MB_OK | MB_ICONEXCLAMATION); 
     DestroyWindow(g_hCoulombs); 
    } 

    coulombsResult = (coulombsStrength1Base * coulombsStrength2Base); 
    coulombsResult /= (pow(coulombsDistance, 2)); 
    coulombsResult *= kConstant; 

    sprintf(coulombDisplay, "%g", coulombsResult); 
    SendDlgItemMessage(g_hCoulombs, IDC_FORCE, WM_SETTEXT, 0, (LPARAM)(LPCSTR)coulombDisplay); 
} 
break; 

value1value2value3、およびcoulombDisplayはすべて

coulombsResultをzero'dされているchar[]coulombsDistancecoulombsStrength1Base、ありますはすべてdouble s

メッセージボックスは、プログラムを実行するたびに「何」がポップアップしているかを示します。 VC++ 2010のマルチバイト文字セットを使用しています。

ご協力いただけると助かります。

+0

デバッガをご利用いただけませんか?あなたはVC++ 2010 Expressを使用していますかプロフェッショナルですか? – macduff

+0

エクスプレス、現在は非アクティブです。このコンピュータが登録キーを入力する管理者権限がありません。 – that0n3guy

+1

'atof'を呼び出すたびに' errno'があなたに与えることは何ですか? – 0xC0000022L

答えて

1

STATUS_ACCESS_DENIEDは良い点があります。 atofのドキュメントを見ると、エラー状態で0.0が返されることがわかります。私はログファイルか何かにデータを書き込むことをお勧めしたいと思います。私は、あなたの割り当てられたcharバッファが十分に大きいのだろうかと思います。

+0

ResEditでリソースファイルを開き、再度保存することで問題を解決したようです。なぜこの問題が修正されたのかは分かりませんが、その間にソースコードを変更しませんでした。しかし、今は正しく出力されています。提案ありがとう。それ以上の問題が発生した場合は、念頭に置いておきます。 – that0n3guy

+0

それを聞いてうれしい! – macduff

1

GetDlgItemTextの代わりにGetDlgItemTextAを試して、16ビット文字ではなく8ビット文字を返すようにしてください。 16ビット文字は、通常、上半分にゼロを持ち、空の8ビット文字列として解釈されます。

関連する問題