Форум программистов, компьютерный форум, киберфорум
Наши страницы

Укажите на ошибку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оправдано ли использовать глобальные переменные и константы http://www.cyberforum.ru/cpp-beginners/thread1063994.html
Здравствуйте, я бы хотел узнать немного об использовании глобальных переменных и констант. Немало слышал и читал о том, что глобальные переменные использовать крайне не рекомендуется. Но как тогда...
C++ Функция для получения пути к приложению Привет, как написать функция которая будет возвращать путь к запущенному приложении ? if( !gSplashTexture.loadFromFile( "splash.png" ) ) { printf( "Failed to load splash texture!\n" );... http://www.cyberforum.ru/cpp-beginners/thread1063986.html
C++ Двухмерный массив: найти максимальный из элементов, лежащих ниже побочной диагонали
Привет всем помогите с задачей на С++. Ввести матрицу размером NxM. Память для массива выделить динами- чески. Найти максимальный среди элементов, лежащих ниже побочной диагонали. Предусмотреть в...
Определить изоморфен ли граф своему дополнению C++
Добрый день. Существует ли какой либо критерий для неориентированных графов. В данном случае есть граф и есть его дополнение нужно определить изоморфны ли друг другу они. И еще, матрицу смежности...
C++ Найти все трехзначные парные числа, которые являются точными квадратами http://www.cyberforum.ru/cpp-beginners/thread1063967.html
Помогите пожалуйста 1. Найти все трехзначные чётные числа, которые есть точными квадратами. 2. Протабулировать функцию f(x,y) , якщо x є(1;1,4) , а y є (0;0,5) з с шагом обоих переменных 0,05.
C++ Как написать свой таймер? Чтобы функция выполнялась скажем каждые 200 миллисекунд. Сейчас WM_TIMER делает это, но он не подходит. Искал по многим запросам в гугле и не смог найти простого примера. подробнее

Показать сообщение отдельно
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728

Укажите на ошибку - C++

06.01.2014, 02:56. Просмотров 346. Ответов 4
Метки (Все метки)

Привет, есть проект, в нем был только один файл core.cpp
в нем было и объявления функций и их описания, короче говоря все было в одном файле.
Я решил привести это дело в порядок, получилась такая структура:
Заголовочные файлы:
Код
core.h
Файлы исходного кода:
Код
_close.cpp
_loadMedia.cpp
core.cpp
_init.cpp
Код core.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
/*This source code copyrighted by Lazy Foo' Productions (2004-2013)
and may not be redistributed without written permission.*/
 
//Using SDL and standard IO
#include "core.h"
 
int main( int argc, char* args[] )
{
    //Start up SDL and create window
    if( !init() )
        {
            printf( "Failed to initialize!\n" );
        }
    else
    {
        //Load media
        if( !loadMedia() )
            {
                printf( "Failed to load media!\n" );
            }
        else
            {
                //Apply the image
                SDL_BlitSurface( gHelloWorld, NULL, gScreenSurface, NULL );
            
                //Update the surface
                SDL_UpdateWindowSurface( gWindow );
 
                //Wait two seconds
                SDL_Delay( 2000 );
            }
    }
 
    //Free resources and close SDL
    close();
 
    return 0;
}
в core.h объявил все функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <SDL.h>
#include <stdio.h>
//==============================================================================
    //Розширення
    const int SCREEN_WIDTH = 640;
    const int SCREEN_HEIGHT = 480;
    const char WindowTitle[] = "My Game";
//==============================================================================
    //Запуск SDL2 і створення вікон
    bool init();
    //Завантаження медіа
    bool loadMedia();
    //Очишчення медіа та вимкнення SDL
    void close();
    //The window we'll be rendering to
    SDL_Window* gWindow = NULL; 
    //The surface contained by the window
    SDL_Surface* gScreenSurface = NULL;
    //The image we will load and show on the screen
    SDL_Surface* gHelloWorld = NULL;
//==============================================================================
а в _close.cpp и всех что начинаются на символ "_" описал функции, пример _close.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "core.h"
//==============================================================================
void close()
{
    //Deallocate surface
    SDL_FreeSurface( gHelloWorld );
    gHelloWorld = NULL;
 
    //Destroy window
    SDL_DestroyWindow( gWindow );
    gWindow = NULL;
 
    //Quit SDL subsystems
    SDL_Quit();
}
//==============================================================================
Но при компиляции получаю ошибку:
Код
1>------ Построение начато: проект: MyGame, Конфигурация: Debug Win32 ------
1>Построение начато 06.01.2014 0:55:45.
1>InitializeBuildStatus:
1>  Обращение к "Debug\MyGame.unsuccessfulbuild".
1>ClCompile:
1>  Для всех выходных данных обновления не требуется.
1>_close.obj : error LNK2005: "struct SDL_Window * gWindow" (?gWindow@@3PAUSDL_Window@@A) уже определен в core.obj
1>_close.obj : error LNK2005: "struct SDL_Surface * gScreenSurface" (?gScreenSurface@@3PAUSDL_Surface@@A) уже определен в core.obj
1>_close.obj : error LNK2005: "struct SDL_Surface * gHelloWorld" (?gHelloWorld@@3PAUSDL_Surface@@A) уже определен в core.obj
1>_init.obj : error LNK2005: "struct SDL_Window * gWindow" (?gWindow@@3PAUSDL_Window@@A) уже определен в core.obj
1>_init.obj : error LNK2005: "struct SDL_Surface * gScreenSurface" (?gScreenSurface@@3PAUSDL_Surface@@A) уже определен в core.obj
1>_init.obj : error LNK2005: "struct SDL_Surface * gHelloWorld" (?gHelloWorld@@3PAUSDL_Surface@@A) уже определен в core.obj
1>_loadMedia.obj : error LNK2005: "struct SDL_Window * gWindow" (?gWindow@@3PAUSDL_Window@@A) уже определен в core.obj
1>_loadMedia.obj : error LNK2005: "struct SDL_Surface * gScreenSurface" (?gScreenSurface@@3PAUSDL_Surface@@A) уже определен в core.obj
1>_loadMedia.obj : error LNK2005: "struct SDL_Surface * gHelloWorld" (?gHelloWorld@@3PAUSDL_Surface@@A) уже определен в core.obj
1>D:\Proga\GamePC\Win\MyGame\Debug\MyGame.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.15
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Что я делаю не так ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru