Re[10]: StdAfx.cpp & StdAfx.h, что такое и как избавиться?
От: OlegO Россия http://www.mediachase.ru
Дата: 03.12.01 16:16
Оценка:
Здравствуйте CC, Вы писали:

CC>Здравствуйте OlegO, Вы писали:


OO>>Здравствуйте CC, Вы писали:


CC>>>Здравствуйте Brother, Вы писали:


CC>>>Вообщем работаю с ДиректИкс.

CC>>>cpp — файл
CC>>>#include "StdAfx.h"
CC>>>#include "defs.h"

CC>>>хидер defs.h

CC>>>#ifndef DEFS_H
CC>>>#define DEFS_H
CC>>>HWND hWnd = NULL;
CC>>>LPDIRECTDRAW g_lpDD = NULL; // указатель на девайс
CC>>>LPDIRECTDRAWSURFACE g_lpSPrimary = NULL; // поверхности: первичная и бэк
CC>>>LPDIRECTDRAWSURFACE g_lpSBack = NULL;
CC>>>#endif

OO>>во-первых в заголвке нет включений на файлы с объявлением LPDIRECTDRAW.

OO>>во-вторых насколько я помню, переменные как таковые не получится определить в загловке Visual C++,
OO>>поэтому пишем, так: (должно заработать)

OO>>
OO>>//хидер defs.h
OO>>#ifndef DEFS_H
OO>>#define DEFS_H

OO>>#incluide <ddraw.h> // где лежит LPDIRECTDRAW, LPDIRECTDRAWSURFACE

OO>>extern HWND hWnd;
OO>>extern LPDIRECTDRAW g_lpDD; // указатель на девайс
OO>>extern LPDIRECTDRAWSURFACE g_lpSPrimary; // поверхности: первичная и бэк
OO>>extern LPDIRECTDRAWSURFACE;
OO>>#endif
OO>>


OO>>
OO>>//cpp - файл
OO>>#include "StdAfx.h"
OO>>#include "defs.h"

OO>>HWND hWnd = NULL;
OO>>LPDIRECTDRAW g_lpDD = NULL; // указатель на девайс
OO>>LPDIRECTDRAWSURFACE g_lpSPrimary = NULL; // поверхности: первичная и бэк
OO>>LPDIRECTDRAWSURFACE g_lpSBack = NULL;
OO>>


CC>а что это за extern и зачем он нужен?


Оно говорит, другим модулям при компиляции, что где-то есть определение этих переменных
и они будут установленны на этапе линковки.
С уважением, OlegO.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.