Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перенесение кода с Visual C++ на g++

589
18 августа 2004 года
rarelang
55 / / 08.05.2004
Всем привет,

Я пишу cross-платформенное (консольное) приложение и столкнулся со следующей проблемой, мой код идеально компилируется в Visual C++ но g++ мне выдает ошибку (вернее их куча, но они идентичные нижеприведенной)
Никаких проблем с непереносимыми функциями у меня нет (все идеально совместимо как с Windows так и с UNIX), но есть куча условностей и разностей в синтаксисе казалось бы стандартизированного С++

Код у меня примерно следующий (он довольно комплексный но пример исчерпывающий)

#define TRY try{
#define CATCH(X) }catch(...){errorstr+="called in - ";errorstr+=X+string(" ");throw;}
#define BEGINSTAT clock_t beginstattime=::clock();
#define ENDSTAT(X) {unsigned int commontime=::clock()-beginstattime;PowerLog(ARGV_PATH_CGI+"performance.log",X##" execution time",commontime,10,true);}

...(далее еще куча всего)

unsigned int DBManagerObject::GetNewMessageId()
{
TRY
#ifdef PERFORMANCE_STAT
BEGINSTAT
#endif

unsigned int id;
FILE* file=fopen(MESSAGESTABLE.c_str(),"r+b");
fread(&id,sizeof(unsigned int),1,file);
fclose(file);

#ifdef PERFORMANCE_STAT
ENDSTAT("GetNewMessageId")
#endif
return ++id;
CATCH("GetNewMessageId")
}

Подскажите мне пожалуйста что хочет сказать g++ выдавая следующую ошибку,-

db.cpp:139:54: pasting ""DBManagerObject::GetNewMessageId"" and "" execution time"" does not give a valid preprocessing token

Я так понимаю вся проблема в макросе:
define ENDSTAT(X) {unsigned int commontime=::clock()-beginstattime;PowerLog(ARGV_PATH_CGI+"performance.log",X##" execution time",commontime,10,true);}
(где PowerLog просто созданный мною класс, но это неважно)

Заранее огромное спасибо за любую помощь
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог