Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Function import_mangled

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Function import_mangled

boost::dll::experimental::import_mangled

Synopsis

// In header: <boost/dll/import_mangled.hpp>

template<class... Args> 
  result_type import_mangled(const boost::filesystem::path & lib, 
                             const char * name, 
                             load_mode::type mode = load_mode::default_mode);
template<class... Args> 
  result_type import_mangled(const boost::filesystem::path & lib, 
                             const std::string & name, 
                             load_mode::type mode = load_mode::default_mode);
template<class... Args> 
  result_type import_mangled(const smart_library & lib, const char * name);
template<class... Args> 
  result_type import_mangled(const smart_library & lib, 
                             const std::string & name);
template<class... Args> 
  result_type import_mangled(smart_library && lib, const char * name);
template<class... Args> 
  result_type import_mangled(smart_library && lib, const std::string & name);
template<class... Args> 
  result_type import_mangled(const shared_library & lib, const char * name);
template<class... Args> 
  result_type import_mangled(const shared_library & lib, 
                             const std::string & name);
template<class... Args> 
  result_type import_mangled(shared_library && lib, const char * name);
template<class... Args> 
  result_type import_mangled(shared_library && lib, const std::string & name);

Description

Возвращает позывной объект или усилитель::shared_ptrкоторый содержит символ, импортированный из загруженной библиотеки. Возвращенное значение пересчитывает использование загруженной общей библиотеки, так что она не будет разгружена, пока все копии обратного значения не будут уничтожены.

Для импорта символовпсевдонимыимена используютboost::dll::import_aliasМетодика.

Примеры:

boost::function<int(int)> f = import_mangled<int(int)>("test_lib.so", "integer_func_name");
auto f_cpp11 = import_mangled<int(int)>("test_lib.so", "integer_func_name");
boost::shared_ptr<int> i = import_mangled<int>("test_lib.so", "integer_name");

Кроме того, вы можете импортировать перегруженные символы, включая функции-члены.

auto fp = import_mangled<void(int), void(double)>("test_lib.so", "func");
auto fp = import_mangled<my_class, void(int), void(double)>("test_lib.so", "func");

Если нужны квалифицированные функции-члены, это может быть установлено повторением названия класса с конст или летучим. Все последующие подписи после переоформления будут использовать это, т.е. последние.

  • *

    <
    autofp=import_mangled<my_class,void(int),void(double),
                            constmy_class,void(int),void(double)>("test_lib.so","func");
    
    >

ШаблонпараметрТ:Тип символа, который мы собираемся импортировать. Должен быть четко указан.

Параметры:

<lib>

Путь к общей библиотеке или к общей библиотеке для загрузки функции.

<mode>

Режим, который будет использоваться при загрузке библиотеки.

<name>

Нуль-конец C или C++ искалеченное имя функции для импорта. Может обрабатывать std::string, char*, const char*.

Возвращение:

Призывной объект, если T является типом функции, или усилитель::shared_ptrесли T является типом объекта.

Броски:

Усиление::system::system_error, если символ не существует или если DLL/DSO не был загружен. Перегрузка, которая принимает путь, также бросает std::bad_alloc в случае недостаточной памяти.

PrevUpHomeNext

Статья Function import_mangled раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:51:49/0.0038697719573975/0