Giriş
Şu satırı dahil ederiz
.h dosyasında şöyle yaparız.
Constructor
Şöyle yaparız.
Elimizde şöyle bir metod olsun
Şöyle yaparız.
BOOST_DLL_ALIAS ile isim verilmiş metodu verir. Şöyle yaparız.
Şu satırı dahil ederiz
#include <boost/dll.hpp>
BOOST_DLL_ALIAS Macrosu.h dosyasında şöyle yaparız.
static boost::shared_ptr<foo> createPlugin();
BOOST_DLL_ALIAS(
createPlugin,
create_plugin
)
shared_library SınıfıConstructor
Şöyle yaparız.
boost::filesystem::path libPath = ...;
boost::dll::shared_library sl (libPath,load_mode::dont_resolve_dll_references);
get_alias metoduElimizde şöyle bir metod olsun
Foo Open(const char* filename)
{...}
Şöyle yaparız.auto f = sl.get_alias<Foo (const char*)>("Open");
load metodu - pathŞöyle yaparız.
boost::filesystem::path libPath = ...;
boost::dll::shared_library sl;
sl.load(libPath);
...
sl.unload();
unload metodu
Şöyle yaparız.
import metodu
C metodları veya mangled C++ metodları için kullanılır. Şöyle yaparz.
import_alias metodusl.unload();
smart_library Sınfı
Giriş
Şu satırı dahil ederiz.
Şöyle yaparız.
Free Style MetodlarGiriş
Şu satırı dahil ederiz.
#include <boost/dll.hpp>
#include <boost/dll/smart_library.hpp>
#include <boost/dll/import_mangled.hpp>
#include <boost/exception/diagnostic_information.hpp>
ConstructorŞöyle yaparız.
boost::filesystem::path path("./libshared.so");
boost::dll::experimental::smart_library sl (path);
import metodu
C metodları veya mangled C++ metodları için kullanılır. Şöyle yaparz.
auto f1 = boost::dll::import<void(std::string const&, n1::n2::st&)>(path, "...");
BOOST_DLL_ALIAS ile isim verilmiş metodu verir. Şöyle yaparız.
/* load dll */
boost::filesystem::path path("..\\Debug");
path /= "DLL";
boost::function<boost::shared_ptr<foo>()> creator =
boost::dll::import_alias<boost::shared_ptr<foo>()>(
path,
"create_plugin",
boost::dll::load_mode::append_decorations
);
boost::shared_ptr<foo> plugin = creator();
import_mangled metodu
Şu satırı dahil ederiz.#include <boost/dll/import_mangled.hpp>
Hiç yorum yok:
Yorum Gönder