ПредишенСледващото

кратко описание

Тези функции осигуряват преносими метод за динамично натоварване на обектните файлове (известни като "плъгини"). Настоящата реализация поддържа всички системи, които гарантират изпълнението на dlopen () (например Linux / Sun), както и HP-UX чрез shl_load на механизъм () и Windows чрез DLLs.

Програма да се използва с тези функции трябва да бъдат свързани с изходните библиотеки (продукция) с помощта на PKG-довереник --libs gmodule-2.0 екип.

За да ги използвате, трябва първо да се определи дали динамичното натоварване се поддържа на платформата използвана чрез g_module_supported () повикване. Ако се поддържа, можете да отворите нови модули с помощта g_module_open (). за модулни идентификатори (например имена на функции) с помощта на g_module_symbol изглежда (). и след това затваряне модули чрез g_module_close (). g_module_name () връща отворен в момента името на единица файл.

Ако някоя от функциите, описани по-горе не успее, описанието на грешка може да бъде намерени g_module_error ().

GModule функция изпълнява препратка броене за отворени модули и подкрепа за прекъсване работа функции в модула, който се нарича, когато модулът се товарят и разтоварват (виж GModuleCheckInit и GModuleUnload).

Ако вашият модул въвежда статични данни на общи подсистеми в настоящата програма, например чрез g_quark_from_static_string предизвикателство ( "ми-модул-неща"). той трябва да е сигурен, че никога не се разтовари с g_module_make_resident () повикване.

Пример 12. извикване на функция е определено в GModule

g_module_build_path ()

Portable начин за създаване на името на модула файл. Платформа-специфичен префикс и суфикс добавя към името на файла, ако е необходимо, и резултатът е добавена в директорията използвате правилния знак за разделяне.

Параметърът указател, трябва да се определи къде е директорията, където може да се намери на модула. Тя може да бъде нула или празен низ за да покаже, че модулът е в стандартния за конкретната платформа директория, въпреки че това не се препоръчва, тъй като неправилно модул може да се намери.

Например, g_module_build_path на повикване () в параметъра система Linux за параметър на стойност директория / ИЪ и module_name равна на стойността "mylibrary" върне /lib/libmylibrary.so. В Windows, използвайте директория \ Windows като стойност на параметър се връща \ Windows \ mylibrary.dll.

директорията, където модула. Може да бъде нула или празен низ за да покаже, че даден стандарт за конкретната платформа директория, въпреки че това не се препоръчва.

Абсолютният път на модула, включително стандартната библиотека префикса и суфикса. Трябва ли да се освобождава, когато вече не са необходими.

g_module_open ()

Отваря модул. Ако модулът вече е отворен, като увеличава броя на линковете.

Първо на всички g_module_open () се опитва да отвори име_файл като модул. Ако това не стане и име_файл е ".la" наставка (и архив libtool), тя се опитва да отвори съответния модул. Ако не успее, и то не разполага с подходяща модул наставка за платформата (G_MODULE_SUFFIX), това наставка ще бъде поставен начело и съответния модул се отваря. Ако това не стане и име_файл не разполага с наставка ".la", тази наставка е поставена и g_module_open () се опитва да отвори съответния модул. Ако не успее, той се връща NULL.

име на файла, съдържащ модула, или NULL, за да получите GModule пряко към основната програма.

Подкрепете проекта - споделете линка, благодаря!