Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> макрос, не заменяет переменную значением 
:(
    Опции темы
DENNN
Дата 21.4.2003, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



пишу макрос так:
Код

#define STRING_TO_FILED(vv, ff) \
case vv: \
memcpy(& ff , str.GetBuffer(sizeof( ff )-1), sizeof( ff ));str.ReleaseBuffer(); \
break;


использовать хочу в теле функции:
Код

CString str;

.....
switch(...)
{
STRING_TO_FILED (0, product.m_name);
STRING_TO_FILED (1, product.m_ID);
...
};


На первой же подстановке макроса выдает ошибку, что переменные vv и ff не определены.
Почему компилятор не делает подмены параметров на их значения?
Уже и макрос проверял на синтаксис как в afxwin.h- все правильно, но у них замена происходит а у меня нет!
PM ICQ   Вверх
man2002ua
Дата 21.4.2003, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 943
Регистрация: 12.11.2002
Где: Киев

Репутация: нет
Всего: 2



Скопировал код, только вместо product.m_xxxx подставил обычный char [100]
Все нормально работает. Посмотри на определение product.m_xxx и мне покажи.


--------------------
"Нет ничего более постоянного, чем временное"
PM MAIL   Вверх
DENNN
Дата 21.4.2003, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Код

class CProduct
{
public:
CProduct()
{
 memset( (void*)this, 0, sizeof(*this) );
 name_length=100;
};

GUID m_ID;
char m_Art[21];
char m_NameFull[251];
char m_name[101];
char m_Params[101];
int m_Barcode;
BOOL m_Warehouse1;
BOOL m_Warehouse2;
GUID m_PackageID;
int m_Quantperpack;
double m_Weight;
GUID m_ManufacturerID;
GUID m_ProduceCountryID;
double m_RetailPrice;
double m_BasisPrice;
double m_FOBPrice;
GUID m_CategoryID;
char m_ProductPosition[51];
char m_DescFile[257];
DBTIMESTAMP m_Producebegin;
GUID m_AvailabilityID;
//ISequentialStream* m_Image;


BEGIN_COLUMN_MAP(CProduct)
 COLUMN_ENTRY_TYPE(1, DBTYPE_GUID, m_ID)
 COLUMN_ENTRY_TYPE(2, DBTYPE_STR, m_Art)
 COLUMN_ENTRY_TYPE(3, DBTYPE_STR, m_NameFull)
 COLUMN_ENTRY_TYPE(4, DBTYPE_STR, m_name)
 COLUMN_ENTRY_TYPE(5, DBTYPE_STR, m_Params)
 COLUMN_ENTRY_TYPE(6, DBTYPE_I4, m_Barcode)
 COLUMN_ENTRY_TYPE(7, DBTYPE_BOOL, m_Warehouse1)
 COLUMN_ENTRY_TYPE(8, DBTYPE_BOOL, m_Warehouse2)
 COLUMN_ENTRY_TYPE(9, DBTYPE_GUID, m_PackageID)
 COLUMN_ENTRY_TYPE(10, DBTYPE_I4, m_Quantperpack)
 COLUMN_ENTRY_TYPE(11, DBTYPE_R8, m_Weight)
 COLUMN_ENTRY_TYPE(12, DBTYPE_GUID, m_ManufacturerID)
 COLUMN_ENTRY_TYPE(13, DBTYPE_GUID, m_ProduceCountryID)
 COLUMN_ENTRY_TYPE(14, DBTYPE_R8, m_RetailPrice)
 COLUMN_ENTRY_TYPE(15, DBTYPE_R8, m_BasisPrice)
 COLUMN_ENTRY_TYPE(16, DBTYPE_R8, m_FOBPrice)
 COLUMN_ENTRY_TYPE(17, DBTYPE_GUID, m_CategoryID)
 COLUMN_ENTRY_TYPE(18, DBTYPE_STR, m_ProductPosition)
 COLUMN_ENTRY_TYPE(19, DBTYPE_STR, m_DescFile)
 COLUMN_ENTRY_TYPE(20, DBTYPE_DBTIMESTAMP, m_Producebegin)
 COLUMN_ENTRY_TYPE(21, DBTYPE_GUID, m_AvailabilityID)
 //BLOB_ENTRY(22, IID_ISequentialStream, STGM_READ, m_Image)
END_COLUMN_MAP()

protected:
};

Возможно я где-то в проекте что-то напутал. Плюнул на макрос и все руками переписал.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1552 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.