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

Ошибка error MSB4018 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задержка выполнения программы http://www.cyberforum.ru/cpp-beginners/thread938218.html
Ребята, помогите найти проблему плз.. Дело в том, что при запуске программы она висит 20 сек, и только потом передается управление функции main и выполняются действия, которые дают ожидаемый результат в текстовом файле OUTPUT1.TXT. В чем может быть проблема? #include <fstream> #include <vector> using namespace std; int main() {
C++ Использование переменной типа char в цикле for Ребята, подскажите пожалуйста, как использовать 8-ми битную переменную в цикле for? Неправильный пример - for(char i = 0; i < N; i++) http://www.cyberforum.ru/cpp-beginners/thread938175.html
C++ Перегруженный оператор
MathClass = Harry; Как можно заметить, чтобы назначить Harry шестым элементом массива MathClass здесь использован перегруженный оператор приспоения класса Student Раньше я думал, что перегрузка - это предоставление оператору функций, которых, он изначально не имел. Что означает это слово в данном контексте?
C++ не могу понять ошибку
#include <iostream> using namespace std; int main(); { double a=0, b-0, c=0; cout <<"a"; cin >> a; cout "b" ;
C++ Операторы сравнения в книге ООАнализ и проектирование http://www.cyberforum.ru/cpp-beginners/thread938108.html
Вопрос не настолько серьезный но все же: в книге объектно-ориентированный анализ и проектирование автор книги постоянно в своих пример при перегрузке операторов сравнения использует int вместо bool. почему? int operator==(const DisplayItem&) const; int operator!=(const DisplayItem&) const; Добавлено через 23 минуты ???
C++ Нужен Конвентер валют на С++ Немогу найти конвентер в гугле, если есть у кого скиньте или ссыоку, сам я програмист не очень, или помогите написать мне конвентер, заранее спасибо! подробнее

Показать сообщение отдельно
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632

Ошибка error MSB4018 - C++

15.08.2013, 07:27. Просмотров 1274. Ответов 14
Метки (Все метки)

Не стоит меня посылать мучать гугл в поисках ответа, уже сделал и не нашёл ответа на свой вопрос.
Я написал пример из книги Френк Д. Луна - Программирование трехмерных игр с DirectX 9 и VS выдала мне ошибку, с которой я ранее не встречался.
Вот привожу код
D3DUtility.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
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
#ifndef D3DUTILITY_H
#define D3DUTILITY_H
 
#include<d3dx9.h>
#include<string>
#include<Windows.h>
 
namespace d3d{
 
    bool InitD3D(
            HINSTANCE hinstance,
            int width, int height,
            bool windowed,
            D3DDEVTYPE DeviceType,
            IDirect3DDevice9** device
        );
 
    int EnterMsgLoop(
            bool (*ptr_display)(float timeDelta)
        );
 
    LRESULT CALLBACK WndProc(
            HWND hwnd,
            UINT msg,
            WPARAM wParam,
            LPARAM lParam
        );
 
    void FailMsg(wchar_t *error)
    {
        wcscat(L" - FAILED", error);
        MessageBox(NULL, error, L"Error", MB_OK);
    }
 
    template<class T> void Release(T t)
    {
        if(t)
        {
            t->Release();
            t = 0;
        }
    }
 
    template<class T> void Delete(T t)
    {
        if(t)
        {
            delete t;
            t = 0;
        }
    }
 
    const D3DXCOLOR     WHITE( D3DCOLOR_XRGB(255, 255, 255) );
    const D3DXCOLOR     BLACK( D3DCOLOR_XRGB(  0,   0,   0) );
    const D3DXCOLOR       RED( D3DCOLOR_XRGB(255,   0,   0) );
    const D3DXCOLOR     GREEN( D3DCOLOR_XRGB(  0, 255,   0) );
    const D3DXCOLOR      BLUE( D3DCOLOR_XRGB(  0,   0, 255) );
    const D3DXCOLOR    YELLOW( D3DCOLOR_XRGB(255, 255,   0) );
    const D3DXCOLOR      CYAN( D3DCOLOR_XRGB(  0, 255, 255) );
    const D3DXCOLOR   MAGENTA( D3DCOLOR_XRGB(255,   0, 255) );
 
