ページ 11

Stack overflowエラーが起きる

Posted: 2011年12月19日(月) 18:22
by WIN32 API使いのオカピー
dswebmaster.cpp

コード:

ご本人の依頼により削除しましたが、ルール上まずければ元に戻します。
理由は公開しているフリーウェアが再現出来てしまう全コードだったタメと言うことです。
Impassible.h

コード:

#include <windows.h>
#include <windowsx.h>

TCHAR List[500][80]=
{
TEXT("022型"),
TEXT("03式中距離対空誘導弾"),
TEXT("2S1 グヴォージカ"),
TEXT("2S3 アカーツィア"),
TEXT("2S6M ツングースカ"),
TEXT("2S7 ピオーン"),
TEXT("59式130mm加農砲"),
TEXT("63式軽戦車"),
TEXT("69式戦車"),
TEXT("73式装甲車"),
TEXT("74式戦車"),
TEXT("75式自走榴弾砲"),
TEXT("83式自走砲"),
TEXT("85式装甲車"),
TEXT("86式歩兵戦車"),
TEXT("87式自走高射機関砲"),
TEXT("87式偵察警戒車"),
TEXT("88式戦車B"),
TEXT("88式対空自走砲"),
TEXT("88式地対艦誘導弾"),
TEXT("89式自走ロケット"),
TEXT("89式装甲戦闘車"),
TEXT("89式対戦車自走砲"),
TEXT("90式戦車"),
TEXT("92式ATGW "),
TEXT("96式戦車"),
TEXT("96式装輪装甲車"),
TEXT("96式多目的誘導弾"),
TEXT("97式歩兵戦車"),
TEXT("99式軽戦車"),
TEXT("99式自走榴弾砲"),
TEXT("99式戦車"),
TEXT("9A52スメルチ"),
TEXT("9K31 ストレラ1"),
TEXT("9K33 オーサ"),
TEXT("9K330 トールM1"),
TEXT("9K35 ストレラ10"),
TEXT("9K37 ブークM1"),
TEXT("9K51 グラード"),
TEXT("9K51グラード"),
TEXT("9P140 ウーラガン"),
TEXT("A-10サンダーボルトⅡ"),
TEXT("AAV-7A1"),
TEXT("AC-130U スプーキー"),
TEXT("AH-1 コブラ"),
TEXT("AH-1W スーパーコブラ(制空)"),
TEXT("AH-1W スーパーコブラ(対地)"),
TEXT("AH-64 アパッチ"),
TEXT("AH-64D ロングボウアパッチ"),
TEXT("AIFV"),
TEXT("AMX(対艦)"),
TEXT("AMX(対地)"),
TEXT("AMX-10RC"),
TEXT("AMX-30"),
TEXT("AMX-30GCT AU-F1"),
TEXT("AS-565 パンサー(対艦)"),
TEXT("AS-565 パンサー(対潜)"),
TEXT("ATACMS"),
TEXT("B-1 チェンタウロ"),
TEXT("B-52 ストラトフォートレス"),
TEXT("BMP-1"),
TEXT("BMP-2"),
TEXT("BMP-3"),
TEXT("BRDM-2"),
TEXT("BTR-60"),
TEXT("BTR-80"),
TEXT("CN国戦闘工兵"),
TEXT("CN国歩兵"),
TEXT("EE-11 ウルツ"),
TEXT("EE-9 カスカベル"),
TEXT("EU国戦闘工兵"),
TEXT("EU国歩兵"),
TEXT("F/A-18 スーパーホーネット(制空)"),
TEXT("F/A-18ホーネット (制空)"),
TEXT("F/A-18ホーネット(対艦)"),
TEXT("F/A-18ホーネット(対地)"),
TEXT("F-1(対艦)"),
TEXT("F-1(対地)"),
TEXT("F-14 トムキャット"),
TEXT("F-15 イーグル(制空)"),
TEXT("F-15 イーグル(対地)"),
TEXT("F-15C(制空)"),
TEXT("F-15C(対地)"),
TEXT("F-15E ストライクイーグル(制空)"),
TEXT("F-15E ストライクイーグル(対地)"),
TEXT("F-15J イーグル(制空)"),
TEXT("F-15J イーグル(対地)"),
TEXT("F-15J改 イーグル"),
TEXT("F-15K(制空)"),
TEXT("F-15K(対艦)"),
TEXT("F-15K(対地)"),
TEXT("F-16 ファルコン(制空)"),
TEXT("F-16 ファルコン(対地)"),
TEXT("F-16C ファルコン(制空)"),
TEXT("F-16C ファルコン(対地)"),
TEXT("F-16I スファ(制空)"),
TEXT("F-16ファルコン(制空)"),
TEXT("F-16ファルコン(対地)"),
TEXT("F-2(対艦)"),
TEXT("F-2(対地)"),
TEXT("F-22 ラプター"),
TEXT("F-2改"),
TEXT("F-4 ファントムⅡ(制空)"),
TEXT("F-4 ファントムⅡ(対地)"),
TEXT("F-4EJ改 ファントムⅡ(制空)"),
TEXT("F-4EJ改 ファントムⅡ(対地)"),
TEXT("F-5E タイガーⅡ(制空)"),
TEXT("F-5E タイガーⅡ(対地)"),
TEXT("HIMARS"),
TEXT("JA-37 ヤクトビゲン(制空)"),
TEXT("JA-37 ヤクトビゲン(対地)"),
TEXT("JAS-39 グリペン"),
TEXT("JP国戦闘工兵"),
TEXT("JP国歩兵"),
TEXT("K1"),
TEXT("K1A1"),
TEXT("K2"),
TEXT("K200A1"),
TEXT("K21"),
TEXT("K242A1"),
TEXT("K263"),
TEXT("K30 飛虎"),
TEXT("K9"),
TEXT("Ka-27 へリックス"),
TEXT("Ka-50 ホーカム"),
TEXT("KM900"),
TEXT("KR国戦闘工兵"),
TEXT("KR国歩兵"),
TEXT("KSAM 天馬"),
TEXT("L70"),
TEXT("LAV-25"),
TEXT("LAV-AD"),
TEXT("LAV-AT"),
TEXT("M109"),
TEXT("M109A6 パラディン"),
TEXT("M110"),
TEXT("M113"),
TEXT("M113TOW"),
TEXT("M1A1 エイブラムス"),
TEXT("M1AI エイブラムス"),
TEXT("M2 ブラッドリー"),
TEXT("M-46"),
TEXT("M48A5K"),
TEXT("M60"),
TEXT("M901ITV"),
TEXT("ME国戦闘工兵"),
TEXT("ME国歩兵"),
TEXT("Mi-17 ヒップH(攻撃)"),
TEXT("Mi-17 ヒップH(占領)"),
TEXT("Mi-24 ハインド"),
TEXT("Mi-28 ハボック"),
TEXT("MiG-21 フィッシュベッド(制空)"),
TEXT("MiG-21 フィッシュベッド(対地)"),
TEXT("MiG-23 フロッガー(制空)"),
TEXT("MiG-23 フロッガー(対地)"),
TEXT("MiG-25 フォックスバット"),
TEXT("MiG-27 フロッガー"),
TEXT("MiG-29 ファルクラム(制空)"),
TEXT("MiG-29 ファルクラム(対地)"),
TEXT("MiG-29S ファルクラム"),
TEXT("MiG-29SMT ファルクラム"),
TEXT("MiG-31 フォックスハウンド"),
TEXT("MLRS"),
TEXT("MT-LB"),
TEXT("P3C オライオン(対艦)"),
TEXT("P3C オライオン(対潜)"),
TEXT("PAH-1"),
TEXT("PGZ-95"),
TEXT("RJPz ヤグアル"),
TEXT("RS国戦闘工兵"),
TEXT("RS国歩兵"),
TEXT("S-125 ネバ"),
TEXT("S-300"),
TEXT("SA-330ピューマ(占領)"),
TEXT("SA-342 ガゼル"),
TEXT("Sa'ar4 レシェフ"),
TEXT("SH-60 シーホーク"),
TEXT("SH-60K"),
TEXT("SIDAM25"),
TEXT("SPz-2ルクス"),
TEXT("Su-17 フィッター"),
TEXT("Su-24 フェンサー(対艦)"),
TEXT("Su-24 フェンサー(対地)"),
TEXT("Su-25 フロッグフット"),
TEXT("Su-27 フランカー"),
TEXT("Su-33 フランカー(制空)"),
TEXT("Su-33 フランカー(対地)"),
TEXT("Su-34"),
TEXT("T-55"),
TEXT("T-62"),
TEXT("T-72"),
TEXT("T-80U"),
TEXT("T-90"),
TEXT("TPz-1 フクス"),
TEXT("Tu-142 ベアF(対潜)"),
TEXT("Tu-16 バジャー(対艦)"),
TEXT("Tu-16 バジャー(爆撃)"),
TEXT("Tu-95 ベア(爆撃)"),
TEXT("Type143A ゲパルト"),
TEXT("Type212A"),
TEXT("Type214"),
TEXT("Type42 マンチェスター"),
TEXT("UH-1 イロコイ(攻撃)"),
TEXT("UH-1 イロコイ(占領)"),
TEXT("UH-60 ブラックホーク(攻撃)"),
TEXT("UH-60 ブラックホーク(占領)"),
TEXT("UHT ティーガー(対地)"),
TEXT("US国戦闘工兵"),
TEXT("US国歩兵"),
TEXT("V-75"),
TEXT("VCAC HOT メフィスト"),
TEXT("VCC-1 カミリーノ"),
TEXT("WZ-551 "),
TEXT("ZRK-SD カブ"),
TEXT("ZSU-23-4 シルカ"),
TEXT("アーレイバーク"),
TEXT("アーレイバーク フライト ⅡA"),
TEXT("アイオワ"),
TEXT("アクラ"),
TEXT("あさぎり"),
TEXT("あたご"),
TEXT("アトランティック"),
TEXT("アベンジャー"),
TEXT("アル・ヴァンド"),
TEXT("ヴァージニア"),
TEXT("ヴィーゼルTOW-A1"),
TEXT("ウダロイ"),
TEXT("オーサ"),
TEXT("おやしお"),
TEXT("オリバー・ハザード・ペリー"),
TEXT("カサール"),
TEXT("カマン"),
TEXT("キロ"),
TEXT("クリヴァク"),
TEXT("ゲパルト"),
TEXT("ゲパルト改"),
TEXT("こんごう"),
TEXT("ザクセン"),
TEXT("サルヴァトーレ・ペロシ"),
TEXT("シーウルフ"),
TEXT("ジャギュア"),
TEXT("ジョルジュレイグ"),
TEXT("スーパーリンクス"),
TEXT("スターストリーク"),
TEXT("ストライカーATGM"),
TEXT("ストライカーMGS"),
TEXT("スラヴァ"),
TEXT("ソブレメンヌイ"),
TEXT("タイコンデロガ"),
TEXT("たかなみ"),
TEXT("タランタル"),
TEXT("チーフテン"),
TEXT("チャパラル"),
TEXT("チャレンジャー"),
TEXT("チャレンジャー2 "),
TEXT("トーネードADV"),
TEXT("トーネードF.3"),
TEXT("トーネードIDS(対艦)"),
TEXT("トーネードIDS(対地)"),
TEXT("トンダール"),
TEXT("ナイキ・ハーキュリーズ"),
TEXT("ネウストラシムイ"),
TEXT("ノックス"),
TEXT("はたかぜ"),
TEXT("はつゆき"),
TEXT("はやぶさ"),
TEXT("はるしお"),
TEXT("はるな"),
TEXT("ブラウンシュバイク"),
TEXT("プレヴェゼ"),
TEXT("ブレーメン"),
TEXT("ペトリオット"),
TEXT("ホーク"),
TEXT("ホーク改"),
TEXT("マルダー"),
TEXT("ミラージュ2000(制空)"),
TEXT("ミラージュ2000(対艦)"),
TEXT("ミラージュ2000(対地)"),
TEXT("ミラージュF-1(制空)"),
TEXT("ミラージュF-1(対地)"),
TEXT("むらさめ"),
TEXT("メルカバⅡ"),
TEXT("メルカバⅢ"),
TEXT("ラーダ"),
TEXT("ラファールD"),
TEXT("ラファイエット"),
TEXT("リュビ"),
TEXT("ルクレール"),
TEXT("レイピア"),
TEXT("レオパルト2"),
TEXT("ローラント"),
TEXT("ロスアンゼルス"),
TEXT("ロメオ"),
TEXT("蔚山"),
TEXT("漢"),
TEXT("強撃5型(対艦)"),
TEXT("強撃5型(対地)"),
TEXT("九龍"),
TEXT("元"),
TEXT("広開土大王"),
TEXT("広州"),
TEXT("杭州"),
TEXT("江衛"),
TEXT("紅箭"),
TEXT("轟炸6型(対艦)"),
TEXT("轟炸6型(爆撃)"),
TEXT("水轟5型"),
TEXT("世宗大王"),
TEXT("忠武公李舜臣"),
TEXT("張保皐"),
TEXT("直昇9型(攻撃)"),
TEXT("直昇9型(占領)"),
TEXT("直昇9型C"),
TEXT("東風11号"),
TEXT("武直10型(対地)"),
TEXT("北京212/無反動砲"),
TEXT("旅海"),
TEXT("旅大"),
TEXT("旅滬"),
TEXT("殲撃10型(制空)"),
TEXT("殲撃10型(対地)"),
TEXT("殲撃7型(制空)"),
TEXT("殲撃8型Ⅱ(制空)"),
TEXT("殲撃8型Ⅱ(対地)")};
resource.h

コード:

#ifndef IDC_STATIC
#define IDC_STATIC (-1)
#endif

#define IDM_END                                 102
#define IDM_SAVEAS                              103
#define IDM_SAVE                                104
#define IDM_NEW                                 105
#define IDM_OPEN                                106
#define IDM_UNDO                                107
#define IDM_CUT                                 108
#define IDM_COPY                                109
#define IDM_PASTE                               110
#define IDM_DEL                                 111
#define IDM_ALL                                 114
#define IDM_YMD2                                122
#define IDM_HMS1                                124
#define IDM_HMS2                                125
#define IDM_YMD1                                126
#define IDM_______A_1                           40001
#define IDC_LIST1                               40002
dswebmaster.rc

コード:

// Generated by ResEdit 1.5.8
// Copyright (C) 2006-2011
// http://www.resedit.net

#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"




//
// Menu resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
MYMENU MENU
{
    POPUP "ファイル(&F)"
    {
        MENUITEM "新規(&N)\tCtrl+N", IDM_NEW
        MENUITEM "開く(&O)\tCtrl+O", IDM_OPEN
        MENUITEM "上書き保存(&S)\tCtrl+S", IDM_SAVE
        MENUITEM "名前をつけて保存(&A)...", IDM_SAVEAS
        MENUITEM SEPARATOR
        MENUITEM "終了(&X)", IDM_END
    }
    POPUP "編集(&E)"
    {
        MENUITEM "元に戻す(&U)\tCtrl+Z", IDM_UNDO
        MENUITEM SEPARATOR
        MENUITEM "切り取り(&T)\tCtrl+X", IDM_CUT
        MENUITEM "コピー(&C)\tCtrl+C", IDM_COPY
        MENUITEM "貼り付け(&P)\tCtrl+V", IDM_PASTE
        MENUITEM "削除(&D)\tDel", IDM_DEL
        MENUITEM SEPARATOR
        MENUITEM "すべて選択(&A)\tCtrl+A", IDM_ALL
    }
    POPUP "ツール(&T)"
    {
        POPUP "年月日挿入(&Y)"
        {
            MENUITEM "Y年M月D日", IDM_YMD1
            MENUITEM "Y/M/D", IDM_YMD2
        }
        POPUP "時刻挿入(&H)"
        {
            MENUITEM "H時M分S秒", IDM_HMS1
            MENUITEM "H:M:S", IDM_HMS2
        }
        MENUITEM "兵器名入力(&I)  Ctrl+I", IDM_______A_1
    }
    POPUP ""
    {
        MENUITEM SEPARATOR
    }
}



