0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 9
1

Код работает в Visual Studio, но не работает в Borland turbo 2005

07.05.2014, 23:12. Показов 353. Ответов 0
Метки нет (Все метки)

Проект должен быть выполнен в борланде, соббсна поэтому и задается вопрос:
Следующий код:

Header.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#define STRICT
 
#include <windows.h>
#include <stdio.h>
#include <stdio.h>
//#include "Defines.h"
 
BOOL InitApp(HINSTANCE);
#define ID_BUTTON 2
#define ID_NEWGAME 20001
#define ID_SETTINGS 20002
#define ID_HELP 20003
#define ID_CREDITS 20004
 
LRESULT CALLBACK  WndProc(HWND, UINT, WPARAM, LPARAM);
 
HDC hdc;
 
HINSTANCE hInstance;
 
//Создание и инициализация всех кистей
HBRUSH hBGBrush = CreateSolidBrush(RGB(127,255,212  )); //Кисть для фона
HBRUSH hbrush = CreateSolidBrush (RGB(100, 100, 100));
//Создание дескрипторов
HWND hMenuWindow;           //Дескриптор начального окна с настройками
HWND hGameWindow;               //Дескриптор игрового окна
 
HWND hMenuServer_RB;            //Дескриптор радиокнопки "Сервер"
HWND hMenuClient_RB;            //Дескриптор радиокнопки "Клиент"
HWND hMenuDeskTypeA_RB;         //Дескриптор радиокнопки "Тип доски А"
HWND hMenuDeskTypeB_RB;         //Дескриптор радиокнопки "Тип доски B"
HWND hMenuDeskTypeC_RB;         //Дескриптор радиокнопки "Тип доски C"
HWND hMenuFigureTypeA_RB;       //Дескриптор радиокнопки "Тип фигуры А"
HWND hMenuFigureTypeB_RB;       //Дескриптор радиокнопки "Тип фигуры B"
HWND hMenuFigureTypeC_RB;       //Дескриптор радиокнопки "Тип фигуры С"
 
HWND hMenuStartButton;          //Дескриптор кноки "Начать игру"
 
HWND hMenuServerIP_EB;          //Дескриптор текстового окна IP адреса сервера
HWND hMenuClientIP_EB;          //Дескриптор текстового окна IP адреса клиента
HWND hMenuServerPort_EB;        //Дескриптор текстового окна IP адреса сервера
HWND hMenuClientPort_EB;        //Дескриптор текстового окна IP адреса клиента
 
HWND hMenuServer_GB;            //Дескриптор GroupBox'a "Данные о сервере"
HWND hMenuClient_GB;            //Дескриптор GroupBox'a "Данные о клиенте"
HWND hMenuDeskType_GB;          //Дескриптор GroupBox'a "Тип доски"
HWND hMenuFigureType_GB;        //Дескриптор GroupBox'a "Тип фигур"
 
HMENU hMainMenu;                //Главное меню игры.
HMENU MainMenuGame;
HMENU MainMenuSettings;
и

Source.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include "Header.h"
 
char const szClassName[] = "WindowAppClass";
char const szWindowTitle[] = "ДОБРО ПОЖАЛОВАТЬ В МИЛЫЕШАХМАТЫ";
 
int nBkMode = OPAQUE;
static LOGFONT lf;
// =====================================
// Функция WinMain
// Получает управление при запуске
// приложения
// =====================================
 
#pragma argsused
 
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpszCmdLine, int nCmdShow){
        MSG msg; // структура для работы с сообщениями
 
    // Проверяем, не запускалось ли это приложение ранее
    if(!hPrevInstance){
        if(!InitApp(hInstance))
            return FALSE;
    }
 
    else{
        MessageBox(NULL, "Можно запускать только одну копию приложения",
            "Ошибка", MB_OK | MB_ICONSTOP);
        return FALSE;
    }
 
    // После успешной инициализации приложения создаем
    // главное окно приложения
    hGameWindow = CreateWindow(
        szClassName, // имя класса окна
        szWindowTitle, // заголовок окна
        WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX, // стиль окна
        CW_USEDEFAULT, // задаем размеры и расположение
        CW_USEDEFAULT, // окна, принятые по умолчанию
        640,
        480,
        0, // идентификатор родительского окна
        0, // идентификатор меню
        hInstance, // идентификатор приложения
        NULL); // указатель на дополнительные параметры
 
    if(!hGameWindow)
        return FALSE;
 
    ShowWindow(hGameWindow,SW_SHOWNORMAL);
    UpdateWindow(hGameWindow);
 
    while(GetMessage(&msg, 0, 0, 0)){
        DispatchMessage(&msg);
    }
    return msg.wParam;
 
}
 
// =====================================
// Функция InitApp
// Вызывается из функции WinMain для
// инициализации приложения.
// Выполняет регистрацию класса окна
// =====================================
 
    BOOL InitApp(HINSTANCE hInstance){
        ATOM aWndClass;
        WNDCLASS wc;
        memset(&wc, 0, sizeof(wc));
        wc.style = CS_DBLCLKS;
        wc.lpfnWndProc = (WNDPROC) WndProc;
        wc.cbClsExtra = 0;
        wc.cbWndExtra = 0;
        wc.hInstance = hInstance;
        wc.hIcon = LoadIcon(hInstance, "AppIcon");
        wc.hCursor = LoadCursor(NULL, IDC_ARROW);
        wc.hbrBackground = hBGBrush;
        wc.lpszMenuName = (LPSTR)NULL;
        wc.lpszClassName = (LPSTR)szClassName;
        aWndClass = RegisterClass(&wc);
 
        return (aWndClass != 0);
    }
    LRESULT CALLBACK  WndProc(HWND hGameWindow, UINT msg, WPARAM wParam, LPARAM lParam){
        HDC hdc;
        PAINTSTRUCT ps;
        switch (msg){
            case WM_CREATE:{
                hMainMenu = CreateMenu();
                bool t = SetMenu(hGameWindow,hMainMenu);
                MainMenuSettings = CreatePopupMenu();
                MainMenuGame = CreatePopupMenu();
 
                AppendMenu(MainMenuGame, MF_ENABLED|MF_STRING, 20011, "&Новая игра");
                AppendMenu(MainMenuGame, MF_ENABLED|MF_STRING, 20012, "&Настройки");
                AppendMenu(MainMenuGame, MF_ENABLED|MF_STRING, 20013, "&Выход");
                AppendMenu(MainMenuSettings, MF_ENABLED|MF_STRING, 20021, "&Правила");
                AppendMenu(MainMenuSettings, MF_ENABLED|MF_STRING, 20022, "&О программе");
 
                AppendMenu(hMainMenu, MF_ENABLED|MF_POPUP, (UINT)MainMenuGame, "&Игра");
                AppendMenu(hMainMenu, MF_ENABLED|MF_POPUP, (UINT)MainMenuSettings, "&Справка");
 
 
 
                DrawMenuBar(hGameWindow);
                break;
            }
            case WM_COMMAND:{
 
              break;
            }
 
            case WM_PAINT:{
 
                break;
            }
 
            case WM_DESTROY:{
                int ch;
                ch = MessageBox(hGameWindow,"Уверены??", "RELAX", MB_YESNO|MB_ICONSTOP|MB_APPLMODAL);
                if(ch == IDYES){
                    PostQuitMessage(0);
                    break;
                }
                if(ch == IDNO){
                    MessageBox(hGameWindow,"УРА!","RELAX",MB_OK|MB_ICONQUESTION|MB_APPLMODAL);
                    ShowWindow(hGameWindow,SW_SHOWNORMAL);
                    UpdateWindow(hGameWindow);
                    break;
                }
            }
//          case WM_CTLCOLORSTATIC:{
//                  HDC hdcStatic = (HDC)wParam;
//                  SetTextColor (hdcStatic, RGB (0, 0, 0));
//                  SetBkColor(hdcStatic, RGB(127,255,212));
//                  return (LONG)hBGBrush;
//          }
        }
 
    return DefWindowProc(hGameWindow, msg, wParam, lParam);
 
}
Работает в Visual Studio, как надо: голубой фон и менюшки.
В Борланде, появляется окно с серым экраном и без меню.

Какие причины могут стоят за этим явлением?
Заранее спасибо.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2014, 23:12
Ответы с готовыми решениями:

Код не работает в 2008 версии visual studio, но работает в 2005
Добрый день. Писала на университетском компьютере программу, считывающую данные из файла в список...

Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему?
Вводим строку и меняем в ней первый и последний символы. Всё хорошо в Borland Developer Studio, а...

SQL 2005 не работает с ms visual studio 2010 ?
Здравствуйте! Операционная система xp sp3,среда разработки Microsoft Visual Studio 2010, сервер...

Программа в Visual Studio работает, а в Borland C++ нет
Здравствуйте! У меня такая проблемма: программа работает на Visual Studio, а на Borland C++ выдает...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2014, 23:12

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Код не работает вне Visual Studio?
Добрый день. Написал код и при компиляции VS, код работает исправно. Но стоит запустить файл...

Код не работает в visual studio 2012
Незнаю почему но этот код не работает в visual studio 2012, как исправить, но дома 2017 версия и...

Не работает код в visual studio 2013
Код C++ Построение прямой по двум точкам. Вывести уравнение прямой на экран =================...

Не работает код С++ (Visual Studio 2008)
Вобщем нужно было составить программу для вычисления значения функции с использованием сложной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.