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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 43, средняя оценка - 4.79
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
#1

error LNK2019: unresolved external symbol __imp__ - C++

19.11.2011, 01:50. Просмотров 6171. Ответов 14
Метки нет (Все метки)

В чем проблема можете подсказать.
1>------ Build started: Project: Opgl, Configuration: Debug Win32 ------
1>Compiling...
1>op.cpp
1>c:\program files\microsoft visual studio 9.0\vc\include\gl\glaux.h(17) : warning C4068: unknown pragma
1>c:\program files\microsoft visual studio 9.0\vc\include\gl\glaux.h(374) : warning C4068: unknown pragma
1>Compiling manifest to resources...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Linking...
1>op.obj : error LNK2019: unresolved external symbol __imp__gluPerspective@32 referenced in function "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)
1>op.obj : error LNK2019: unresolved external symbol __imp__glLoadIdentity@0 referenced in function "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)
1>op.obj : error LNK2019: unresolved external symbol __imp__glMatrixMode@4 referenced in function "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)
1>op.obj : error LNK2019: unresolved external symbol __imp__glViewport@16 referenced in function "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)
1>op.obj : error LNK2019: unresolved external symbol __imp__glHint@8 referenced in function "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>op.obj : error LNK2019: unresolved external symbol __imp__glDepthFunc@4 referenced in function "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>op.obj : error LNK2019: unresolved external symbol __imp__glEnable@4 referenced in function "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>op.obj : error LNK2019: unresolved external symbol __imp__glClearDepth@8 referenced in function "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>op.obj : error LNK2019: unresolved external symbol __imp__glClearColor@16 referenced in function "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>op.obj : error LNK2019: unresolved external symbol __imp__glShadeModel@4 referenced in function "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)
1>op.obj : error LNK2019: unresolved external symbol __imp__glClear@4 referenced in function "int __cdecl DrawGLScene(void)" (?DrawGLScene@@YAHXZ)
1>op.obj : error LNK2019: unresolved external symbol __imp__wglDeleteContext@4 referenced in function "void __cdecl KillGLWindow(void)" (?KillGLWindow@@YAXXZ)
1>op.obj : error LNK2019: unresolved external symbol __imp__wglMakeCurrent@8 referenced in function "void __cdecl KillGLWindow(void)" (?KillGLWindow@@YAXXZ)
1>op.obj : error LNK2019: unresolved external symbol __imp__wglCreateContext@4 referenced in function "int __cdecl CreateGLWindow(wchar_t const *,int,int,int,bool)" (?CreateGLWindow@@YAHPB_WHHH_N@Z)
1>C:\Documents and Settings\Виталик\Мои документы\Visual Studio 2008\new\test\Debug\Opgl.exe : fatal error LNK1120: 14 unresolved externals
1>Build log was saved at "file://c:\Documents and Settings\Виталик\Мои документы\Visual Studio 2008\new\test\Opgl\Debug\BuildLog.htm"
1>Opgl - 15 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2011, 01:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос error LNK2019: unresolved external symbol __imp__ (C++):

error LNK2019: unresolved external symbol - C++
Всем привет! Я новичок в С++, и вот проблема: пишу код для своей функции MySwap, студия 2010 выдает ошибку: error LNK2019: unresolved...

Error LNK2019: unresolved external symbol - C++
помогите пожалуйста исправить ошибку при компиляции,никогда прежде такой ошибки не встречала,не знаю как исправить и соответственно не могу...

error LNK2019: unresolved external symbol - C++
Добрый вечер. Недавно начала изучение языка С++ и столкнулась с такими ошибками: Error 1 error LNK2019: unresolved external symbol...

Error LNK2019: unresolved external symbol - C++
Всем привет. Имеется конструктор и деструктор public: MyClass(const char *url);//конструктор. параметр -адрес из командной...

Error LNK2019: unresolved external symbol - C++
static int _handle_lockacct_command(t_connection * c, char const *text) { t_connection * user; t_account * account; ...

Error LNK2019: unresolved external symbol - C++
Доброго дня, программисты. Пишу синтезатор на Microsoft Visual C++ 2010 Express. Столкнулся с такой проблемой: при компиляции vst2...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
19.11.2011, 01:56 #2
Код программы в студию,пожалуйста
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
19.11.2011, 02:14  [ТС] #3
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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
#include<windows.h>
#include<gl\gl.h>
#include<gl\glu.h>
#include<gl\glaux.h>
 
HGLRC hRC=NULL;
HDC hDC=NULL;
HWND hWnd=NULL;
HINSTANCE hInstance=NULL;
 
bool keys[256];
bool active=true;
bool fullscreen=true;
 
LRESULT CALLBACK WndProc(HINSTANCE,UINT,WPARAM,LPARAM);
 
GLvoid ReSizeGLScene(GLsizei width,GLsizei height){
    if(height==0)
        height=1;
    glViewport(0,0,width,height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
 
    gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
    
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
 
int InitGL(){
 
    glShadeModel(GL_SMOOTH);
    glClearColor(0.0f,0.0f,0.0f,0.0f);
    glClearDepth(1.0f);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);
    return true;
}
 
int DrawGLScene(){
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );      // Очистить экран и буфер глубины
glLoadIdentity();              // Сбросить текущую матрицу
 
          return true;
}
 
GLvoid KillGLWindow(){
    if (fullscreen){
        ChangeDisplaySettings(NULL,0);
        ShowCursor(true);
    }
    if(hRC){
        if(!wglMakeCurrent(NULL,NULL))
            MessageBox(NULL,L"Release DC and RC failed",L"SHUTDOWN ERROR",
            MB_OK|MB_ICONINFORMATION);
        if(!wglDeleteContext(hRC))
            MessageBox(NULL,L"Release Rendering Context failed",L"SHUTDOWN ERROR",
            MB_OK|MB_ICONINFORMATION);
        hRC=NULL;
    }
    if(hDC&&!ReleaseDC(hWnd,hDC)){
        MessageBox(NULL,L"Release Device Context  failed",L"SHUTDOWN ERROR",
            MB_OK|MB_ICONINFORMATION);
        hDC=NULL;
    }
    if(hWnd&&!DestroyWindow(hWnd)){
        MessageBox(NULL,L"Could not close hWnd",L"SHUTDOWN ERROR",
            MB_OK|MB_ICONINFORMATION);
        hWnd=NULL;
    }
    if(!UnregisterClass(L"OpenGL",hInstance)){
        MessageBox(NULL,L"Could not unregister class",L"SHUTDOWN ERROR",
            MB_OK|MB_ICONINFORMATION);
        hInstance=NULL;
    }
}
 
BOOL CreateGLWindow(LPCWSTR title,int width,int height,int bits,bool fullscreenflag){
    GLuint PixelFormat;
    WNDCLASS wc;
    DWORD dwExStyle;
    DWORD dwStyle;
    RECT WindowRect;
    WindowRect.left=0;
    WindowRect.top=0;
    WindowRect.right=width;
    WindowRect.bottom=height;
    fullscreen=fullscreenflag;
    hInstance=GetModuleHandle(NULL);
    wc.style=CS_HREDRAW|CS_VREDRAW|CS_OWNDC;
    wc.lpfnWndProc=(WNDPROC)WndProc;
    wc.cbClsExtra=0;
    wc.cbWndExtra=0;
    wc.hInstance=hInstance;
    wc.hIcon=LoadIcon(NULL,IDI_WINLOGO);
    wc.hCursor=LoadCursor(NULL,IDC_ARROW);
    wc.hbrBackground=NULL;
    wc.lpszMenuName=NULL;
    wc.lpszClassName=L"OpenGL";
 
    if(!RegisterClass(&wc)){
        MessageBox(NULL,L"Failed to Register Window Class",L"SHUTDOWN ERROR",
            MB_OK|MB_ICONEXCLAMATION);
        return false;
    }
    if(fullscreen){
        DEVMODE dmScreenSettings;
        memset(&dmScreenSettings,0,sizeof(dmScreenSettings));
        dmScreenSettings.dmBitsPerPel=bits;
        dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
        dmScreenSettings.dmPelsWidth=width;
        dmScreenSettings.dmPelsHeight=height;
        dmScreenSettings.dmSize=sizeof(dmScreenSettings);
        if(ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=
            DISP_CHANGE_SUCCESSFUL)
        {
            if(MessageBox( NULL,
                L"The Requested Fullscreen Mode Is Not Supported By\nYourVideo Card. Use Windowed Mode Instead?", 
          L"Open GL", MB_YESNO | MB_ICONEXCLAMATION) == IDYES )
                fullscreen=false;
            else
                return false;
            if(fullscreen){
                dwExStyle=WS_EX_APPWINDOW;
                dwStyle=WS_POPUP;
                ShowCursor(false);
            }else
            {
                dwExStyle=WS_EX_APPWINDOW|WS_EX_WINDOWEDGE;
                dwStyle=WS_OVERLAPPEDWINDOW;
            }
        }
    }
    AdjustWindowRectEx(&WindowRect,dwStyle,0,dwExStyle);
    if(!(hWnd=CreateWindowEx(dwExStyle,
        L"OpenGL",title,
        WS_CLIPSIBLINGS|
        WS_CLIPCHILDREN|dwStyle,
        0,0,
        WindowRect.right-WindowRect.left,    
        WindowRect.bottom-WindowRect.top,
        NULL,NULL,hInstance,NULL))){
            KillGLWindow();
            MessageBox(NULL,L"Window Creation error",L"Error",MB_OK|MB_ICONEXCLAMATION);
            return false;
        }
        static PIXELFORMATDESCRIPTOR pfd={
            sizeof(PIXELFORMATDESCRIPTOR),
            1,
            PFD_DRAW_TO_WINDOW|
            PFD_SUPPORT_OPENGL|
            PFD_DOUBLEBUFFER,
            PFD_TYPE_RGBA,
            bits,
            0,0,0,0,0,0,
            0,
            0,
            0,
            0,0,0,0,
            32,
            0,
            0,
            PFD_MAIN_PLANE,
            0,
            0,0,0
        };
        if(!(hDC=GetDC(hWnd))){
            KillGLWindow();
            MessageBox( NULL, L"Can't Create A GL Device Context.", L"ERROR", MB_OK | MB_ICONEXCLAMATION );
            return false;
        }
        if(!(PixelFormat=ChoosePixelFormat(hDC,&pfd))){
            KillGLWindow();
            MessageBox( NULL, L"Can't Set The PixelFormat.", L"ERROR", MB_OK | MB_ICONEXCLAMATION );
            return false;
        }
        if(!SetPixelFormat(hDC,PixelFormat,&pfd)){
            KillGLWindow();
            MessageBox( NULL, L"Can't Set The PixelFormat.", L"ERROR", MB_OK | MB_ICONEXCLAMATION );
            return false;
        }
        if(!(hRC=wglCreateContext(hDC))){
            KillGLWindow();
            MessageBox( NULL, L"Can't Set The PixelFormat.", L"ERROR", MB_OK | MB_ICONEXCLAMATION );
            return false;
        }
        if(!wglMakeCurrent(hDC,hRC)){
            KillGLWindow();
            MessageBox( NULL, L"Can't Activate The GL Rendering Context.", L"ERROR", MB_OK | MB_ICONEXCLAMATION );
            return false;
        }
        ShowWindow(hWnd,SW_SHOW);
        SetForegroundWindow(hWnd);
        SetFocus(hWnd);
        ReSizeGLScene(width,height);
        if(!InitGL()){
            KillGLWindow();
            MessageBox( NULL, L"Initialization Failed.", L"ERROR", MB_OK | MB_ICONEXCLAMATION );
            return false;
        }
        return true;
}
 
LRESULT CALLBACK WndProc(HINSTANCE hInstance,UINT uMsg,WPARAM wParam,LPARAM lParam){
    switch(uMsg){
        case WM_ACTIVATE:
            if(!HIWORD(wParam))
                active=true;
            else
                active=false;
            break;
        case WM_SYSCOMMAND:
            switch(wParam){
            case SC_SCREENSAVE:
            case SC_MONITORPOWER:
                return 0;
            }
            break;
        case WM_CLOSE:
            PostQuitMessage(0);
            break;
        case WM_KEYDOWN:
            keys[wParam]=true;
            break;
        case WM_KEYUP:
            keys[wParam]=false;
            break;
        case WM_SIZE:
            ReSizeGLScene(LOWORD(lParam),HIWORD(lParam));
            break;
        default:
            DefWindowProc(hWnd,uMsg,wParam,lParam);
    }
    return 0;
}
 
int WINAPI  WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){
    MSG msg;
    bool done=false;
    if( MessageBox( NULL, L"Хотите ли Вы запустить приложение в полноэкранном режиме?", 
        L"Запустить в полноэкранном режиме?", MB_YESNO | MB_ICONQUESTION) == IDNO )
     {
 
    fullscreen = false;          // Оконный режим
 
    }
     if( !CreateGLWindow( L"NeHe OpenGL окно", 1024, 768, 32, fullscreen ) )
 
  {
 
    return 0;              // Выйти, если окно не может быть создано
 
  }
     while(!done){
         if(PeekMessage(&msg,hWnd,0,0,PM_REMOVE)){
             if(msg.message==WM_QUIT){
                 done=true;
             }else
             {
                 TranslateMessage(&msg);
                 DispatchMessage(&msg);
             }
         }else
         {
             if(active){
                 if(keys[VK_ESCAPE])
                     done=true;
                 else{
                     DrawGLScene();
                     SwapBuffers(hDC);
                 }
             }
             if(keys[VK_F1]){
                 keys[VK_F1]=false;
                 KillGLWindow();
                 fullscreen=!fullscreen;
                 if( !CreateGLWindow( L"NeHe OpenGL структура", 1024, 768, 32, fullscreen ) )
                 {
                     return 0; 
                 }
             }
         }
     }
     KillGLWindow();
     return (msg.lParam);
}
Bers
Заблокирован
19.11.2011, 02:59 #4
Не нашёл тел функций.

LIB`ы не подключены
DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
19.11.2011, 13:25 #5
У вас glaux.h не подключен, возможно придётся включать так
#pragma comment(lib, "GLAux.h")
попробуйте скачать GLAus от сюда:
https://skydrive.live.com/?cid=e38f9...90B29D9%211065 в разделе GL Files, а затем подключить.Эта библиотека очень старая и редко где используется
Bers
Заблокирован
19.11.2011, 14:12 #6
Цитата Сообщение от DenCHS200 Посмотреть сообщение
У вас glaux.h не подключен
Это что по вашему:


Цитата Сообщение от vetal10 Посмотреть сообщение
#include<gl\glaux.h>
Не путайте либу с заголовками
DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
19.11.2011, 17:15 #7
Цитата Сообщение от Bers Посмотреть сообщение
Это что по вашему:




Не путайте либу с заголовками
Я исходный код загрузил, и этот заголовок ни компилятор, ни редактор не нашёл, а значит его нет!А либу там ещё прописать нужно
Bers
Заблокирован
19.11.2011, 17:19 #8
Цитата Сообщение от DenCHS200 Посмотреть сообщение
Я исходный код загрузил, и этот заголовок ни компилятор, ни редактор не нашёл, а значит его нет!А либу там ещё прописать нужно
Я не понял этой фразы.
DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
19.11.2011, 17:28 #9
У него, возможно, библиотека или заголовочный файл не установлены
Bers
Заблокирован
19.11.2011, 17:30 #10
Цитата Сообщение от DenCHS200 Посмотреть сообщение
У него, возможно, библиотека или заголовочный файл не установлены
Если бы хэдэр не нашёл - была бы ошибка "не могу открыть файл".
Но у него ошибка "не найдено тело функций".
Из чего можно сделать вывод - не подключена либа.
DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
19.11.2011, 17:30 #11
Извеняюсь за своё невнимание: Толком не посмотрел в сообщения компилятора у того, кто писал. А там о ненайдённый библиотеках и файлах не упомянуто.
Bers
Заблокирован
19.11.2011, 17:37 #12
Цитата Сообщение от DenCHS200 Посмотреть сообщение
Извеняюсь за своё невнимание: Толком не посмотрел в сообщения компилятора у того, кто писал. А там о ненайдённый библиотеках и файлах не упомянуто.
О том, что glaux - это библиотека, знают только программисты. Компилятор же не знает даже о существовании хэдэров.
Он никак не может сообщить о том, что не подключена библиотека.
Он может сообщить только о том, что конкретно не в порядке - отсутствуют тела функций
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
19.11.2011, 18:30  [ТС] #13
да,и в правду либа не была подключена.но как подключил выводило что не может запустить в фулскрине
C++
1
2
3
4
5
6
7
if(ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=
                        DISP_CHANGE_SUCCESSFUL)
                {
                        if(MessageBox( NULL,
                                L"The Requested Fullscreen Mode Is Not Supported By\nYourVideo Card. Use Windowed Mode Instead?", 
          L"Open GL", MB_YESNO | MB_ICONEXCLAMATION) == IDYES )
                                fullscreen=false;
почему ето??
и дальше не может создать окно
C++
1
2
3
4
5
6
7
8
9
10
11
12
 if(!(hWnd=CreateWindowEx(dwExStyle,
                L"OpenGL",title,
                WS_CLIPSIBLINGS|
                WS_CLIPCHILDREN|dwStyle,
                0,0,
                WindowRect.right-WindowRect.left,    
            WindowRect.bottom-WindowRect.top,
                NULL,NULL,hInstance,NULL))){
                        KillGLWindow();
                        MessageBox(NULL,L"Window Creation error",L"Error",MB_OK|MB_ICONEXCLAMATION);
                        return false;
                }
тоже интересно почему??
Bers
Заблокирован
19.11.2011, 18:34 #14
Цитата Сообщение от vetal10 Посмотреть сообщение
почему ето??
Есть подозрения, что параметры создаваемого окна не корректны.

Я сам ловил ошибки на подобных функциях вот в каких ситуациях:

Допустим, я хочу фулл скрин 800 на 600. Это работает.
Ну или я заказал 1024 на 768. Это тоже работает.

Но нельзя заказывать абы какие размеры.
Если я заказываю окно на 801 на 600, то это уже не работает.

Размеры окна фуллскрина могут быть только определённых размеров (какие размеры поддерживаются можешь глянуть в настройках монитора в виндовсе)
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
19.11.2011, 22:01  [ТС] #15
оо спасиб и вправду на нетбуке 1024х600

Добавлено через 3 часа 18 минут
хотя осталась ошибка тут:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if(!(hWnd=CreateWindowEx(dwExStyle,
        L"OpenGL",title,
        WS_CLIPSIBLINGS|
        WS_CLIPCHILDREN|dwStyle,
        0,0,
        1024,    
        600,
        NULL,NULL,hInstance,NULL))){
        DWORD d=GetLastError();//ERROR_INVALID_WINDOW_HANDLE 1400 Invalid window handle.
 
            KillGLWindow();
            MessageBox(NULL,L"Window Creation error",L"Error",MB_OK|MB_ICONEXCLAMATION);
            return false;
        }
хотя под дебагером смотрел значение хинстанс все норм вроде
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 22:01
Привет! Вот еще темы с ответами:

error LNK2019: unresolved external symbol - C++
Пример из книги Щупака Win32 API. Эффективная разработка приложений ...

vector, error LNK2019: unresolved external symbol - C++
Всем доброго времени суток. Хочу сделать список игроков, находящихся на карте (список меняется по мере игры в зависимости от появления...

Ошибка: error LNK2019: unresolved external symbol - C++
В общем делаю курсач, есть фунция ввода списка, но тут такая проблема: у меня не компилируется, то что я написал(точнее LINK не проходит) с...

Error LNK2019: unresolved external symbol "public: - C++
SeverWinSock.h#pragma once #include &quot;stdafx.h&quot; #include &quot;winsock.h&quot; const int WM_SERVER_ACCEPT = WM_USER+1; class...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.11.2011, 22:01
Ответ Создать тему
Опции темы

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