    D3DLIGHT9 InitDirectionalLight(D3DXVECTOR3* direction, D3DXCOLOR* color);
    D3DLIGHT9 InitPointLight(D3DXVECTOR3* position, D3DXCOLOR* color);
    D3DLIGHT9 InitSpotLight(D3DXVECTOR3* position, D3DXVECTOR3* direction, D3DXCOLOR* color);
 
    D3DMATERIAL9 InitMtrl(
                D3DXCOLOR ambient,
                D3DXCOLOR diffuse,
                D3DXCOLOR specular,
                D3DXCOLOR emissive,
                float power
            );
 
    const D3DMATERIAL9 WHITE_MTRL   = InitMtrl(WHITE, WHITE, WHITE, YELLOW, 2.0f);
    const D3DMATERIAL9 RED_MTRL     = InitMtrl(RED, RED, RED, BLACK, 2.0f);
    const D3DMATERIAL9 GREEN_MTRL   = InitMtrl(GREEN, GREEN, GREEN, BLACK, 2.0f);
    const D3DMATERIAL9 BLUE_MTRL    = InitMtrl(BLUE, BLUE, BLUE, BLACK, 2.0f);
    const D3DMATERIAL9 YELLOW_MTRL  = InitMtrl(YELLOW, YELLOW, YELLOW, BLACK, 2.0f);
}
 
#endif D3DUTILITY_H

D3DUtility.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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
#include "D3DUtility.h"
 
bool d3dInitD3D(
        HINSTANCE hInstance,
        int width, int height,
        bool windowed,
        D3DDEVTYPE deviceType,
        IDirect3DDevice9** device)
{
    WNDCLASSEX wc;
 
    wc.cbSize           = sizeof(WNDCLASSEX);
    wc.style            = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc      = (WNDPROC)d3dWndProc;
    wc.cbClsExtra       = 0;
    wc.cbWndExtra       = 0;
    wc.hInstance        = hInstance;
    wc.hIcon            = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor          = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground    = (HBRUSH)GetStockObject(WHITE_BRUSH + 1);
    wc.lpszMenuName     = 0;
    wc.lpszClassName    = L"Direct3D9App";
 
    if(!RegisterClassEx(&wc))
    {
        d3dFailMsg(L"RegisterClass()");
        return false;
    }
 
    HWND hWnd;
 
    hWnd = CreateWindow(
            L"Direct3D9App",
            L"Direct3D9App",
            WS_EX_TOPMOST,
            CW_USEDEFAULT, CW_USEDEFAULT,
            width, height,
            NULL,NULL,
            hInstance, NULL
        );
 
    if(!hWnd)
    {
        d3dFailMsg(L"CreateWindow");
        return false;
    }
 
    ShowWindow(hWnd, SW_SHOW);
    UpdateWindow(hWnd);
 
 
    HRESULT hr = 0;
 
    IDirect3D9* pd3d = 0;
    pd3d = Direct3DCreate9(D3D_SDK_VERSION);
 
    if(!pd3d)
    {
        d3dFailMsg(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             = 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,
            hWnd,
            vp,
            &d3dpp,
            device
        );
 
    if(FAILED(hr))
    {
        pd3d->Release();
        d3dFailMsg(L"CreateDevice()");
        return false;
    }
 
    pd3d->Release();
 
    return true;
}
 
int d3dEnterMsgLoop(
            bool (*ptr_display)(float timeDelta)
        )
{
    MSG msg;
    ZeroMemory(&msg, sizeof(MSG));
 
    static float lastTime = (float)timeGetTime();
 
    while(msg.message != WM_QUIT)
    {
        if(PeekMessage(&msg, 0, 0, 0,PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
        {
            float currTime  = (float)timeGetTime();
            float timeDelta = (currTime - lastTime)*0.001f;
 
            ptr_display(timeDelta);
 
            lastTime = currTime;
        }
    }
 
    return msg.wParam;
}
 
 
D3DLIGHT9 d3dInitDirectionalLight(
            D3DXVECTOR3* direction,
            D3DXCOLOR* color
        )
{
    D3DLIGHT9 light;
    ZeroMemory(&light, sizeof(light));
 
    light.Type      = D3DLIGHT_DIRECTIONAL;
    light.Ambient   = *color * 0.6f;
    light.Diffuse   = *color;
    light.Specular  = *color * 0.6f;
    light.Direction = *direction;
 
    return light;
}
 
D3DLIGHT9 d3dInitPointLight(
            D3DXVECTOR3* position,
            D3DXCOLOR* color
        )
{
    D3DLIGHT9 light;
    ZeroMemory(&light, sizeof(light));
 
    light.Type          = D3DLIGHT_POINT;
    light.Ambient       = *color * 0.6f;
    light.Diffuse       = *color;
    light.Specular      = *color * 0.6f;
    light.Position      = *position;
    light.Range         = 1000.0f;
    light.Falloff       = 1.0f;
    light.Attenuation0  = 1.0f;
    light.Attenuation1  = 0.0f;
    light.Attenuation2  = 0.0f;
 
    return light;
}
 
D3DLIGHT9 d3dInitSpotLight(
            D3DXVECTOR3* position,
            D3DXVECTOR3* direction,
            D3DXCOLOR* color
        )
{
    D3DLIGHT9 light;
    ZeroMemory(&light, sizeof(light));
 
    light.Type          = D3DLIGHT_SPOT;
    light.Ambient       = *color * 0.0f;
    light.Diffuse       = *color;
    light.Specular      = *color * 0.6f;
    light.Position      = *position;
    light.Direction     = *direction;
    light.Range         = 1000.0f;
    light.Falloff       = 1.0f;
    light.Attenuation0  = 1.0f;
    light.Attenuation1  = 0.0f;
    light.Attenuation2  = 0.0f;
    light.Theta         = 0.4f;
    light.Phi           = 0.9f;
 
    return light;
}
 
D3DMATERIAL9 d3dInitMtrl(
            D3DXCOLOR ambient,
            D3DXCOLOR diffuse,
            D3DXCOLOR specular,
            D3DXCOLOR emissive,
            float power
        )
{
    D3DMATERIAL9 mtrl;
    mtrl.Ambient    = ambient;
    mtrl.Diffuse    = diffuse;
    mtrl.Specular   = specular;
    mtrl.Emissive   = emissive;
    mtrl.Power      = power;
 
    return mtrl;
}

LitPyramid.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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
#include "D3DUtility.h"
 
IDirect3DDevice9* device = NULL;
 
const int width = 640;
const int height = 480;
 
IDirect3DVertexBuffer9* pyramid = NULL;
 
struct Vertex
{
    Vertex(){}
 
    Vertex(
        float x, float y,float z,
        float nx, float ny, float nz
        )
    {
        _x = x;   _y = y;   _z = z;
        _nx = nx; _ny = ny; _nz = nz;
    }
 
    float _x, _y, _z;
    float _nx, _ny, _nz;
 
    static const DWORD FVF;
};
const DWORD Vertex::FVF = D3DFVF_XYZ | D3DFVF_NORMAL;
 
bool Setup()
{
    device->SetRenderState(D3DRS_LIGHTING, true);
 
    device->CreateVertexBuffer(
                12*sizeof(Vertex),
                D3DUSAGE_WRITEONLY,
                Vertex::FVF,
                D3DPOOL_MANAGED,
                &pyramid, 0
            );
 
    Vertex* v;
    pyramid->Lock(
            0, 0,
            (void**)&v, 0
        );
 
    // front face
    v[0] = Vertex(-1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);
    v[1] = Vertex( 0.0f, 1.0f,  0.0f, 0.0f, 0.707f, -0.707f);
    v[2] = Vertex( 1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);
 
    // left face
    v[3] = Vertex(-1.0f, 0.0f,  1.0f, -0.707f, 0.707f, 0.0f);
    v[4] = Vertex( 0.0f, 1.0f,  0.0f, -0.707f, 0.707f, 0.0f);
    v[5] = Vertex(-1.0f, 0.0f, -1.0f, -0.707f, 0.707f, 0.0f);
 
    // right face
    v[6] = Vertex( 1.0f, 0.0f, -1.0f, 0.707f, 0.707f, 0.0f);
    v[7] = Vertex( 0.0f, 1.0f,  0.0f, 0.707f, 0.707f, 0.0f);
    v[8] = Vertex( 1.0f, 0.0f,  1.0f, 0.707f, 0.707f, 0.0f);
 
    // back face
    v[9]  = Vertex( 1.0f, 0.0f,  1.0f, 0.0f, 0.707f, 0.707f);
    v[10] = Vertex( 0.0f, 1.0f,  0.0f, 0.0f, 0.707f, 0.707f);
    v[11] = Vertex(-1.0f, 0.0f,  1.0f, 0.0f, 0.707f, 0.707f);
 
    pyramid->Unlock();
 
    D3DMATERIAL9 mtrl;
    mtrl.Ambient    = d3d::WHITE;
    mtrl.Diffuse    = d3d::WHITE;
    mtrl.Specular   = d3d::WHITE;
    mtrl.Emissive   = d3d::BLACK;
    mtrl.Power      = 5.0f;
 
    device->SetMaterial(&mtrl);
 
    D3DLIGHT9 DirLight;
    ZeroMemory(&DirLight, sizeof(D3DLIGHT9));
 
    DirLight.Type       = D3DLIGHT_DIRECTIONAL;
    DirLight.Diffuse    = d3d::WHITE;
    DirLight.Specular   = d3d::WHITE * 0.3f;
    DirLight.Ambient    = d3d::WHITE * 0.6f;
    DirLight.Direction  = D3DXVECTOR3(1.0f, 0.0f, 0.0f);
 
    device->SetLight(0, &DirLight);
    device->LightEnable(0, true);
 
    device->SetRenderState(D3DRS_NORMALIZENORMALS, true);
    device->SetRenderState(D3DRS_SPECULARENABLE, true);
 
 
    D3DXVECTOR3 pos(0.0f, 1.0f, -3.0f);
    D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);
    D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);
    D3DXMATRIX  ViewMatrix;
    D3DXMatrixLookAtLH(
            &ViewMatrix,
            &pos,
            &target,
            &up
        );
 
    device->SetTransform(D3DTS_VIEW, &ViewMatrix);
 
    D3DXMATRIX ProjMatrix;
    D3DXMatrixPerspectiveFovLH(
            &ProjMatrix,
            D3DX_PI/2,
            (float)width/(float)height,
            1.0f,1000.0f
        );
 
    device->SetTransform(D3DTS_PROJECTION, &ProjMatrix);
 
    return true;
}
 
void Cleanup()
{
    d3d::Release<IDirect3DVertexBuffer9*>(pyramid);
}
 
bool display(float timeDelta)
{
    if(device)
    {
        D3DXMATRIX yRot;
        static float y = 0.0f;
 
        D3DXMatrixRotationY(&yRot, y);
        y += timeDelta;
 
        if(y >= 6.28f)
            y = 0.0f;
 
        device->SetTransform(D3DTS_WORLD, &yRot);
 
        device->Clear(
                0,0,
                D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
                0x00000000, 1.0f, 0
            );
        device->BeginScene();
 
        device->SetStreamSource(
                0, pyramid,
                0, sizeof(Vertex)
            );
        device->SetFVF(Vertex::FVF);
        device->DrawPrimitive(
                D3DPT_TRIANGLELIST,
                0, 4
            );
 
        device->EndScene();
        device->Present(0, 0, 0, 0);
    }
    return true;
}
 
LRESULT CALLBACK d3d::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch( msg )
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
        
    case WM_KEYDOWN:
        if( wParam == VK_ESCAPE )
            DestroyWindow(hwnd);
        break;
    }
    return DefWindowProc(hwnd, msg, wParam, lParam);
}
 
int WINAPI WinMain(
        HINSTANCE hInstance,
        HINSTANCE hInstancePrev,
        LPSTR CmdLine,
        int ShowCmd
    )
{
    if(!d3d::InitD3D(
            hInstance,
            width, height,
            true, D3DDEVTYPE_HAL,
            &device
        ))
    {
        d3d::FailMsg(L"InitD3D()");
        return 0;
    }
 
    if(!Setup())
    {
        d3d::FailMsg(L"Setup()");
        return 0;
    }
 
    d3d::EnterMsgLoop(display);
    
    Cleanup();
 
    device->Release();
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru