Форум программистов, компьютерный форум CyberForum.ru

Как передать значение? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка С2448 в функции http://www.cyberforum.ru/cpp-beginners/thread630747.html
учусь что либо написаь на С++ использую Visual Studio 2010 express выпуск тока прочел про функции и хочу написать функции с параметром но выводит ошибку и мне самому не понять что от меня хотят подскажите вот ОШибка: Ошибка 1 error C2448: asd: вероятно, инициализатор, использующий стиль функции, является определением функции G:\projects\CLR\CLR\years.cpp 17 а вот и все что написано мной....
C++ Найти сумму индекса элемент массива после первого отрицательного элемента Найти сумму индекса элемент массива расположенных после первого отрицательного числа http://www.cyberforum.ru/cpp-beginners/thread630722.html
C++ Преобразовать массив
Преобразуйте массив переставив все элементы все нулевые элементы в в конец массива
C++ Программа псевдографики
Создать программу, которая бы в псевдографическом режиме рисовала фигуру Х. программа должна запросить размер фигуры и вывести изображение фигуры заданного размера. помогите написать. Добавлено через 1 минуту http://data1.floomby.com/files/share/30_7_2012/bJZhFFerrU29K5d9W3uw.jpg
C++ Получить текущее время http://www.cyberforum.ru/cpp-beginners/thread630687.html
Столкнулся с такой проблемой. Нужно преобразовать результат, который возвращает time(0), в часы, минуты и секунды текущего дня. Для часов делаю таким образом: int hour = (time(0) / 3600) % 24; Получаю на 6 часов меньше. Почему? Добавлено через 20 минут А... там же отчёт от полуночи по Гринвичу, поэтому такое смещение и выходит.
C++ Отладка Всем доброго времени суток! Я новичок на этот форуме, да и вообще в программировании. Я начал заниматься написанием плагинов на С++ для программы InDesign. Вопрос заключается в следующем: как мне сделать отладку программы? Тобишь я запускаю плагин в InDesign'е и мне нужно видеть что выполняет плагин. Построчно. Любой вызов. Или это должно быть реализовано в виде лога? Если да, то как... подробнее

Показать сообщение отдельно
n971030
 Аватар для n971030
163 / 95 / 1
Регистрация: 23.01.2010
Сообщений: 1,169
30.07.2012, 17:34  [ТС]     Как передать значение?
Цитата Сообщение от novi4ok Посмотреть сообщение
она должна быть глобальной в том модуле, где объявлена.

Добавлено через 36 секунд

так делать очень нехорошо!
так я глобально объявил, у меня каракули компилятор выдает. obj

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
///////////////////////////////////////////////////////////////////////////////////////
// Список подключаемых модулей в проект
///////////////////////////////////////////////////////////////////////////////////////
 
 
#include <Windows.h>
//#include <WinSock.h>
#include "resource.h"
#include <CommCtrl.h>
#pragma comment (lib, "ComCtl32.Lib")
//#pragma comment (lib, "Windows.lib")
 
extern HINSTANCE hInstA;
extern HWND hwnd;
extern int cmdModeA;
//int cmdModeA;
//HWND 
    //hwnd;
 
#define BUTTON_WIDTH 250
#define BUTTON_HIGTH 500
Вот что при компилиции:

1>------ Построение начато: проект: Сервер WIN32API, Конфигурация: Debug Win32 ------
1>Построение начато 30.07.2012 17:25:48.
1>InitializeBuildStatus:
1> Обращение к "Debug\Сервер WIN32API.unsuccessfulbuild".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1>ResourceCompile:
1> Для всех выходных данных обновления не требуется.
1>ManifestResourceCompile:
1> Для всех выходных данных обновления не требуется.
1>О Программе.obj : error LNK2005: "struct HWND__ * hwnd" (?hwnd@@3PAUHWND__@@A) уже определен в Главная.obj
1>О Программе.obj : error LNK2005: "int cmdModeA" (?cmdModeA@@3HA) уже определен в Главная.obj
1>О Программе.obj : error LNK2005: "struct HINSTANCE__ * hInstA" (?hInstA@@3PAUHINSTANCE__@@A) уже определен в Главная.obj
1>C:\Users\Павел\Desktop\Сервер WIN32API\Debug\Сервер WIN32API.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.82
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Добавлено через 10 минут
Главная.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
144
145
146
147
148
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Главная форма
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "Модули.h"
 