//
// Dialog resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
MYDIALOG DIALOGEX 0, 30, 313, 217
STYLE DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_POPUP | WS_SYSMENU
CAPTION "兵器名入力"
FONT 8, "Ms Shell Dlg", 400, 0, 128
{
    DEFPUSHBUTTON   "OK", IDOK, 13, 193, 69, 15
    PUSHBUTTON      "キャンセル", IDCANCEL, 233, 193, 69, 15
    LTEXT           "挿入したい兵器名を選択して「OK」を押してください\n\n\n閉じる場合は「キャンセル」を押してください", IDC_STATIC, 15, 132, 202, 43, SS_LEFT
    LISTBOX         IDC_LIST1, 17, 15, 278, 106, WS_TABSTOP | WS_VSCROLL | LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
}



//
// Accelerator resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
MYACCEL ACCELERATORS
{
    "A",            IDM_ALL, VIRTKEY, CONTROL
    "C",            IDM_COPY, VIRTKEY, CONTROL
    "X",            IDM_CUT, VIRTKEY, CONTROL
    VK_DELETE,     IDM_DEL, VIRTKEY
    "N",            IDM_NEW, VIRTKEY, CONTROL
    "O",            IDM_OPEN, VIRTKEY, CONTROL
    "V",            IDM_PASTE, VIRTKEY, CONTROL
    "S",            IDM_SAVE, VIRTKEY, CONTROL
    "Z",            IDM_UNDO, VIRTKEY, CONTROL
    "I",            IDM_______A_1, VIRTKEY, CONTROL
}



//
// Icon resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
MYICON             ICON           "icon1.ico"
header.h

コード:

#pragma comment(lib,"comctl32.lib")

このようなプログラムを作りました
趣旨としては、メモ帳を拡張したような感じで、某ゲームの兵器名(実在しますw)がダイアログから入力できるようにしたものです。
でもなぜか、Stack overflowエラーが起きます
なぜなんでしょう?どこか泥沼にハマっているところ、ありますでしょうか?

Re: Stack overflowエラーが起きる

Posted: 2011年12月19日(月) 19:24
by みけCAT
MyDlgProcのcase WM_COMMAND:の後、case WM_INITDIALOG:の前にbreak;が無いですが、仕様ですか?
MySaveAsでClosehandle(hFile);が見当たりませんが、正常ですか?

Re: Stack overflowエラーが起きる

Posted: 2011年12月20日(火) 17:26
by softya(ソフト屋)
こちらも閉鎖します。

続きは、こちらでお願いします。
「超巨大配列の確保 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?t=9 ... 114#p79114