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

Инициализация переменной в пространстве имён - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ зделать задачу по дискретной математике http://www.cyberforum.ru/cpp-beginners/thread950473.html
Пусть сгенерированные на ЭВМ множества А, В, С состоят из элементов: А = {1, 3, 4, 5, 10}, B = {3, 5, 7, 8, 9}, C = {3, 5, 6 , 9, 10}. Тогда результат выполнения операции пересечения этих множеств имеет вид: D = A \subset B \subset C = {3, 5} написать код
C++ Динамический объект класса и деструктор Добрый вечер. Есть класс, конструктор и деструктор: class B { int a; public: B (); ~B (); }; http://www.cyberforum.ru/cpp-beginners/thread950472.html
C++ Функция не принимает аргументы
Не знаю какой участок кода выделить, напишу всю программу Программа выводит выбор продукта, вводит его вес, и так пока пользователь не выберет 0 - тогда программа выводит сумму белков, жиров, углеводов и калорий всех продуктов, которые он выбирал. Не судите за быдлокодинг, решил попробовать свои силы (программу для себя пишу): #include <iostream> #include <fstream> #include <Windows.h>...
Объясните синтаксис программы по полочкам с использованием локальных переменных и прототипа функции C++
Здравствуйте уважаемые форумчане. Вот читаю книгу по C++, не буду писать какую, дабы избежать критики и обсуждений. Хотелось бы что бы вы подробно разжевали синтаксис выполнения кода данной программы, застрял на этой теме и дальше идти не могу так как понимаю, что если не разберусь с этим примером дальнейшее изучение для меня будет темным лесом (ток не закидывайте помидорами): #include...
C++ Простая задачка на классы http://www.cyberforum.ru/cpp-beginners/thread950459.html
Здорова господа!!! Есть простая задачка: "Разработайте базовый класс Persistent с операциями save() и no_save(), которые определяют, записываются ли объекты в долговременное хранилище деструктором. Кроме указанных операций какие еще полезные операции мог бы предоставлять класс Persistent? Протестируйте класс Persistent с парой классов по вашему выбору. Является ли Persistent узловым классом,...
C++ Как преобразовать структуру в javascript массив Пишу FastCGI сервер и возникла необходимость перебросить данные из структуры в javascript массив. C++ код: struct news_struct { unsigned int date; // Секунд от 1970 г. std::string title; std::string message; template<class Archive> void serialize(Archive & ar, const unsigned int version) { using boost::serialization::make_nvp; подробнее

Показать сообщение отдельно
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
08.09.2013, 22:54     Инициализация переменной в пространстве имён
в моём пространстве имён d3d есть 2 переменные, которые я определяю в самом пространстве
C++
1
2
HWND m_hwnd = 0;
HINSTANCE m_hinst = 0;
в дальнейшем при вызове функции InitD3D() они инициализируются другими значениями
InitD3D()
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
bool d3d::InitD3D(
        HINSTANCE hinstance,
        int width, int height,
        bool windowed,
        D3DDEVTYPE deviceType,
        IDirect3DDevice9** device)
{
    m_hinst = hinstance;//здесь
 
    WNDCLASSEX wc;
    ZeroMemory(&wc, sizeof(wc));
 
    wc.cbSize           = sizeof(WNDCLASSEX);
    wc.style            = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc      = (WNDPROC)d3d::WndProc;
    wc.cbClsExtra       = 0;
    wc.cbWndExtra       = 0;
    wc.hInstance        = m_hinst;
    wc.hIcon            = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor          = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground    = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName     = 0;
    wc.lpszClassName    = L"Direct3D9App";
 
    if(!RegisterClassEx(&wc))
    {
        d3d::FailMsg(L"RegisterClass()");
        return false;
    }
 
    HWND hwnd = 0;
    hwnd = CreateWindow(
            L"Direct3D9App",
            L"Direct3D9App",
            WS_EX_TOPMOST,
            CW_USEDEFAULT, CW_USEDEFAULT,
            width, height,
            NULL,NULL,
            m_hinst, NULL
        );
    
    m_hwnd = hwnd; //и здесь
 
    if(!m_hwnd)
    {
        d3d::FailMsg(L"CreateWindow");
        return false;
    }
 
    ShowWindow(m_hwnd, SW_SHOW);
    UpdateWindow(m_hwnd);
 
    HRESULT hr = 0;
 
    IDirect3D9* pd3d = 0;
    pd3d = Direct3DCreate9(D3D_SDK_VERSION);
 
    if(!pd3d)
    {
        d3d::FailMsg(L"Direct3Dcreate9()");
        return false;
    }
 
    D3DCAPS9 caps;
    pd3d->GetDeviceCaps(D3DADAPTER_DEFAULT, deviceType, &caps);
 
    int vp = 0;
 
    if(caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT)
        vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;
    else
        vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;
 
    D3DPRESENT_PARAMETERS d3dpp;
    D3DDISPLAYMODE d3ddm;
 
    pd3d->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);
 
 
    d3dpp.BackBufferWidth           = width;
    d3dpp.BackBufferHeight          = height;
    d3dpp.BackBufferFormat          = d3ddm.Format;
    d3dpp.BackBufferCount           = 1;
    d3dpp.MultiSampleType           = D3DMULTISAMPLE_NONE;
    d3dpp.MultiSampleQuality        = 0;
    d3dpp.SwapEffect                = D3DSWAPEFFECT_DISCARD;
    d3dpp.hDeviceWindow             = m_hwnd;
    d3dpp.Windowed                  = windowed;
    d3dpp.EnableAutoDepthStencil    = true;
    d3dpp.AutoDepthStencilFormat    = D3DFMT_D24S8;
    d3dpp.Flags                     = 0;
    d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
    d3dpp.PresentationInterval      = D3DPRESENT_INTERVAL_IMMEDIATE;
    
 
    hr = pd3d->CreateDevice(
            D3DADAPTER_DEFAULT,
            deviceType,
            m_hwnd,
            vp,
            &d3dpp,
            device
        );
 
    if(FAILED(hr))
    {
        pd3d->Release();
        d3d::FailMsg(L"CreateDevice()");
        return false;
    }
 
    pd3d->Release();
 
    return true;
}

также я добавляю заголовочный файл D3DUtility.h к 2 другим хэдерам, где вызываются функции из этого пространства и возникает следующая ошибка
C++
1
2
3
4
5
1>Terrain.obj : error LNK2005: "struct HINSTANCE__ * d3d::m_hinst" (?m_hinst@d3d@@3PAUHINSTANCE__@@A) уже определен в D3DUtility.obj
1>Terrain.obj : error LNK2005: "struct HWND__ * d3d::m_hwnd" (?m_hwnd@d3d@@3PAUHWND__@@A) уже определен в D3DUtility.obj
1>TerrainExample.obj : error LNK2005: "struct HINSTANCE__ * d3d::m_hinst" (?m_hinst@d3d@@3PAUHINSTANCE__@@A) уже определен в D3DUtility.obj
1>TerrainExample.obj : error LNK2005: "struct HWND__ * d3d::m_hwnd" (?m_hwnd@d3d@@3PAUHWND__@@A) уже определен в D3DUtility.obj
1>D:\Projects\D3D_Lessons\Debug\D3D_Lessons.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru