Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / РАЗМЕЩЕНИЕ ОПИСАНИЙ СТРУКТУР И ИХ ИНИЦИАЛИЗАЦИЯ / 7 сообщений из 7, страница 1 из 1
01.03.2005, 16:13
    #32939193
РАЗМЕЩЕНИЕ ОПИСАНИЙ СТРУКТУР И ИХ ИНИЦИАЛИЗАЦИЯ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
В приложении Visaul C++  6 . 0  
имеется  20  видов.
 Во всех из них используются  2  fonts.
Где разместить их в одном месте, 
чтобы код не разбухал ? Пробовал в  файлах
stdafx.h
в классе документа – ‘…Doc.h’ - file
В классе приложения ‘.h’ – file
В итоге от  100  до  1300  erros.
СПАСИБО.
LOGFONT logFontBody;
logFontBody.lfHeight = 20;
logFontBody.lfWidth = 0;
logFontBody.lfEscapement = 0;
logFontBody.lfOrientation = 0;
logFontBody.lfWeight = FW_NORMAL;
logFontBody.lfItalic = 1;
logFontBody.lfUnderline = 0;
logFontBody.lfStrikeOut = 0;
logFontBody.lfCharSet = RUSSIAN_CHARSET;
logFontBody.lfOutPrecision = OUT_DEFAULT_PRECIS;
logFontBody.lfQuality = PROOF_QUALITY;
logFontBody.lfPitchAndFamily = VARIABLE_PITCH | FF_ROMAN;
strcpy(logFontBody.lfFaceName,"Courier New");

LOGFONT logFontHeader;
logFontHeader.lfHeight = 25;
logFontHeader.lfWidth = 0;
logFontHeader.lfEscapement = 0;
logFontHeader.lfOrientation = 0;
logFontHeader.lfWeight = FW_NORMAL;
logFontHeader.lfItalic = 0;
logFontHeader.lfUnderline = 0;
logFontHeader.lfStrikeOut = 0;
logFontHeader.lfCharSet = RUSSIAN_CHARSET;
logFontHeader.lfOutPrecision = OUT_DEFAULT_PRECIS;
logFontHeader.lfQuality = PROOF_QUALITY;
logFontHeader.lfPitchAndFamily = VARIABLE_PITCH || FF_MODERN; strcpy(logFontHeader.lfFaceName,"Arial");
...
Рейтинг: 0 / 0
01.03.2005, 19:09
    #32939721
Void666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
РАЗМЕЩЕНИЕ ОПИСАНИЙ СТРУКТУР И ИХ ИНИЦИАЛИЗАЦИЯ
Что бы код не разбухал нужно поместить описание структур в си-файл, а в хидерах держать только внешнее описание:

Код: plaintext
extern тря-ля-ля
...
Рейтинг: 0 / 0
02.03.2005, 15:39
    #32941558
РАЗМЕЩЕНИЕ ОПИСАНИЙ СТРУКТУР И ИХ ИНИЦИАЛИЗАЦИЯ
Вид файла stdafx.h после добавленных строк
extern LOGFONT logFontHeader2;
extern LOGFONT logFontBody2;


Вид файла stdafx.cpp после добавленных строк

#include "stdafx.h"
LOGFONT logFontHeader2; // добавленная мной строка
LOGFONT logFontBody2; // добавленная мной строка
logFontBody2.lfHeight; - на этой строке 4 errors

error C2143: syntax error : missing ';' before '.'
error C2501: 'logFontBody2' : missing storage-class or type specifiers
error C2371: 'logFontBody2' : redefinition; different basic types
35) : see declaration of 'logFontBody2'
error C2143: syntax error : missing ';' before '.'

присваиваю значение
logFontBody2.lfHeight = 14; - имеем опять те же 4 errors
error C2143: syntax error : missing ';' before '.'
error C2501: 'logFontBody2' : missing storage-class or type specifiers
error C2371: 'logFontBody2' : redefinition; different basic types
35) : see declaration of 'logFontBody2'
error C2143: syntax error : missing ';' before '.'

PS: пробовал в классе документа ( аналогично в ‘..Doc.h’ and ‘…Doc.cpp’) .
Результат тот же.
inline тоже не подходит.
РЕШАЕМА ЛИ ПРОБЛЕМА ?

СПАСИБО.
...
Рейтинг: 0 / 0
02.03.2005, 17:11
    #32941907
zuzu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
РАЗМЕЩЕНИЕ ОПИСАНИЙ СТРУКТУР И ИХ ИНИЦИАЛИЗАЦИЯ
cтруктуры инициализируются так:

struct stest
{
long i;
int j;
char *s;
};

stest var_test= {1, 2, "mama"};
...
Рейтинг: 0 / 0
02.03.2005, 21:52
    #32942457
РАЗМЕЩЕНИЕ ОПИСАНИЙ СТРУКТУР И ИХ ИНИЦИАЛИЗАЦИЯ
НЕ МОГУ ШРИФТ УСТАНОВИТЬ В СТРУКТУРЕ.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
В stdafx.h имеем:
extern LOGFONT  logFontHeader;  
extern LOGFONT  logFontBody;	


В stdafx.cpp

LOGFONT  logFontBody = { 20 , // эквивалентно logFontBody.lfHeight = 20; 
 0 , 0 , 0 ,FW_NORMAL,
 1 , // эквивалентно  logFontBody.lfItalic = 1;
 0 , 0 ,
RUSSIAN_CHARSET, // эквивалентно logFontBody.lfCharSet = OUT_DEFAULT_PRECIS,
PROOF_QUALITY,
VARIABLE_PITCH | FF_ROMAN};
Вышеидущие строки правильны, проверено на Italic

// ниже идут апробированные варианты
VARIABLE_PITCH | FF_ROMAN, - запятая в конце этой строки
VARIABLE_PITCH | FF_ROMAN,"Courier New"}; - неправильно
strcpy(logFontBody,"Courier New"); - неправильно
strcpy(logFontBody.lfFaceName,"Courier New"); - неправильно
"Courier New" - неправильно
Courier New – тем более неправильно, в кавычки литерал надо взять
};
// нижеидущая строка тоже к error приводит
strcpy(logFontBody.lfFaceName,"Courier New");

СПАСИБО.
Ниже приведена структура из MSDN
LOGFONT
The LOGFONT structure defines the attributes of a font.
typedef struct tagLOGFONT {
LONG Ошибка! Недопустимый объект гиперссылки.;
LONG Ошибка! Недопустимый объект гиперссылки.;
LONG Ошибка! Недопустимый объект гиперссылки.;
LONG Ошибка! Недопустимый объект гиперссылки.;
LONG Ошибка! Недопустимый объект гиперссылки.;
BYTE Ошибка! Недопустимый объект гиперссылки.;
BYTE Ошибка! Недопустимый объект гиперссылки.;
BYTE Ошибка! Недопустимый объект гиперссылки.;
BYTE Ошибка! Недопустимый объект гиперссылки.;
BYTE Ошибка! Недопустимый объект гиперссылки.;
BYTE Ошибка! Недопустимый объект гиперссылки.;
BYTE Ошибка! Недопустимый объект гиперссылки.;
BYTE Ошибка! Недопустимый объект гиперссылки.;
TCHAR Ошибка! Недопустимый объект гиперссылки.[LF_FACESIZE];
} LOGFONT, *PLOGFONT;
...
Рейтинг: 0 / 0
02.03.2005, 23:10
    #32942516
zuzu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
РАЗМЕЩЕНИЕ ОПИСАНИЙ СТРУКТУР И ИХ ИНИЦИАЛИЗАЦИЯ
/*
typedef struct tagLOGFONT {
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT
*/
LOGFONT lf = {1,2,3,4,5,6,7,8,9,10,11,12,13,"mama"};
инициализировать надо всю структуру
...
Рейтинг: 0 / 0
03.03.2005, 20:16
    #32944911
РАЗМЕЩЕНИЕ ОПИСАНИЙ СТРУКТУР И ИХ ИНИЦИАЛИЗАЦИЯ
zuzu

БОЛЬШОЕ СПАСИБО,

МОЯ ОШИБКА БЫЛА В ТОМ, ЧТО ОДНО ПОЛЕ СТРУКТУРЫ Я ПРОПУСТИЛ.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / РАЗМЕЩЕНИЕ ОПИСАНИЙ СТРУКТУР И ИХ ИНИЦИАЛИЗАЦИЯ / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]