ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

VC++を極める会?コミュのRun-Time Check Failure #2 が出る。(VC7.1)

  • mixiチェック
  • このエントリーをはてなブックマークに追加
こんにちは、Procと申します。初めての投稿です。
よろしくお願いします。環境はWindows XP Pro SP2 Visual Studio 2003です。

beepdll3.dllをDEFファイル付きで作成して、呼び出し側beep3.exeを実行したと
ころ,「Run-Time Check Failure #2 - Stack around the variable 'wCounter'
wascorrupted.」
となってしまいました。FAQかもしれませんが、どなたか解決策は無いでしょう
か?

以下がソースです。
----------------------------------------------------------------------
ソース beepdll3.cpp
include <windows.h>

//ENTRY POINT

BOOL WINAPI DllMain(HINSTANCE hDLL,DWORD dwReason,LPVOID lpReserved)
{
return TRUE;
}

void __stdcall beep (WORD wCounter)
{
WORD loop;

for(loop=0;loop<wCounter;loop++){
Beep(400,100);
Sleep(1000);
}
}
beepdll3.def------------------------------------------------------------------

LIBRARY beepdll3

EXPORTS
beep @3
beepexe3.cpp---------------------------------------------------------------

#include <windows.h>
#include <stdio.h>

void __stdcall beep(WORD wCounter);

//main

void main(void)
{
WORD wCounter;

fprintf(stdout,"beepを鳴らす回数を入力してください");
fscanf(stdin,"%ld",&wCounter);

fprintf(stdout,"beepを%d回鳴らします\n",wCounter);
beep(wCounter);
}

コメント(6)

環境が無いので良くわかりませんが、
とりあえず
fscanf(stdin,"%ld",&wCounter);
は"%d"として...それでランタイムエラーが出たっけかなぁ。

wCounterがおかしいよ、ってことなのですよねぇ。
リンクしてる.libがdllのlibと合ってないとか、
ソースの拡張子を.cにしてみるとか。(^^;
あ、"around the variable 'wCounter' "ですねぇ、
%ldでwCounterの後ろ2Byteが壊されちゃったのがチェックに引っかかったのでしょう。
ありがとうございます。ご指摘の通りでした。wCounterをintにして、%dで受けたらうまくいきました。ありがとうございます。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

VC++を極める会? 更新情報

VC++を極める会?のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング