Проблема: Мне нужно обновить мой проект с OSX10.5 -32 бит до OSX 10.11 - 64 бит. Во время обновления я получил ошибки (неявное декалирование функции «» недействительно на C99) для многих функций, которые устарели в OS X 10.11 SDK для 64-битного режима. Немногие из этих функций:Альтернатива CopyCStringToPascal() для 64-битного режима при построении с использованием osx 10.11 sdk
CopyCStringToPascal()
CopyPascalStringToPascal()
FSOpenResFile()
FSMakeFSSpec()
GetDateTime()
SecondsToDate()
BlockMove()
... и подобные функции.
Эти функции приходят из OS SDK и последние SDK поставили
#if !__LP64__
..
.
..
#endif
охранников вокруг своих заявлений в их заголовочном файле.
Один из способов - написать оболочку, которая вызывает новые функции в режиме 64 бит и старую функцию в 32-битном режиме. Мне было интересно, есть ли еще один короткий (и легкий) способ перейти отсюда.
Спасибо.
Благодарим за ответ, Брендан (Это мой первый вопрос о стековом потоке). Да, я могу скомпилировать приложение против 10.11 SDK в 32-битном режиме. и поскольку мы сделали 64-битную версию нашим клиентам, нам нужно это сделать. Я думаю, что Apple не должна полностью удалять старый API для 64 бит. Для соответствия этим новым форматам API потребуется множество изменений. Вздох! –
Да, недостаток 64-битного углерода был большим шоком и болью для компаний с большими приложениями Carbon. Microsoft выпустила 64-битную версию Office для Mac несколько месяцев назад, и потребовалось Adobe years для переноса всех своих приложений на Cocoa/64-bit. –