Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 16:42   #1
SlavaStas
 
Регистрация: 11.05.2013
Сообщений: 9
По умолчанию Ошибка error LNK2019: ссылка на неразрешенный внешний символ

Здравствуйте, начал разбираться с OpenGL. Мне посоветовали вот этот сайт. Из первого урока слово в слово переписал программу, вот код:
SlavaStas вне форума Ответить с цитированием
Старый 28.05.2013, 16:47   #2
SlavaStas
 
Регистрация: 11.05.2013
Сообщений: 9
По умолчанию

Код:
// OpenGL.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <Windows.h>
#include <gl\GL.h>
#include <gl\GLU.h>
#pragma comment(lib, "GLAUX.LIB")
 
HGLRC       hRC = NULL;         //Постоянный контекст рендеринга
HDC         hDC = NULL;         //Приватный контекст устройства GDI
HWND        hWnd = NULL;        //Дескриптор окна
HINSTANCE   hInstance;          //Десриптор прилодения
 
bool keys[256];                 //Массив для операция с клавой
bool active = true;             //Флаг активности окна
bool fullscreen = true;         //Флаг режима окна, установленный в полноэкранном редиме по умолчанию
 
LRESULT CALLBACK WndPros(HWND, UINT, WPARAM, LPARAM);           //прототип ф-и 
 
GLvoid ReSizeGLScene(GLsizei width, GLsizei height)             //Изменить размер и инициализировать окно
{
    if(height == 0)             //Проверка деления на 0
    {
        height = 1;
    }
    glViewport(0, 0, width, height);        //Сброс текущей области вывода
    glMatrixMode(GL_PROJECTION);            //выбор матрицы проэкции
    glLoadIdentity();                       //сброс матрицы прокции
 
    //Вычисление геометрических размеров окна
    gluPerspective(45.0f, (GLfloat)height, 0.1f, 100.0f);
 
    glMatrixMode(GL_MODELVIEW);             //выбо матрицы вида модели
    glLoadIdentity();                       //сброс матрицы
}
 
int InitGL(GLvoid)                          //OpenGL initialization
{
    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(GLvoid)         //Прорисовка
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);         //очистака экрана и буфера глубины
    glLoadIdentity();           //Сбросить текущую матрицу
 
    return true;
}
SlavaStas вне форума Ответить с цитированием
Старый 28.05.2013, 16:49   #3
SlavaStas
 
Регистрация: 11.05.2013
Сообщений: 9
По умолчанию

Код:
GLvoid KillGLWindow(GLvoid)
{
    if(fullscreen)
    {
        ChangeDisplaySettings(NULL, 0);         //Переключение в оконный режим
        ShowCursor(true);                       //Показать курсор
    }
    if(hRC)         //Существует ли Контекст Рендиринга
    {
        if(!wglMakeCurrent(NULL, NULL))     //Возможно ли освободить RC и DC?
        {
            MessageBox(NULL, (LPCWSTR)"Rekease Of DC And RC Failed.", (LPCWSTR)"SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
        }
        if(!wglDeleteContext(hRC))          //Возможно ли удалить RC?
        {
            MessageBox(NULL, (LPCWSTR)"Rekease Rendering Contex Failed.", (LPCWSTR)"SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
        }
        hRC = NULL;
    }
    if(hDC && !ReleaseDC(hWnd, hDC))        //Возможно ли уничтодить DC?
    {
        MessageBox(NULL, (LPCWSTR)"Rekease Device Context Failed.", (LPCWSTR)"SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
        hDC = NULL;
    }
    if (hWnd && !DestroyWindow(hWnd))       //Возможно ли уничтожить окно?
    {
        MessageBox(NULL, (LPCWSTR)"Could Not Rekease hWnd.", (LPCWSTR)"SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
        hWnd = NULL;
    }
    if (!UnregisterClass((LPCWSTR)"OpenGL", hInstance))         //возможно ли разрегестрировать класс
    {
        MessageBox(NULL, (LPCWSTR)"Could Not Unregister Class.", (LPCWSTR)"SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
        hInstance = NULL;
    }
}
SlavaStas вне форума Ответить с цитированием
Старый 28.05.2013, 16:50   #4
SlavaStas
 
Регистрация: 11.05.2013
Сообщений: 9
По умолчанию

Код:
BOOL CreateGLWindow(LPCWSTR title, int width, int height, int bits, bool fullscreenflag)
{
    GLuint PixelFormat;         //Хранит результат после поиска
    WNDCLASS wc;                //Структура класса окна
    DWORD dwExStyle;            //Расширеный стиль окна
    DWORD dwStyle;              //Обиыный стиль окна
 
    //Установка значени координат левого верхнего и правого нижнего угла окна.
    RECT WindowRect;
    WindowRect.left = (long)0;
    WindowRect.right = (long)width;
    WindowRect.top = (long)0;
    WindowRect.bottom = (long)height;
 
    fullscreen = fullscreenflag;
 
    //Считываем дескриптор и декларируем класс окна
    hInstance = GetModuleHandle(NULL);
    wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
    wc.lpfnWndProc = (WNDPROC)WndPros;
    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 = (LPCWSTR)"OpenGL";
 
    if(!RegisterClass(&wc))         //пытаемся зарегестрировать класс окна
    {
        MessageBox(NULL, (LPCWSTR)"Failed To Regster the Window Class.", (LPCWSTR)"ERROR", MB_OK | MB_ICONINFORMATION);
        return false;
    }
    if (fullscreen)                 //Пытаемся установить полноэкранный режим
    {
        DEVMODE dmScreenSettings;
        memset(&dmScreenSettings, 0, sizeof(dmScreenSettings));
        dmScreenSettings.dmSize = sizeof(dmScreenSettings);
        dmScreenSettings.dmPelsWidth = width;
        dmScreenSettings.dmPelsHeight = height;
        dmScreenSettings.dmBitsPerPel = bits;
        dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
 
        // Пытаемся установить выбранный режим и получить результат.  Примечание: CDS_FULLSCREEN убирает панель управления.
        if (ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
        {
             // Если переключение в полноэкранный режим невозможно, будет предложено два варианта: оконный режим или выход.
            if(MessageBox(NULL,(LPCWSTR)"Rhe Requsted Fullscreen Mode Is Not Supported By\nYour Video Card. Use Windowed Mode Instead?",
                (LPCWSTR)"OpenGL", MB_YESNO | MB_ICONEXCLAMATION) == IDYES)
            {
                fullscreen = false;
            }
            else
            {
                //Выскакивающие окно, сообщающее пользователю о закрытии окна.
                MessageBox(NULL, (LPCWSTR)"Program Will Now Close.", (LPCWSTR)"ERROR", MB_OK | MB_ICONSTOP);
 
                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, false, dwExStyle);         //Подирает подходящие размеры окна
    if (!(hWnd = CreateWindowEx(dwExStyle,                              //Расширенный стиль для окна
                                _T("OpenGL"),                           //Имя класса
                                title,                                  //Заголовок окни
                                WS_CLIPSIBLINGS |                       //Трбуемый стиль
                                WS_CLIPCHILDREN |                       //Трбуемый стиль
                                dwStyle,                                //Выбираемые стили
                                0, 0,                                   //Позиция
                                WindowRect.right - WindowRect.left,     //Вычисление подхлжящей ширины
                                WindowRect.bottom - WindowRect.top,     //Вычисление подхлжящей высоты
                                NULL, NULL,                             //Нет родительского окна и меню
                                hInstance,                              //Дескриптор приложений
                                NULL)))                                 //Не передаем ничего до WM_CREATE(???)
    {
        KillGLWindow();
        MessageBox(NULL, (LPCWSTR)"Window Creation Error.", (LPCWSTR)"ERROR", MB_OK | MB_ICONEXCLAMATION);
        return false;
    }
SlavaStas вне форума Ответить с цитированием
Старый 28.05.2013, 16:51   #5
SlavaStas
 
Регистрация: 11.05.2013
Сообщений: 9
По умолчанию

Код:
    //Формат пикселей
    static PIXELFORMATDESCRIPTOR pfd =                  //pfd сообщает Windows каким будет вывод ни экран каждого пикселя
    {
        sizeof(PIXELFORMATDESCRIPTOR),  //размер дескриптора данного формата пикселей
        1,                              //номер версии
        PFD_DRAW_TO_WINDOW |            //Формат для окна
        PFD_SUPPORT_OPENGL |            //Формат для openGL
        PFD_DOUBLEBUFFER,               //Формат для двойного буфера
        PFD_TYPE_RGBA,                  //Требуется RGBA формат
        bits,                           //Выбирается бит глубины цвета  
        0, 0, 0, 0, 0, 0,               //Игнорирование Цветовых битов
        0,                              //Нет буфера прозрачности
        0,                              //Сдвиговый бит глубины цвета
        0,                              //Нет буфера накопления
        0,                              //Биты накопления игнорируются
        32,                             //32-битный Z-буфер
        0,                              //Нет буффера трафарета
        0,                              //Нет воспомогательных буферов
        PFD_MAIN_PLANE,                 //Главный слой рисования
        0,                              //Зарезервировано
        0, 0, 0                         //Маски слоя игнорируются
    };
    if (!(hDC = GetDC(hWnd)))           //Можем ли мы установить контекст устройства
    {
        KillGLWindow();
        MessageBox(NULL, (LPCWSTR)"Can't Create a Gl Device Context.", (LPCWSTR)"ERROR", MB_OK | MB_ICONEXCLAMATION);
        return false;
    }
    if (!(PixelFormat = ChoosePixelFormat(hDC, &pfd)))      //Найден ли подходящий формат
    {
        KillGLWindow();
        MessageBox(NULL, (LPCWSTR)"Can't Find a Suitble PixelFormat.", (LPCWSTR)"ERROR", MB_OK | MB_ICONEXCLAMATION);
        return false;
    }
    if (!SetPixelFormat(hDC, PixelFormat, &pfd))                //Возможно ли установить формат Пикселя?
    {
        KillGLWindow();
        MessageBox(NULL, (LPCWSTR)"Can't Set the PixelFormat.", (LPCWSTR)"ERROR", MB_OK | MB_ICONEXCLAMATION);
        return false;
    }
    if (!(hRC = wglCreateContext(hDC)))                     //Возможно ли установить Контекст Рендеринга?
    {
        KillGLWindow();
        MessageBox(NULL, (LPCWSTR)"Can't Create a GL Rendering Context.", (LPCWSTR)"ERROR", MB_OK | MB_ICONEXCLAMATION);
        return false;
    }
    if (!wglMakeCurrent(hDC, hRC))                          //Попробовать активировать Контекст Рендеринга
    {
        KillGLWindow();
        MessageBox(NULL, (LPCWSTR)"Can't Activate the GL Rendering Context.", (LPCWSTR)"ERROR", MB_OK | MB_ICONEXCLAMATION);
        return false;
    }
    ShowWindow(hWnd, SW_SHOW);          //Показать окно
    SetForegroundWindow(hWnd);          //Повысить приоритет
    SetFocus(hWnd);                     //Установить фокус клавиатуры
    ReSizeGLScene(width, height);       //Настроить перспективу для экрана
    if (!InitGL())
    {
        KillGLWindow();
        MessageBox(NULL, _T("Initialization Failed."), _T("ERROR"), MB_OK | MB_ICONEXCLAMATION);
        return false;
    }
 
    return true;
}
SlavaStas вне форума Ответить с цитированием
Старый 28.05.2013, 16:52   #6
SlavaStas
 
Регистрация: 11.05.2013
Сообщений: 9
По умолчанию

Код:
LRESULT CALLBACK WndProc(HWND hWnd,             //Дескриптор нужного окна
                         UINT uMsg,             //Сообщение для этого окна
                         WPARAM wParam,         //Дополнительная информация
                         LPARAM lParam)         //Дополнительная информация
{
    switch (uMsg)                       //Проверка сообщения для окна
    {
    case WM_ACTIVATE:                   //проверить состояние минимизации
        {
            if (!HIWORD(wParam))
            {
                active = true;          //Программа активна
            }
            else
            {
                active = false;         //Программа теперь не активна
            }
            return 0;                   //Возвращаемся в цикл обработки сообщений
        }
    case WM_SYSCOMMAND:                 //Перехватываем системную команду
        {
            switch (wParam)             //Останавливаем системный вызов
            {
            case SC_SCREENSAVE:         //Пытается ли запуститься скринсейвер?
            case SC_MONITORPOWER:       //Пытается ли монитор перейти в режим сбережения энергии?
                return 0;               //Предотвращаем это
            }
            break;                      //Выход
        }
    case WM_CLOSE:                      //Мы получили сообщение о закрытии?
        {
            PostQuitMessage(0);         //Отправить сообщение о выходе
            return 0;                   //Вернуться назад
        }
    case WM_KEYDOWN:                    //Была ли нажата кнопка?
        {
            keys[wParam] = true;        //Запоминаем какая нажата если да
            return 0;
        }
    case WM_KEYUP:                      //Была ли отпущена клавиша?
        {
            keys[wParam] = false;       //Запоминаем какая отпузена, если да
            return 0;
        }
    case WM_SIZE:                       //Изменены размеры окна
        {
            ReSizeGLScene(LOWORD(lParam), HIWORD(lParam));      //Младшее слово = width, старшее слово = height
            return 0;
        }
    }
 
    return DefWindowProc(hWnd, uMsg, wParam, lParam);           //Пересылаем все необработанные сообщения
}
 
//Точка входа
int WINAPI WinMain(HINSTANCE hInstance,                 //Дескриптор приложений
                   HINSTANCE hPrevInstance,             //Дескриптор родительского приложения
                   LPSTR lpCmdLine,                     //Параметры командной строки
                   int nCmdShow)                        //Состояние рабочего окна
{
    MSG msg;                    //Структура для хранения сообщения Windows
    BOOL done = false;          //Логическая переменная для выхода их цикла
 
    //Запрос режима
    if (MessageBox(NULL, (LPCWSTR)"Full Screen?", (LPCWSTR)"Full Screen", MB_YESNO | MB_ICONQUESTION)
        == IDNO)
    {
        fullscreen = false;         //Оконный режим
    }
 
    //Создаем окно
    if (!CreateGLWindow((LPCWSTR)"First окно", 1024, 768, 32, fullscreen))
    {
        return 0;
    }
    while (!done)
    {
        if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))   //Проверка очереди сообщений
        {
            if (msg.message == WM_QUIT)                 //Сообщение о выходе?
            {
                done = true;
            }
            else                                        //Если нет, то обрабатываем сообщение
            {
                TranslateMessage(&msg);                 //Перевод соощения
                DispatchMessage(&msg);                  //Отсылаем сообщение
            }
        }
        else                                            //Если нет соощений
        {
            //Прорисовка сцены
            if (active)
            {
                if (keys[VK_ESCAPE])                    //Была ли нажата Esc?
                {
                    done = true;
                }
                else                                    //Не время для выхода. Обновим ка экран
                {
                    DrawGLScene();                      //Рисуем сцену
                    SwapBuffers(hDC);                   //Изменяем буфер (двойная буферизация)
                }
            }
            if (keys[VK_F1])                            //Нажали F1?
            {
                keys[VK_F1] = false;                    //Меняем значение на фолс
                KillGLWindow();                         //Разрушаем текущее окно
                fullscreen = !fullscreen;               //Переключаем режим
 
                //Пересоздаем окно
                if (!CreateGLWindow(_T("Структура"), 1024, 768, 32, fullscreen))
                {
                    return 0;
                }
            }
        }
    }
 
    //Shutdown
    KillGLWindow();
    return (msg.wParam);
}
SlavaStas вне форума Ответить с цитированием
Старый 28.05.2013, 16:53   #7
SlavaStas
 
Регистрация: 11.05.2013
Сообщений: 9
По умолчанию

и вот оно мне выдает такой список ошибок:
Код:
Ошибка	1	error LNK2019: ссылка на неразрешенный внешний символ __imp__wglCreateContext@4 в функции "int __cdecl CreateGLWindow(wchar_t const *,int,int,int,bool)" (?CreateGLWindow@@YAHPB_WHHH_N@Z)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	2	error LNK2019: ссылка на неразрешенный внешний символ __imp__wglDeleteContext@4 в функции "void __cdecl KillGLWindow(void)" (?KillGLWindow@@YAXXZ)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	3	error LNK2019: ссылка на неразрешенный внешний символ __imp__wglMakeCurrent@8 в функции "int __cdecl CreateGLWindow(wchar_t const *,int,int,int,bool)" (?CreateGLWindow@@YAHPB_WHHH_N@Z)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	4	error LNK2019: ссылка на неразрешенный внешний символ __imp__glClear@4 в функции "int __cdecl DrawGLScene(void)" (?DrawGLScene@@YAHXZ) d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	5	error LNK2019: ссылка на неразрешенный внешний символ __imp__glClearColor@16 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	6	error LNK2019: ссылка на неразрешенный внешний символ __imp__glClearDepth@8 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	7	error LNK2019: ссылка на неразрешенный внешний символ __imp__glDepthFunc@4 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	8	error LNK2019: ссылка на неразрешенный внешний символ __imp__glEnable@4 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	9	error LNK2019: ссылка на неразрешенный внешний символ __imp__glHint@8 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	10	error LNK2019: ссылка на неразрешенный внешний символ __imp__glLoadIdentity@0 в функции "int __cdecl DrawGLScene(void)" (?DrawGLScene@@YAHXZ)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	11	error LNK2019: ссылка на неразрешенный внешний символ __imp__glMatrixMode@4 в функции "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	12	error LNK2019: ссылка на неразрешенный внешний символ __imp__glShadeModel@4 в функции "int __cdecl InitGL(void)" (?InitGL@@YAHXZ)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	13	error LNK2019: ссылка на неразрешенный внешний символ __imp__glViewport@16 в функции "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	14	error LNK2019: ссылка на неразрешенный внешний символ _gluPerspective@32 в функции "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	15	error LNK2019: ссылка на неразрешенный внешний символ "long __stdcall WndPros(struct HWND__ *,unsigned int,unsigned int,long)" (?WndPros@@YGJPAUHWND__@@IIJ@Z) в функции "int __cdecl CreateGLWindow(wchar_t const *,int,int,int,bool)" (?CreateGLWindow@@YAHPB_WHHH_N@Z)	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\OpenGL.obj
Ошибка	16	error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup	d:\Visual Studio 2012\Projects\OpenGL\OpenGL\MSVCRTD.lib(crtexe.obj)
Ошибка	17	error LNK1120: неразрешенных внешних элементов: 16	d:\Visual Studio 2012\Projects\OpenGL\Debug\OpenGL.exe
SlavaStas вне форума Ответить с цитированием
Старый 28.05.2013, 16:53   #8
SlavaStas
 
Регистрация: 11.05.2013
Сообщений: 9
По умолчанию

что делать? как исправить?
Если это важно, пишу в VS12
Скажите может хоть кто знает где можно посмотреть более подробные уроки по OpenGL
SlavaStas вне форума Ответить с цитированием
Старый 28.05.2013, 17:30   #9
revizor
Форумчанин
 
Аватар для revizor
 
Регистрация: 20.01.2013
Сообщений: 146
По умолчанию

Сама ошибка "ссылка на неразрешенный внешний символ" означает что прототип функции есть, а ее описание отсутствует. Так же и с переменными. вроде бы так

OpenGL я не знаю и навряд ли смогу помочь
revizor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ссылка на неразрешенный внешний символ Axrik Общие вопросы C/C++ 4 01.12.2012 18:32
Свой класс - ошибка линковки LNK2019: ссылка на неразрешенный внешний символ... Egyptorium Общие вопросы C/C++ 7 11.01.2012 17:48
Ошибка: ссылка на неразрешенный внешний символ Cthutq66a Помощь студентам 7 06.11.2011 12:10
error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup Zhivu igrayuchi Visual C++ 2 25.12.2010 16:48
Ссылка на неразрешенный внешний символ(error LNK2019) TheWanderer Общие вопросы C/C++ 2 07.08.2009 19:58