Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2012, 20:21   #1
LynXzp
Пользователь
 
Аватар для LynXzp
 
Регистрация: 04.10.2012
Сообщений: 95
По умолчанию Cтранное объявление [минимальный приоритет темы]

// Была проблема, на одном из этапов ее решения попался такой интересный код.
Код:
#ifndef SQLITE_API
# define SQLITE_API
#endif

SQLITE_API int sqlite3_open(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);
Из одноименной библиотеки.
Если код вставить просто в проект компилятор Borland ругается на неправильное объявление и я с ним согласен, учитывая что это С библиотека (заявлено С и расширение .с) и в стандартах С89/99 на сколько я знаю такого нет.
Как это вообще работает? Где про это можно почитать? Спасибо.
Пишу на чистом С, плюсы спилил.

Последний раз редактировалось LynXzp; 04.10.2012 в 20:29.
LynXzp вне форума Ответить с цитированием
Старый 07.10.2012, 15:36   #2
LynXzp
Пользователь
 
Аватар для LynXzp
 
Регистрация: 04.10.2012
Сообщений: 95
По умолчанию

Опять такое-же чудо. Опять не могу собрать (предыдущее уже собрал).
Код:
#define PNGAPI __stdcall
или
#define PNGAPI _stdcall
....
int PNGAPI png_sig_cmp(....)
{....
От любители поизвращаться, ладно бы оно работало, я б туда не лез, а так приходится нырять...

P.S.: Спойлер:
Цитата:
Еще мне нравится мануал:
Если что скопируйте scripts/pnglibconf.h.prebuilt в pnglibconf.h это просто означает что ваша система не знает такой извращенной конфигурации, а работает только по стандартному.
// Кстати gcc для С++ уже поддерживает объявление функций внутри других функций. А потом получаем подобный код, от которого другие программисты в рез-те мануальной терапии становятся лысыми
Пишу на чистом С, плюсы спилил.
LynXzp вне форума Ответить с цитированием
Старый 07.10.2012, 16:22   #3
LynXzp
Пользователь
 
Аватар для LynXzp
 
Регистрация: 04.10.2012
Сообщений: 95
По умолчанию

(первая строка)
Код:
extern "C" {
#pragma option push -vi

#undef GetDiskFreeSpaceEx
inline BOOL WINAPI
GetDiskFreeSpaceEx(LPCTSTR lpDirectoryName,
                   PULARGE_INTEGER lpFreeBytesAvailableToCaller,
                   PULARGE_INTEGER lpTotalNumberOfBytes,
                   PULARGE_INTEGER lpTotalNumberOfFreeBytes)
{
  return _MAP_WINNAME(GetDiskFreeSpaceEx)(lpDirectoryName,
                                          lpFreeBytesAvailableToCaller,
                                          lpTotalNumberOfBytes,
                                          lpTotalNumberOfFreeBytes);
}

#pragma option pop // -vi
} // extern "C"
Пишу на чистом С, плюсы спилил.
LynXzp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
приоритет в ЛВС Mortalisrain Помощь студентам 7 27.05.2010 09:01
А вы знаете, что пользователи могут в течении часа после создания темы редактировать заголовок темы? Alar О форуме и сайтах клуба 4 27.04.2010 15:20
Приоритет функций Utkin Общие вопросы по программированию, компьютерный форум 27 09.12.2009 10:40
Приоритет макроса ru3000 Microsoft Office Excel 4 02.09.2009 04:45
Приоритет Михаил Юрьевич Win Api 5 15.07.2008 23:23