TCHAR czClassName[] = L"Сервер";
TCHAR czWindowName[] = L"Сервер [version 1.0.0 - 2012]";
 
INT_PTR CALLBACK DIALOG1(HINSTANCE, UINT, WPARAM, LPARAM); 
 
//описание тул бара
//
TBBUTTON tbb[] = {
    {STD_FILENEW, ID_EXIT1, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0,0,0,0}};
 
 
    //инициализация главной формы
    //
    ATOM myRegistryClass(HINSTANCE, int);
    BOOL InitInstance(HINSTANCE hInst, int Mode);
    LRESULT CALLBACK WinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
 
    int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hInstance, PCHAR cmdLine, int cmdMode)
    {
        if(hInstance != 0)
        {
            MessageBox(NULL, L"Действие запрещено",
                L"Нельзя запускать более одного экземпляра программы." , MB_OK | MB_ICONSTOP);      
            return 1;
        }
 
        //hInstA = hInst;
        //cmdModeA = cmdMode;
        MSG msg;
 
        myRegistryClass(hInst, cmdMode);    
        InitInstance(hInst, cmdMode);
 
        while (GetMessage(&msg, hwnd, 0, 0))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);      
        }
        void LoadLybrary(void); 
        return 0;
    }
    ATOM myRegistryClass(HINSTANCE hInst, int cmdMode)
    {
        WNDCLASS cw;
 
        cw.cbClsExtra = 0;
        cw.cbWndExtra = 0;
        cw.hbrBackground = (HBRUSH)(COLOR_WINDOW +1);
        cw.hCursor = LoadCursor(NULL, IDC_ARROW);
        cw.hIcon = LoadIcon(NULL, IDI_WINLOGO);
        cw.hInstance = hInst;
        cw.lpfnWndProc = WinProc;
        cw.lpszClassName = czClassName;
        cw.lpszMenuName = (LPCWSTR)(IDR_MENU1);
        cw.style = CS_VREDRAW | CS_HREDRAW;
 
        return RegisterClass(&cw);
    }
    BOOL InitInstance(HINSTANCE hInst, int Mode)
    {
 
        HWND hwnd = CreateWindow(
            czClassName, 
            czWindowName,
            WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT, 
            0,
            CW_USEDEFAULT,
            0,
            NULL,
            NULL,
            hInst,
            NULL);
 
 
        ShowWindow(hwnd, Mode);
        UpdateWindow(hwnd);
 
        return TRUE;
    }
 
    HWND hwndToolBar,
    hwndStatus;
 
    LRESULT CALLBACK WinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)
        {
        case WM_DESTROY:
            PostQuitMessage(0);
            break;  
        case WM_CREATE:
            //SetTimer(hwnd, 1, 1000, NULL);
            //KillTimer(hwnd, 1);
 
            hwndToolBar = CreateToolbarEx(
                hwnd,
                WS_CHILD | WS_VISIBLE | CCS_TOP,
                3,
                0,
                HINST_COMMCTRL,
                IDB_STD_SMALL_COLOR,
                tbb,
                1,
                0,
                0,
                0,
                0,
                sizeof(TBBUTTON));
 
            hwndStatus = CreateStatusWindow(
                WS_CHILD | WS_VISIBLE,
                L"",
                hwnd,
                7900);
 
        case WM_COMMAND: 
            {
                int wmId = LOWORD(wParam);
                switch (wmId)
                {
 
                case ID_EXIT1: 
                    {
                        int SELECT = MessageBox(hwnd, 
                            L"Вы действительно хотите завершить работу программы? ВНИМАНИЕ! В случае завершения работы программы, клиенты не смогут подключиться.",
                            L"Завершение работы", MB_YESNO | MB_ICONQUESTION);
                        if (SELECT == IDYES)
                        {
                            PostQuitMessage(0);
                        }
                    }
                    break;
                case ID_HELP1: 
                    //OpenAbout(hInstA, cmdModeA);
                    break;
                }
            }
 
        default: return DefWindowProc(hwnd, message, wParam, lParam); break;
        }
        return 0;
    }
Добавлено через 35 секунд
Модуль.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
///////////////////////////////////////////////////////////////////////////////////////
// Список подключаемых модулей в проект
///////////////////////////////////////////////////////////////////////////////////////
 
 
#include <Windows.h>
//#include <WinSock.h>
#include "resource.h"
#include <CommCtrl.h>
#pragma comment (lib, "ComCtl32.Lib")
 
HINSTANCE hInstA;
HWND hwnd;
int cmdModeA;
//int cmdModeA;
//HWND 
    //hwnd;
 
#define BUTTON_WIDTH 250
#define BUTTON_HIGTH 500
Добавлено через 34 секунды
О Программе.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
//////////////////////////////////////////////////////////////////////////////////////
// Форма о программе ver 1.1 API
//////////////////////////////////////////////////////////////////////////////////////
#include "Модули.h"
 
TCHAR AboutClassName[] = L"AboutClass";
TCHAR AboutCaption[] = L"О Программе";
HWND hwndAbout;
 
 
 
LRESULT CALLBACK AboutWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
    case WM_DESTROY: 
        PostQuitMessage(0);
        break;
    case WM_CREATE: 
        {
            //кнопка ОК
            HFONT hFont = CreateFont(-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE,
                0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
                CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                DEFAULT_PITCH | FF_SWISS, L"Tahoma");
 
            HWND hText = CreateWindow(L"BUTTON", L"OK",
                WS_CHILD | WS_VISIBLE | SS_LEFT,
                113+25, 41+25, 50+20, 14+10,
                hwnd, NULL, NULL, NULL);
 
            //Надпись - название программы "Сервер 1.0.0 2012г. API"
            HFONT hFontSTR1 = CreateFont(-11, 0, 0, 0, FW_BOLD, FALSE, FALSE,
                0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
                CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                DEFAULT_PITCH | FF_SWISS, L"Tahoma");
 
            HWND hTextSTR1 = CreateWindow(L"STATIC", L"Сервер 1.0.0 2012г. API.",
                WS_CHILD | WS_VISIBLE | SS_LEFT,
                25, 10, 190, 14,
                hwnd, NULL, NULL, NULL);
 
            SendMessage(hText, WM_SETFONT, (WPARAM)hFont, 0); 
 
            break;
        }
 
    default: return DefWindowProc(hwnd, message, wParam, lParam);
    }
    return 0;
}
ATOM AboutRegClass(HINSTANCE hInst, int cmdMode)
{
    UnregisterClass(AboutClassName, hInst);
    WNDCLASS wc;
 
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hIcon = LoadIcon(NULL, IDI_INFORMATION);
    wc.hInstance = hInstA;
    wc.lpfnWndProc = AboutWinProc;
    wc.lpszClassName = AboutClassName;
    wc.lpszMenuName = NULL;
    wc.style = CS_VREDRAW | CS_HREDRAW;
 
    ATOM at = RegisterClass(&wc);
    /*if (at == NULL)
    {
        MessageBox(hwnd, L"ERROR", L"MSG USER ERROR", MB_OK);
    }*/
    return at;
}
void AboutInitInstance(HINSTANCE hInst, int Mode)
{
    UnregisterClass(AboutClassName, hInstA);
    hwndAbout = CreateWindow(
        AboutClassName,
        L"О Программе", 
        WS_DLGFRAME | WS_SYSMENU,
        0,  
        0,      
        170+75,
        62+75,
        hwnd, // родитель окна
        NULL,
        hInst,
        NULL);
 
    ShowWindow(hwndAbout, cmdModeA);    
    UpdateWindow(hwndAbout);
 
    return;
}
void OpenAbout(HINSTANCE hInst, int cmdMode)
{
    MSG msg;
    AboutRegClass(hInst, cmdMode);
    AboutInitInstance( hInst, cmdMode);
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return;
}
Добавлено через 51 секунду
Цитата Сообщение от novi4ok Посмотреть сообщение
выложи строчку
Выложил
 
Текущее время: 00:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru