На Mac, где определены FSRead, FSWrite, SetFPos и ​​др., И я должен даже использовать их? - PullRequest
2 голосов
/ 29 июня 2011

Я опытный программист Linux, знакомый с POSIX, stdio.h и т. Д., Но совершенно новый для программирования на Mac. На этой неделе я пытаюсь получить кусок исходного кода, написанный кем-то еще несколько лет назад, для работы на 64-битном Snow Leopard. Это плагин Photoshop для CS3, который теперь предназначен для работы с CS5. (Не спрашивайте меня о CS4.) Этот плагин построен из командной строки с помощью рукописного make-файла с использованием gcc.

Основным препятствием на сегодняшний день является компилятор, жалующийся на несколько необъявленных функций: FSRead, FSWrite, SetFPos, GetFPos и ​​другие, связанные с файлами. Я почти уверен, что у меня есть правильные пути, варианты и т. Д.

После двух дней поиска заголовков, поиска в Google и попыток дешевого хака я застрял. Где эти функции определены? Это стандартные функции библиотеки Mac OS X или функции Photoshop SDK? Некоторые результаты Google показывают, что эти функции устарели, «устарели», но я думаю, что к настоящему времени их уже нет. Если это так, что я должен использовать вместо этого?

1 Ответ

4 голосов
/ 29 июня 2011

После двух дней поиска заголовков, поиска в Google и попыток дешевого хака я застрял. Где эти функции определены? Это стандартные функции библиотеки Mac OS X или функции Photoshop SDK?

Это старые API-интерфейсы Carbon. Вы можете использовать платформу Carbon, однако Carbon не переносится на 64-битные системы. Поскольку Photoshop 64-битный, это просто не будет работать.

Я не знаком с тем, как обрабатываются плагины Photoshop, но если вы ищете прямую замену, вы бы посмотрели на Core Foundation , C API. В действительности вы также можете использовать API POSIX. Если Photoshop использует Cocoa и Objective-C, вы можете использовать API-интерфейсы семейства Foundation и AppKit.

...