OS X ABI динамическая ссылка загрузчика
Большинство приложений Mac должно загрузить и пользоваться динамическими совместно используемыми библиотеками или пакетами во время выполнения. Динамический загрузчик, dyld
, совместно используемая библиотека что использование программ для получения доступа к другим совместно используемым библиотекам. Динамический загрузчик определяет местоположение Мужественных файлов на диске и отображает их в пространство памяти текущей программы.
Правильно написанные программы не загружают совместно использованные библиотеки, пока они не необходимы. Это минимизирует время запуска и объем потребляемой памяти приложения. Это может также улучшить общую производительность системы посредством сокращенной разбивки на страницы.
Этот документ описывает низкоуровневые функции двоичного интерфейса приложения (ABI) Mac, который можно использовать для загрузки, соединить и разгрузить Мужественные файлы во время выполнения.
Необходимо считать этот документ при разработке приложений, пользующихся динамическими совместно используемыми библиотеками или библиотеками, пользующимися другими библиотеками.
Эти документы предоставляют информацию о загрузке во время выполнения кода:
Мужественные Темы Программирования описывают загружающие код понятия во время выполнения и способы правильно упаковать совместно использованные библиотеки в имеющие версию платформы.
Динамично Загружающийся Код описывает высокоуровневые методы для загрузки кода во время выполнения.
Это рекомендуемые функции для использования для взаимодействия с динамическим загрузчиком. Эти функции работают в OS X v10.3 и v10.4. Однако в OS X v10.4 они более эффективны, чем другие загружающие изображение функции. Эти функции объявляются в /usr/include/dlfcn.h
.
-
Находит изображение и самый близкий символ, соответствующий адресу. Доступный только в динамично соединенных программах.
Объявление
Objective C
int dladdr( const void* addr, Dl_info * info);
Параметры
addr
На вводе, адресе в адресном пространстве программы.
info
Хранение для a
Dl_info
объект. По возврату найдена символьная информация.Возвращаемое значение
Когда изображение, содержащее адрес, указанный в
addr
не может быть найден, эта функция возвраты0
. Иначе, результатом является значение кроме0
.Обсуждение
Это - объявление для
Dl_info
структура:typedef struct dl_info {
const char* dli_fname;
void* dli_fbase;
const char* dli_sname;
void* dli_saddr;
} Dl_info;
Описания для полей в
Dl_info
:dli_fname
: Путь изображения, содержащего адрес вaddr
.dli_fbase
: Базовый адрес (mach_header
) в котором изображение отображается в адресное пространство программы.dli_sname
: Имя самого близкого символа во время выполнения.dli_saddr
: Значение символа, указанногоdli_sname
.
Если изображение, содержащее
addr
найден, но никакой близкий символ не найден,dli_sname
иdli_saddr
поля вDl_info
объект установлен вNULL
. Близкий символ является символом в изображении, адрес которого равен или ниже, чемaddr
.Доступность
Доступный в OS X v10.3 и позже.
-
Закрывает динамическую библиотеку или пакет.
Объявление
Objective C
int dlclose( void* handle);
Параметры
handle
Дескриптор, полученный через вызов к
dlopen
.Возвращаемое значение
Эта функция возвраты
0
когда успешный и значение кроме0
когда неуспешный.Обсуждение
Эта функция уменьшает подсчет ссылок изображения, на которое ссылаются
handle
. Когда подсчет ссылок дляhandle
становится0
, подпрограммы завершения в изображении вызывают, и изображение удалено из адресного пространства текущего процесса. После той точки,handle
представляется недопустимым.Если эта функция неуспешна, она устанавливает состояние ошибки, которое может быть запрошено с
dlerror
.Доступность
Доступный в OS X v10.3 и позже.
-
Предоставляет диагностическую информацию, соответствующую проблемам с вызовами к
dlopen
,dlsym
, иdlclose
в том же потоке.Объявление
Objective C
const char* dlerror( void);
Возвращаемое значение
Когда существует проблема сообщить, эта функция возвращает указатель на завершенную нулем строку, описывающую проблему. Иначе, эта функция возвраты
NULL
.Обсуждение
Каждый вызов к
dlerror
сбрасывает его диагностический буфер. Если программа должна вести учет прошлых сообщений об ошибках, она должна сохранить их сама. Последующие вызовы кdlerror
в том же потоке без вызовов кdlopen
,dlsym
, илиdlclose
, возвратитьсяNULL
.Доступность
Доступный в OS X v10.3 и позже.
-
Загрузки и ссылки динамическая библиотека или пакет.
Объявление
Objective C
void* dlopen( const char* path, int mode);
Параметры
path
Путь к изображению для открытия.
mode
Когда внешние символы загруженного изображения связываются с их определениями в зависимых библиотеках (ленивый или во время загрузки) и видимость экспортируемых символов изображения (глобальная переменная или локальные), указывает. Значение этого параметра составлено осуществлением операции ИЛИ одно обязательное значение поведения с одним значением спецификации видимости.
Следующие значения указывают обязательное поведение:
RTLD_LAZY
(значение по умолчанию): Каждая внешняя ссылка символа связывается в первый раз, когда она используется.RTLD_NOW
: Все внешние ссылки символа сразу связываются.
Следующие значения указывают внешнюю видимость символа:
RTLD_GLOBAL
(значение по умолчанию): экспортируемые символы загруженного изображения доступны любым изображениям, использующим плоское пространство имен или для вызовов кdlsym
при использовании специального дескриптора (см.dlsym
для подробных данных).RTLD_LOCAL
: Экспортируемые символы загруженного изображения обычно скрыты. Они доступны толькоdlsym
вызовы, использующие дескриптор, возвращенный этой функцией.
Обсуждение
Эта функция исследует Мужественный файл, указанный
path
. Если изображение совместимо с текущим процессом и не было уже загружено в процесс, изображение загружается и соединяется. Если изображение содержит функции инициализатора, они выполняются перед этой функцией возвраты.Последующие вызовы к
dlopen
для загрузки того же изображения возвращают тот же дескриптор, но внутренняя ссылка значит дескриптор, постепенно увеличивается. Поэтому всеdlopen
вызовы должны быть сбалансированы сdlclose
вызовы.Для эффективности,
RTLD_LAZY
обязательный режим предпочтенRTLD_NOW
. Однако использованиеRTLD_NOW
гарантирует, что любые неопределенные символы обнаружены во время вызова кdlopen
.Динамический загрузчик смотрит по путям, указанным рядом переменных окружения, и в текущем каталоге процесса, когда это ищет библиотеку. Эти пути вызывают динамическими путями поиска загрузчика. Переменные окружения
LD_LIBRARY_PATH
,DYLD_LIBRARY_PATH
, иDYLD_FALLBACK_LIBRARY_PATH
. Значение по умолчаниюDYLD_FALLBACK_LIBRARY_PATH
(используемый, когда эта переменная не установлена),$HOME/lib;/usr/local/lib;/usr/lib
.Порядок, в котором ищутся пути поиска, зависит от ли
path
имя файла (оно не содержит наклонную черту), или путь (оно содержит по крайней мере одну наклонную черту).Когда
path
имя файла, динамический загрузчик ищет библиотеку в путях поиска в следующем порядке:$LD_LIBRARY_PATH
$DYLD_LIBRARY_PATH
Рабочий каталог процесса
$DYLD_FALLBACK_LIBRARY_PATH
Когда
path
путь, динамический загрузчик ищет библиотеку в путях поиска в следующем порядке:$DYLD_LIBRARY_PATH
Данный путь
$DYLD_FALLBACK_LIBRARY_PATH
использование имени файла
Если эта функция не может открыть изображение, она устанавливает состояние ошибки, с которым можно получить доступ
dlerror
.Доступность
Доступный в OS X v10.3 и позже.
-
Возвращает адрес символа.
Объявление
Objective C
void* dlsym( void* handle, const char* symbol);
Параметры
handle
symbol
Завершенная нулем символьная строка, содержащая имя C разыскиваемого символа.
Возвращаемое значение
Когда успешный, эта функция возвращает адрес
symbol
. Иначе, это возвращает нулевого указателя.Обсуждение
Значение дескриптора указывает то, что отображает эту функцию поиски для определения местоположения символа, указанного
symbol
параметр. Таблица 1 описывает возможные значения дляhandle
параметр.Таблица 1Values для параметра дескриптора Значение дескриптора
Поисковый объем
dlopen
дескрипторИзображение связалось с
dlopen
дескриптор.RTLD_DEFAULT
Каждая зависимая библиотека или
RTLD_GLOBAL
– открытая библиотека в текущем процессе, в порядке они были загружены.RTLD_NEXT
Зависимые библиотеки, загруженные после того, вызывающего эту функцию. Библиотеки открылись
dlopen
не ищутся.В отличие от этого в
NS...
функции,symbol
параметр не требует, чтобы начальный символ подчеркивания был частью имени символа.Если эта функция неуспешна, она устанавливает состояние ошибки, которое может быть запрошено с
dlerror
.Доступность
Доступный в OS X v10.3 и позже.
Эти функции для загрузки Мужественных файлов пакета. Они объявляются в /usr/include/mach-o/dyld.h
. Использованию этих функций обескураживают. Необходимо использовать более эффективные функции, описанные в Динамических Функциях Совместимости Загрузчика.
-
Создает ссылку изображения для данного Мужественного файла.
Объявление
Objective C
NSObjectFileImageReturnCode NSCreateObjectFileImageFromFile( const char* pathName, NSObjectFileImage * objectFileImage);
Параметры
pathName
Струна до. Передайте путь Мужественному исполняемому файлу. Вы, должно быть, ранее создали этот файл с
-bundle
опция компоновщика; иначе, эта функция возвращает ошибку.objectFileImage
На выводе, указателе на
NSObjectFileImage
непрозрачная структура данных.Возвращаемое значение
Посмотрите мужественные коды возврата создания изображений.
Обсуждение
Учитывая путь к Мужественной исполнимой программе, эта функция создает и возвращает a
NSObjectFileImage
ссылка. Текущая реализация работает только с пакетами, таким образом, необходимо создать Мужественный исполняемый файл с помощью-bundle
опция компоновщика.Для мобильности и эффективности, рассмотреть использование
dlopen
. -
Создает ссылку изображения для Мужественного файла в настоящее время в памяти.
Объявление
Objective C
NSObjectFileImageReturnCode NSCreateObjectFileImageFromMemory( const void* address, size_t size, NSObjectFileImage * objectFileImage);
Параметры
address
Указатель на блок памяти, содержащий Мужественное содержание файла.
size
Размер блока памяти, в байтах.
objectFileImage
На выводе, указателе на
NSObjectFileImage
непрозрачная структура данных.Возвращаемое значение
Посмотрите мужественные коды возврата создания изображений.
Обсуждение
Данный подсказка к Мужественному файлу в памяти, эта функция создает и возвращается
NSObjectFileImage
ссылка. Текущая реализация работает только с пакетами, таким образом, необходимо создать Мужественный исполняемый файл с помощью-bundle
опция компоновщика.Блок памяти это
address
точки к, должен быть выделен сvm_allocate
(/usr/include/mach/vm_map.h
).См. также
NSDestroyObjectFileImage
.Доступность
Доступный в OS X v10.3 и позже.
-
Выпускает данное изображение объектного файла.
Объявление
Objective C
bool NSDestroyObjectFileImage( NSObjectFileImage objectFileImage);
Параметры
objectFileImage
Ссылка на объектный файл отображает для уничтожения.
Возвращаемое значение
TRUE
если изображение было успешно уничтожено,FALSE
если нет.Обсуждение
Когда эта функция вызвана, динамические вызовы загрузчика
vm_deallocate
(/usr/include/mach/vm_map.h
) на памяти, на которую указываютobjectFileImage
параметр.Для мобильности и эффективности, рассмотреть использование
dlopen
в сочетании сdlclose
.См. также
NSCreateObjectFileImageFromMemory
. -
Соединяет данное изображение объектного файла как модуль в текущую программу.
Объявление
Objective C
NSModule NSLinkModule( NSObjectFileImage objectFileImage, const char* moduleName, uint32_t options);
Параметры
objectFileImage
Ссылка изображения объектного файла. Передайте создаваемое использование ссылки
NSCreateObjectFileImageFromFile
функция.moduleName
Струна до. Передайте абсолютный путь изображению объектного файла. GDB использует этот путь для получения отладочной информации от библиотеки.
options
unsigned long
значение. Передайте один или больше следующих битовых масок илиNSLINKMODULE_OPTION_NONE
не указать опции:NSLINKMODULE_OPTION_BINDNOW
Динамический компоновщик сразу связывает все неопределенные ссылки, вместо того, чтобы ожидать, пока фактически не используются ссылки. Все зависимые библиотеки также связываются.
NSLINKMODULE_OPTION_PRIVATE
Не добавляйте глобальные символы от модуля до глобального списка символа. Вместо этого необходимо использовать
NSLookupSymbolInModule
функция для получения символов из этого модуля.NSLINKMODULE_OPTION_RETURN_ON_ERROR
Если ошибка происходит при привязке модуля возвратиться
NULL
. Можно тогда использовать функциюNSLinkEditError
получать информацию об ошибке.Без этой опции, это вызовы функции
linkEdit
обработчик ошибок Вы установили использованиеNSInstallLinkEditErrorHandlers
функция. Если Вы не установили обработчик ошибок редактирования ссылки, эта функция распечатывает сообщение к потоку стандартной погрешности и заставляет прерывание точки останова заканчивать программу.Возвращаемое значение
Ссылка на соединенный модуль.
Обсуждение
Когда Вы вызываете эту функцию, все библиотеки, на которые ссылается данный модуль, добавляются к списку поиска библиотеки. Если Вы не передаете
NSLINKMODULE_OPTION_PRIVATE
,NSLinkModule
добавляют все глобальные символы в модуле к глобальному списку символа.Для мобильности и эффективности, рассмотреть использование
dlopen
.Посмотрите Создающие Мужественные Файлы в Мужественных Темах Программирования для получения дополнительной информации о модулях.
-
Учитывая имя символа, возвращает соответствующий символ из глобальной таблицы символов.
Объявление
Objective C
NSSymbol NSLookupAndBindSymbol( const char* symbolName);
Параметры
symbolName
Указатель на струну до. Передайте имя символа, который Вы хотите найти.
Возвращаемое значение
Ссылка символа для требуемого символа.
Обсуждение
Осуждаемый в OS X v10.4. Использовать
NSLookupSymbolInImage
вместо этого.На ошибке при установке обработчика ошибок редактирования ссылки его вызывают; иначе, эта функция пишет сообщение об ошибке в дескриптор файла 2 (обычно поток стандартной погрешности,
stderr
) и заставляет прерывание точки останова заканчивать программу.Если Вы знаете имя библиотеки, в которой, вероятно, будет расположен символ, можно использовать
NSLookupAndBindSymbolWithHint
функция, которая может быть быстрее, чем эта функция. Необходимо использоватьNSLookupSymbolInImage
функция для выполнения двухуровневого поиска пространства имен. -
Учитывая имя символа, возвращает соответствующий символ из глобальной таблицы символов.
Объявление
Objective C
NSSymbol NSLookupAndBindSymbolWithHint( const char* symbolName, const char* libraryNameHint);
Параметры
symbolName
Указатель на струну до. Передайте имя символа, который Вы хотите найти.
libraryNameHint
Указатель на струну до. Передайте любую часть имени библиотеки, в которой, вероятно, будет найден символ.
Возвращаемое значение
Ссылка символа для требуемого символа.
Обсуждение
На ошибке при установке обработчика ошибок редактирования ссылки его вызывают; иначе, эта функция пишет сообщение об ошибке в дескриптор файла 2 (обычно поток стандартной погрешности,
stderr
), и причины прерывание точки останова для окончания программы.Даже если пространство имен символа текущей программы имеет два уровня, Обратите внимание на то, что эта функция выполняет плоский поиск. Необходимо использовать
NSLookupSymbolInImage
функция для выполнения двухуровневого поиска пространства имен.Осуждаемый в OS X v10.4. Использовать
NSLookupSymbolInImage
вместо этого. -
Учитывая ссылку на модули, возвращает ссылку на символ с именем.
Объявление
Objective C
NSSymbol NSLookupSymbolInModule( NSModule module, const char* symbolName);
Параметры
module
Ссылка на модули. Передайте модуль, содержащий символ.
symbolname
Указатель на струну до. Передайте имя символа для поиска.
Возвращаемое значение
Ссылка символа или
NULL
если не может быть найден символ.Обсуждение
Для мобильности и эффективности, рассмотреть использование
dlsym
. -
Возвращает имя данного модуля.
Объявление
Objective C
const char* NSNameOfModule( NSModule module);
Параметры
module
Ссылка на модули. Передайте модуль, имя которого Вы хотите получить.
Возвращаемое значение
Струна до, содержащая имя модуля. Строка принадлежит динамическому компоновщику, и Вы не должны освобождать ее.
Обсуждение
См. “Создающие Мужественные Файлы” в OS X Формат файла ABI Reference.for больше информации о модулях.
-
Возвраты
TRUE
если данный символ определяется в текущей программе.Объявление
Objective C
enum bool NSIsSymbolNameDefined ( const char* symbolName );
Параметры
symbolName
Струна до. Передайте имя символа, состояние определения которого Вы хотите обнаружить.
Возвращаемое значение
TRUE
когда символ определяется любым изображением, загруженным в текущем процессе;FALSE
когда не может быть найден символ.Обсуждение
Осуждаемый в OS X v10.4. Использовать
NSLookupSymbolInImage
вместо этого.Если Вы знаете имя библиотеки, в которой, вероятно, будет расположен символ, можно использовать
NSIsSymbolNameDefinedWithHint
функция, которая может быть быстрее, чем эта функция. Необходимо использовать
NSIsSymbolNameDefinedInImage
функция для выполнения двухуровневого поиска пространства имен. -
Возвраты
TRUE
если данное изображение содержит именованный символ.Объявление
Objective C
enum bool NSIsSymbolNameDefinedInImage ( const struct mach_header * image , const char* symbolName );
Параметры
image
Указатель на a
mach_header
(Мужественная Архитектура среды выполнения) структура данных.symbolName
Струна до. Передайте имя символа.
Возвращаемое значение
TRUE
если изображение содержит символ с именем,false
иначе.Обсуждение
Осуждаемый в OS X v10.4. Использовать
NSLookupSymbolInImage
вместо этого. -
Возвраты
TRUE
если данный символ определяется в текущей программе с подсказкой, указывающей имя совместно используемой библиотеки, вероятно, для содержания символа.Объявление
Objective C
enum bool NSIsSymbolNameDefinedWithHint ( const char* symbolName , const char* libraryNameHint );
Параметры
symbolName
Струна до. Передайте имя символа, состояние определения которого Вы хотите обнаружить.
libraryNameHint
Струна до. Передайте любую часть имени совместно используемой библиотеки, которая, вероятно, будет содержать символ. Это ищет только соответствующую первую совместно используемую библиотеку.
Возвращаемое значение
TRUE
когда символ определяется любым изображением, загруженным в текущем процессе;FALSE
когда не может быть найден символ.Обсуждение
Осуждаемый в OS X v10.4. Использовать
NSLookupSymbolInImage
вместо этого.Имя библиотеки, которое Вы передаете этой функции, позволяет ей определять позицию в списке загруженных символов, с которых можно запустить поиск. В значительно более быстрое время поиска поиска это может закончиться, чем возможное использование
NSIsSymbolNameDefined
.Даже если пространство имен символа текущей программы имеет два уровня, Обратите внимание на то, что эта функция выполняет плоский поиск. Необходимо использовать
NSIsSymbolNameDefinedInImage
функция для выполнения двухуровневого поиска пространства имен. -
Возвращает ссылку на модуль, содержащий данный символ.
Объявление
Objective C
NSModule NSModuleForSymbol( NSSymbol symbol);
Параметры
symbol
Ссылка символа. Передайте символ, модуль которого Вы хотите получить.
Возвращаемое значение
Ссылка на модуль, содержащий данный символ.
-
Расцепляет данный модуль из текущей программы.
Объявление
Objective C
bool NSUnLinkModule( NSModule module, uint32_t options);
Параметры
module
Ссылка на модули. Передайте ссылку на модуль, что Вы ранее соединили использование
NSLinkModule
функция.options
unsigned long
значение. Можно указать один или больше следующих битовых масок:NSUNLINKMODULE_OPTION_NONE
Расцепите модуль и освободите память, которую он занимает.
NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED
Расцепите модуль, но не освобождайте память, которую он занимает. Адреса, находящиеся в модуле, остаются допустимыми. Вы не можете не отобразить эту память позже; когда процесс выходит или завершается, это выпущено.
NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES
Расцепите модуль и сбросьте ленивые ссылки от других модулей, связывающихся с модулем. Можно тогда соединить новый модуль, реализующий те же символы, и ссылки вызова функции связываются с новым модулем, когда получено доступ.
Обсуждение
Для мобильности и эффективности, рассмотреть использование
dlopen
в проводимости сdlclose
.Посмотрите Создающие Мужественные Файлы в Мужественных Темах Программирования для получения дополнительной информации о модулях.
Специальные замечания
В OS X v10.2 и позже,
NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES
может использоваться только с PowerPC исполнимые программы CPU.
Функции, описанные в этом разделе, объявляются в /usr/include/mach-o/dyld.h
. Использованию этих функций обескураживают. Необходимо использовать более эффективные функции, описанные в Динамических Функциях Совместимости Загрузчика.
-
Добавляет указанное Мужественное изображение к в настоящее время рабочему процессу.
Объявление
Objective C
const struct mach_header* NSAddImage( const char* image_name, uint32_t options);
Параметры
image_name
Указатель на струну до. Передайте путь совместно используемой библиотеке по диску. Для лучшей производительности укажите полный путь совместно используемой библиотеки — не символьная ссылка.
options
Немного маски. Передайте один или больше следующих опций или
NSADDIMAGE_OPTION_NONE
не указать опции:NSADDIMAGE_OPTION_RETURN_ON_ERROR
Если ошибка происходит, и Вы указали эту опцию, эта функция возвраты
NULL
. Можно тогда использовать функциюNSLinkEditError
получать информацию об ошибке.Если ошибка происходит, и Вы не указали эту опцию, это вызовы функции
linkEdit
обработчик ошибок Вы установили использованиеNSInstallLinkEditErrorHandlers
функция. Если Вы не установили обработчик ошибок редактирования ссылки, эта функция распечатывает ошибку кstderr
и заставляет прерывание точки останова заканчивать программу.NSADDIMAGE_OPTION_WITH_SEARCHING
При использовании этой опции,
image_name
переданный для библиотеки и всех ее зависимых затронут различнымdyld
переменные окружения, как будто эта библиотека была соединена в программу.NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED
При использовании этой опции, эта функция возвраты
NULL
если совместно используемая библиотека не была загружена до вызова в эту функцию.Возвращаемое значение
Указатель на a
mach_header
(“OS X ABI Мужественная Ссылка Формата файла”) структура данных. Это - указатель на запуск загруженного изображения.Обсуждение
Эта функция загружает совместно используемую библиотеку, указанную
image_name
в текущий процесс, возвращая указатель наmach_header
структура данных загруженного изображения. Любые библиотеки, от которых зависит указанная библиотека, также загружаются.linkEdit
обработчик ошибок документируется вNSModule(3)
страница справочника.Для мобильности и эффективности, рассмотреть использование
dlopen
.Доступность
Доступный в OS X v10.1 и позже.
-
Добавляет динамическая совместно используемая библиотека к поисковому списку.
Объявление
Objective C
extern bool NSAddLibrary( const char* pathName);
Параметры
pathName
Струна до. Передайте имя динамической совместно используемой библиотеки.
Возвращаемое значение
TRUE
если библиотека была успешно добавлена к поисковому списку,FALSE
иначе.Обсуждение
Осуждаемый в OS X v10.4. Использовать
NSAddImage
вместо этого.Специальные замечания
Вместо того, чтобы использовать эту функцию, необходимо использовать
NSAddImage
сNSADDIMAGE_OPTION_NONE
опция. -
Добавляет динамическая совместно используемая библиотека к поисковому списку — использование различного
dyld
переменные окружения — как будто библиотека была соединена в программу.Объявление
Objective C
extern bool NSAddLibraryWithSearching( const char* pathName);
Параметры
pathName
Струна до. Передайте имя динамической совместно используемой библиотеки.
Возвращаемое значение
TRUE
если библиотека была успешно добавлена к поисковому списку,FALSE
иначе.Обсуждение
Осуждаемый в OS X v10.4. Использовать
NSAddImage
вместо этого.Специальные замечания
Вместо того, чтобы использовать эту функцию, необходимо использовать
NSAddImage
сNSADDIMAGE_OPTION_WITH_SEARCHING
опция. -
Возвращает адрес в адресном пространстве программы данных, представленных данным символом. Данные могут быть переменной, константой, или первой инструкцией функции.
Объявление
Objective C
void* NSAddressOfSymbol( NSSymbol symbol);
Параметры
symbol
Ссылка символа. Передайте символ, адрес которого Вы хотите получить.
Возвращаемое значение
Указатель на данные представлен данным символом.
Обсуждение
Для мобильности и эффективности, рассмотреть использование
dlsym
. -
Возвращает имя библиотеки, содержащей данный модуль.
Объявление
Objective C
const char* NSLibraryNameOfModule( NSModule module);
Параметры
module
Ссылка на модули. Передайте модуль, имя библиотеки которого Вы хотите получить.
Возвращаемое значение
Струна до, содержащая имя библиотеки, содержащей модуль. Строка принадлежит динамическому компоновщику, и Вы не должны освобождать ее.
Обсуждение
Посмотрите Создающие Мужественные Файлы в Мужественных Темах Программирования для получения дополнительной информации о модулях.
-
Возвращает ссылку на указанный символ от указанного изображения.
Объявление
Objective C
NSSymbol NSLookupSymbolInImage( const struct mach_header * image, const char* symbolName uint32_t options);
Параметры
image
Указатель на a
mach_header
структура данных. Передайте указатель на запуск изображения, содержащего символ. Можно получить этот указатель от совместно используемого использования имени библиотекиNSAddImage
.Если процесс не имеет двухуровневого пространства имен,
NSLookupSymbolInImage
игнорирует этот параметр и ищет символ в глобальной таблице символов.symbolName
Указатель на струну до. Передайте имя символа, который Вы хотите найти.
options
Немного маски. Передайте любую из следующих опций:
NSLOOKUPSYMBOLINIMAGE_OPTION_BIND
Свяжите неленивые символы модуля в определяющем изображении
symbolName
и позвольте всем ленивым символам в модуле быть связанными на первом вызове. Необходимо передать эту опцию, когда Вы ожидаете, что модуль свяжет без ошибок (например, библиотека, предоставленная системой). Если, позже, Вы вызываете ленивый символ, и ленивому символу не удается связать, время выполнения вызывает обработчик ошибок редактирования ссылки, Вы установили использованиеNSInstallLinkEditErrorHandlers
функция.Если нет никакого установленного обработчика ошибок редактирования ссылки, время выполнения распечатывает сообщение к потоку стандартной погрешности и заставляет прерывание точки останова заканчивать программу.
NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW
Свяжите все неленивые и ленивые символы модуля в изображении, определяющем имя символа, и свяжите символы в зависимых библиотеках по мере необходимости.
Передайте эту опцию для библиотеки, которая, как могли бы ожидать, не свяжет без ошибок, но это соединяется против только предоставленных систему библиотек, которые, как самостоятельно ожидают, свяжут без любых ошибок.
NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY
Свяжите все символы определяющего модуля
symbolName
и все зависимые символы всех необходимых библиотек.Поскольку может требоваться много времени, чтобы полностью связать изображение, необходимо передать эту опцию только для библиотек, которые не могут связать другие символы, один раз выполняемые, такие как код, реализующий сигнальные обработчики.
NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR
Возвратиться
NULL
если не может быть связан символ.Возвращаемое значение
Ссылка символа для требуемого символа, или
NULL
если символ не может быть найден, и Вы передали опциюNSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR
.Обсуждение
На ошибке при установке обработчика ошибок редактирования ссылки его вызывают; иначе, эта функция пишет сообщение об ошибке в дескриптор файла 2 (обычно поток стандартной погрешности,
stderr
) и заставляет прерывание точки останова заканчивать программу.Для мобильности и эффективности, рассмотреть использование
dlsym
.Доступность
Доступный в OS X v10.1 и позже.
-
Возвращает имя данного символа.
Объявление
Objective C
const char* NSNameOfSymbol( NSSymbol symbol);
Параметры
symbol
Ссылка символа. Передайте символ, имя которого Вы хотите получить.
Возвращаемое значение
Указатель на струну до, содержащую имя ссылки. Динамическому компоновщику принадлежит эта строка, и Вы не должны освобождать ее.
Функции, описанные в этом разделе, объявляются в /usr/include/mach-o/getsect.h
.
-
Возвращает структуру данных, представляющую раздел Мужественного файла, содержащего основную исполняемую программу текущего процесса.
Объявление
Objective C
const struct section* getsectbyname( const char* segname, const char* sectname);
Параметры
segname
Указатель на струну до. Передайте имя сегмента, в котором находится раздел.
sectname
Указатель на струну до. Передайте имя раздела.
Возвращаемое значение
Указатель на a
section
(Мужественная Ссылка Формата файла) структура данных. -
Возвращает структуру данных, представляющую раздел указанного 32-разрядного Мужественного файла.
Объявление
Objective C
const struct section* getsectbynamefromheader( const struct mach_header * mhp, const char* segname, const char* sectname);
Параметры
mhp
Указатель на a
mach_header
структура данных. Передайтеmach_header
из файла, содержащего данные раздела, Вы хотите получить.segname
Указатель на струну до. Передайте имя сегмента, в котором находится раздел.
sectname
Указатель на струну до. Передайте имя раздела.
Возвращаемое значение
Указатель на a
section
структура данных. -
Возвращает структуру данных, представляющую раздел указанного 64-разрядного Мужественного файла.
Объявление
Objective C
const struct section_64* getsectbynamefromheader( const struct mach_header_64 * mhp, const char* segname, const char* sectname);
Параметры
mhp
Указатель на a
mach_header_64
структура данных. Передайтеmach_header
из файла, содержащего данные раздела, Вы хотите получить.segname
Указатель на струну до. Передайте имя сегмента, в котором находится раздел.
sectname
Указатель на струну до. Передайте имя раздела.
Возвращаемое значение
Указатель на a
section_64
структура данных. -
Возвращает данные для раздела от Мужественного файла основной исполняемой программы текущего процесса.
Объявление
Objective C
char* getsectdata( const char* segname, const char* sectname, unsigned long* size);
Параметры
segname
Указатель на струну до. Передайте имя сегмента, в котором находится раздел.
sectname
Указатель на струну до. Передайте имя раздела.
size
Указатель на длинное целое. На выводе, содержит длину (в байтах) раздела.
Возвращаемое значение
Указатель на данные раздела.
-
Возвращает данные для раздела Мужественного файла, содержащего указанную платформу.
Объявление
Objective C
char* getsectdatafromFramework( const char* FrameworkName, const char* segname, const char* sectname, unsigned long* size);
Параметры
FrameworkName
Указатель на струну до. Передайте имя платформы, в которой находится раздел.
segname
Указатель на струну до. Передайте имя сегмента, в котором находится раздел.
sectname
Указатель на струну до. Передайте имя раздела.
size
Указатель на длинное целое. На выводе, содержит длину (в байтах) раздела.
Возвращаемое значение
Указатель на данные раздела. Если Мужественный файл является динамической совместно используемой библиотекой (
MH_DYLIB
), необходимо добавить, что понижение виртуальной памяти составляет этот адрес для получения истинного адреса данных. Посмотрите_dyld_get_image_vmaddr_slide
для получения дополнительной информации. -
Возвращает данные для раздела указанного 32-разрядного Мужественного файла.
Объявление
Objective C
char* getsectdatafromheader( const struct mach_header * mhp, const char* segname, const char* sectname, uint32_t* size);
Параметры
mhp
Указатель на a
mach_header
структура данных. Передайтеmach_header
из файла, содержащего данные раздела, Вы хотите получить.segname
Указатель на струну до. Передайте имя сегмента, в котором находится раздел.
sectname
Указатель на струну до. Передайте имя раздела.
size
Указатель на длинное целое. На выводе, содержит длину (в байтах) раздела.
Возвращаемое значение
Указатель на данные раздела. Если Мужественный файл является динамической совместно используемой библиотекой (
MH_DYLIB
), необходимо добавить, что понижение виртуальной памяти составляет этот адрес для получения истинного адреса данных. Посмотрите_dyld_get_image_vmaddr_slide
для получения дополнительной информации. -
Возвращает данные для раздела указанного 64-разрядного Мужественного файла.
Объявление
Objective C
char* getsectdatafromheader( const struct mach_header_64 * mhp, const char* segname, const char* sectname, uint64_t* size);
Параметры
mhp
Указатель на a
mach_header_64
структура данных. Передайтеmach_header
из файла, содержащего данные раздела, Вы хотите получить.segname
Указатель на струну до. Передайте имя сегмента, в котором находится раздел.
sectname
Указатель на струну до. Передайте имя раздела.
size
Указатель на длинное целое. На выводе, содержит длину (в байтах) раздела.
Возвращаемое значение
Указатель на данные раздела. Если Мужественный файл является динамической совместно используемой библиотекой (
MH_DYLIB
), необходимо добавить, что понижение виртуальной памяти составляет этот адрес для получения истинного адреса данных. Посмотрите_dyld_get_image_vmaddr_slide
для получения дополнительной информации. -
Возвращает структуру данных, представляющую сегмент Мужественного файла, содержащего основную исполняемую программу текущего процесса.
Объявление
Objective C
const struct segment_command* getsegbyname( const char* segname);
Параметры
segname
Указатель на струну до. Передайте имя сегмента.
Возвращаемое значение
Указатель на a
segment_command
(Мужественная Ссылка Формата файла) структура данных.
-
Находит изображение, содержащее указанный адрес, и полностью связывает все модули в нем.
Объявление
Objective C
bool _dyld_bind_fully_image_containing_address( const void* address);
Параметры
address
Указатель на адрес расположился где-нибудь в загруженном изображении.
Возвращаемое значение
Булево значение. Если
true
, адрес находится где-нибудь в загруженном изображении, и таким образом,_dyld_bind_fully_image_containing_address
опробованный для привязки того изображения. Еслиfalse
, адрес не находится в загруженном изображении, и таким образом,_dyld_bind_fully_image_containing_address
ничего не сделал.Обсуждение
Когда у Вас есть адрес функции, но не имя символа, можно использовать эту функцию для привязки ошибки, вручающей код как сигнальные обработчики. Это может связать больше символов, чем фактически необходимо.
Если изображение, содержащее адрес, является плоским изображением пространства имен, многократно определенные ошибки могут произойти, даже если действительно не используются символы. Об ошибках в привязке сообщают через нормальные механизмы сообщения об ошибке.
-
Связывает модуль, содержащий данный адрес Objective C.
Объявление
Objective C
void _dyld_bind_objc_module( const void* objc_module);
Параметры
objc_module
Указатель. Передайте любой адрес, находящийся в
__OBJC,__module
раздел загруженного Мужественного файла.Обсуждение
Эта функция используется библиотекой времени выполнения Objective C.
-
Получает адрес реализации a
dyld
библиотечная функция.Объявление
Objective C
int _dyld_func_lookup( const char* dyld_func_name, void** address);
Параметры
dyld_func_name
Указатель на струну до. Передайте имя a
dyld
библиотечная функция.address
Указатель на указатель. На выводе точки к адресу функции, если функция найдена, иначе значение, не определены.
Возвращаемое значение
Целочисленное значение. Ненулевой, если была найдена функция. Нуль, если не была найдена функция.
Обсуждение
Эта функция используется кодом библиотеки, реализующим
dyld
функции. -
Возвращает структуру данных для заголовка указанного изображения. Изображение указано индексом в список изображений, сохраняемых
dyld
для текущего процесса.Объявление
Objective C
const struct mach_header* _dyld_get_image_header( uint32_t image_index);
Параметры
image_index
Длинное целое. Передайте основанный на нуле индекс, указывающий позицию изображения в списке изображений, загруженных в адресное пространство текущего процесса.
Возвращаемое значение
Указатель на
mach_header
структура данных указанного изображения. Еслиimage_index
больше, чем число загруженных изображений, этот указатель является нулем. -
Получает имя изображения.
Объявление
Objective C
const char* _dyld_get_image_name( uint32_t image_index);
Параметры
image_index
Длинное целое. Передайте основанный на нуле индекс, указывающий позицию изображения в списке изображений, загруженных в адресное пространство текущего процесса.
Возвращаемое значение
Указатель на струну до. Если
image_index
больше, чем число загруженных изображений, указатель строки является нулем.Обсуждение
Возвращает имя изображения, расположенного в данном индексе в глобальный список изображений.
-
Возвращает сумму понижения адреса виртуальной памяти изображения.
Объявление
Objective C
intptr_t _dyld_get_image_vmaddr_slide( uint32_t image_index);
Параметры
image_index
Длинное целое. Передайте основанный на нуле индекс, указывающий позицию изображения в списке изображений, загруженных в адресное пространство текущего процесса.
Возвращаемое значение
Если
image_index
больше, чем или равен значению, возвращенному_dyld_image_count
, нуль. Иначе,vmaddr_slide
значение для указанного изображения.Обсуждение
Когда динамический компоновщик загружает изображение, изображение должно быть отображено в виртуальное адресное пространство процесса в незанятом адресе. Динамический компоновщик выполняет это путем добавления значения — суммы понижения виртуальной памяти — к базовому адресу изображения.
-
Получает размер и стартовое расположение модуля Objective C.
Объявление
Objective C
void _dyld_get_objc_module_sect_for_module( NSModule module, void** objc_module, size_t* size);
Параметры
module
Ссылка на модули от изображения.
objc_modulet
Указатель на указатель. На выводе, содержит указатель на запуск
__OBJC,__module
раздел для указанного модуля.size
Указатель на длинное целое. На выводе длинное целое содержит значение, указывающее размер выходного модуля.
Обсуждение
Эта функция используется библиотекой времени выполнения Objective C.
-
Возвращает число изображений это
dyld
отобразился в адресное пространство текущего процесса.Объявление
Objective C
uint32_t _dyld_image_count(void);
Возвращаемое значение
Длинное целое, содержащее число изображений это
dyld
отобразился в адресное пространство текущего процесса.Обсуждение
Эта функция предоставляет Вам количество числа изображений в списке изображений. Можно использовать это число для итерации изображений, загруженных в адресное пространство текущего процесса, с помощью функций такой как
_dyld_get_image_header
и_dyld_get_image_name
. -
Возвраты, является ли указанный адрес в каком-либо загруженном изображении.
Объявление
Objective C
bool _dyld_image_containing_address( const void* address);
Параметры
address
Длинное целое без знака. Передайте адрес, о котором Вы хотите получить состояние.
Возвращаемое значение
TRUE
если адрес расположен в изображении, загруженном динамическим компоновщиком,FALSE
иначе. -
Возвраты, смог ли динамический компоновщик запустить программу с предобязательной включенной оптимизацией.
Объявление
Objective C
bool _dyld_launched_prebound(void);
Возвращаемое значение
Булево значение.
TRUE
если программа была запущена успешно с помощью предсвязанного состояния;FALSE
если бы или программа не была предварительно связана или предварительная привязка, то не мог бы использоваться по некоторым причинам.Обсуждение
Если программа не была успешно запущена с предобязательной оптимизацией, компоновщик не предварительно связывал программу, адреса некоторых перекрытых изображений и таким образом, компоновщик не мог использовать предсвязанные адреса, или некоторая другая проблема произошла. В любом случае программа продолжает запускаться, но она работает медленнее, чем с предварительной привязкой включенного.
-
Находит, что данный символ называет, и связывает его в программу.
Объявление
Objective C
void _dyld_lookup_and_bind( const char* symbol_name, void ** address NSModule * module);
Параметры
symbol_name
Указатель на струну до. Укажите имя символа для привязки.
address
Указатель на указатель. На выводе, точках к адресу символа, указанного
symbol_name
. Этот параметр является дополнительным; передачаNULL
для этого указателя на вводе, если Вы не хотите получать эти данные.module
Указатель на указатель модуля. На выводе указатель модуля содержит модуль символа, указанного
symbol_name
. Этот параметр является дополнительным; указатьNULL
для этого указателя на вводе, если Вы не хотите получать эти данные.Обсуждение
Осуждаемый в OS X v10.4. Использовать
NSLookupSymbolInImage
вместо этого.Можно использовать
_dyld_lookup_and_bind
для нахождения данного имени символа в глобальном поиске перечисляют и связывают его (и все другие определенные символы в том же модуле) в программу.Если программа предварительно связывается, и Вы знаете имя библиотеки, содержащей символ, рассмотреть использование
_dyld_lookup_and_bind_with_hint
вместо этого. -
Находит модуль, содержащий указанный символ, и полностью связывает все ссылки символа в нем.
Объявление
Objective C
void _dyld_lookup_and_bind_fully( const char* symbol_name, void** address, NSModule * module);
Параметры
symbol_name
Указатель на струну до. Укажите имя символа для привязки.
address
Указатель на указатель. На выводе, точках к адресу указанного символа.
module
Указатель на указатель. На выводе указатель установлен в адрес модуля, в котором находится указанный символ.
Обсуждение
Можно использовать эту функцию для привязки модулей, содержащих сигнальные обработчики или другой код обработки ошибок, который не может быть инициализирован лениво.
Об ошибках в привязке сообщают через нормальные механизмы.
-
Получает и связывает модуль Objective C, содержащий указанный символ.
Объявление
Objective C
void _dyld_lookup_and_bind_objc( const char* symbol_name, void** address, NSModule * module);
Параметры
symbol_name
Указатель на струну до. Укажите имя символа для привязки, такой как
.objc_class_name_Foo
.address
Указатель на указатель. На выводе, точках к адресу символа, указанного
symbol_name
. Этот параметр является дополнительным; передачаNULL
для этого указателя на вводе, если Вы не хотите получать эти данные.module
Указатель на указатель модуля. На выводе указатель модуля содержит модуль символа, указанного
symbol_name
. Этот параметр является дополнительным; указатьNULL
для этого указателя на вводе, если Вы не хотите получать эти данные.Обсуждение
Эта подпрограмма используется библиотекой времени выполнения Objective C. Это выполняет ту же функцию как
_dyld_lookup_and_bind
если символ находится в связанном модуле, но, по причинам производительности, не обновляет указатели символа. Символ Objective C такой как.objc_class_name_Object
никогда не используется указателем символа, и обновление указателей символа является относительно дорогой работой; таким образом, это обеспечивает путь в течение времени выполнения Objective C для предотвращения тех издержек. -
Находит, что данный символ называет, и обязывает его в программу, с подсказкой позволять
dyld
для ускорения символа ищут предсвязанную программу.Объявление
Objective C
void _dyld_lookup_and_bind_with_hint( const char* symbol_name, const char* library_name_hint, void** address, NSModule * module);
Параметры
symbol_name
Указатель на струну до. Укажите имя символа для привязки.
library_name_hint
Указатель на струну до. Укажите имя библиотеки, в которой, вероятно, расположен символ. Динамический компоновщик сравнивает это имя с фактическими именами установки библиотеки с помощью функции стандартной библиотеки для C
strstr
.address
Указатель на указатель. На выводе, точках к адресу символа, указанного
symbol_name
. Этот параметр является дополнительным; передачаNULL
для этого указателя на вводе, если Вы не хотите получать эти данные.module
Указатель на указатель модуля. На выводе указатель модуля содержит модуль символа, указанного
symbol_name
. Этот параметр является дополнительным; указатьNULL
для этого указателя на вводе, если Вы не хотите получать эти данные.Обсуждение
Осуждаемый в OS X v10.4. Использовать
NSLookupSymbolInImage
вместо этого.Можно использовать
_dyld_lookup_and_bind_with_hint
чтобы быстро найти данный символ называют в списке глобального поиска предсвязанной программы и связать символ (и все другие определенные символы в том же модуле) в программу. -
Эта функция используется профильной подпрограммой
moninit
позволить изображениям кроме основной исполнимой программы профилироваться.Объявление
Objective C
void _dyld_moninit( void (*monaddition)( char* lowpc, char* highpc);
Параметры
monaddition
Указатель на функцию обратного вызова. Когда изображение сначала отображается в, обратный вызов вызывают.
Обсуждение
Эта функция обычно вызывается профильным временем выполнения (в частности, от
moninit
функция). Это документируется здесь для полноты. См. страницу справочника дляmoninit
иmonaddtion
для получения дополнительной информации. -
Указывает, загружается ли динамический компоновщик в текущую программу
Объявление
Objective C
bool _dyld_present (void);
Возвращаемое значение
Булево значение, указывающее присутствие
dyld
. Это значениеFALSE
еслиdyld
не загружается в текущем процессе, иTRUE
еслиdyld
загружается в текущем процессе. -
Регистрирует функцию, которую вызовет к динамическое время выполнения компоновщика, когда изображение добавляется к программе.
Объявление
Objective C
void _dyld_register_func_for_add_image( void (*func)(struct mach_header * mh, intptr_t vmaddr_slide));
Параметры
func
Указатель на функцию обратного вызова, принимающую указатель на a
mach_header
структура данных и виртуальная память двигают сумму. Сумма понижения виртуальной памяти указывает различие между адресом, в котором изображение было соединено и адрес, в котором загружается изображение.Обсуждение
Когда Вы вызываете
_dyld_register_func_for_add_image
, динамическое время выполнения компоновщика вызывает указанный обратный вызов (func
) один раз для каждого из изображений, в настоящее время загружающихся в программу. Когда новое изображение добавляется к программе, Ваш обратный вызов вызывают снова сmach_header
для нового изображения и виртуальной памяти двигают сумму нового изображения.Когда новые изображения добавляются к программе, Вы могли бы использовать это, например, в реализации системы во время выполнения, такой как время выполнения Objective C, для обнаружения.
-
Регистрирует функцию, которую вызовет к динамическое время выполнения компоновщика, когда модуль соединяется в программу.
Объявление
Objective C
void _dyld_register_func_for_link_module( void (*func)( NSModule module));
Параметры
func
Указатель на обратный вызов, принимающий ссылку на модули.
Обсуждение
Когда Вы вызываете
_dyld_register_func_for_link_module
, динамическое время выполнения компоновщика вызывает указанный обратный вызов (func
) один раз для каждого модуля, в настоящее время соединяющегося в программу. Когда новый модуль соединяется в программу,func
обратный вызов вызывают снова для того модуля. -
Регистрирует функцию, которую вызовет к динамическое время выполнения компоновщика, когда изображение удалено из программы.
Объявление
Objective C
void _dyld_register_func_for_remove_image( void (*func) (struct mach_header * mh), intptr_t vmaddr_slide) );
Параметры
func
Указатель на функцию обратного вызова, принимающую указатель на a
mach_header
структура данных и виртуальная память двигают сумму. Сумма понижения виртуальной памяти указывает различие между адресом, в котором изображение было соединено и адрес, в котором загружается изображение.
-
Код связующего звена ассемблера, выполняющий привязку для ленивого функционального символа.
Объявление
Objective C
.private_extern dyld_stub_binding_helper
Параметры
PowerPC: r11 x86: stack-based parameter
Указатель на ленивый указатель символа для функции, которая будет связана.
Обсуждение
dyld
обязательный помощник тупика является функцией связующего звена, помогающей динамическому компоновщику в ленивой привязке внешней функции. Когда компилятор видит вызов к внешней функции, он генерирует тупик символа и ленивый указатель для функции. На сайте вызова компилятор генерирует вызов к тупику символа. Тупик символа является последовательностью кода, загружающего ленивый указатель и переходы к нему. Первоначально, последовательность кода и содержание ленивого указателя вызывают эту функцию, вызывающую динамического компоновщика для привязки символа. После того, как символ связывается, ленивый указатель установлен в адрес символа, и символ достигнут непосредственно путем перехода к ленивому указателю.После того, потому что адрес был изменен на исполнительный адрес функции, всех вызовов к внешнему вызову функции внешняя функция.
На записи эта функция принимает адрес ленивого указателя символа. На выходе значение ленивого указателя символа установлено в адрес внешней функции.
dyld
тупик обязательный помощник является базируемым ассемблером и не использует стандартные соглашения о вызовах, и как таковой, расположение параметров являются определенными для каждой архитектуры ЦП. На PowerPC адрес ленивого указателя символа, как ожидают, будет в GPR11. На x86 адрес ленивого указателя символа должен быть спешившим штабель.Эта функция расположена в файлах запуска во время выполнения, статически соединяющихся в изображение. Для исполнимых программ файл
/lib/crt1.o
. Для пакетов это/lib/bundle1.o
, и для совместно используемых библиотек, это/lib/dylib1.o
.
-
Потенциальные возвращаемые значения при создании Мужественного изображения.
Объявление
Objective C
typedef enum { NSObjectFileImageFailure, NSObjectFileImageSuccess, NSObjectFileImageInappropriateFile, NSObjectFileImageArch, NSObjectFileImageFormat, NSObjectFileImageAccess } NSObjectFileImageReturnCode;
Константы
-
NSObjectFileImageSuccess
NSObjectFileImageSuccess
Работа создания изображений была завершена успешно.
-
NSObjectFileImageFailure
NSObjectFileImageFailure
Работа создания изображений не была успешно завершена.
Когда это значение возвращается, сообщение об ошибке распечатано к потоку стандартной погрешности.
-
NSObjectFileImageInappropriateFile
NSObjectFileImageInappropriateFile
Мужественный файл не имеет типа, на который может работать вызванная функция.
-
NSObjectFileImageArch
NSObjectFileImageArch
Указанный Мужественный файл для различной архитектуры ЦП.
-
NSObjectFileImageFormat
NSObjectFileImageFormat
Указанный файл или блок памяти, кажется, не указывают на Мужественный файл.
-
NSObjectFileImageAccess
NSObjectFileImageAccess
Права доступа для указанного файла не разрешают создание изображения.
Обсуждение
Эти возвращаемые значения возвращаются из
NSCreateObjectFileImageFromFile
иNSCreateObjectFileImageFromMemory
. -