链接库dll-1-shared_library
来源:互联网 发布:文件管理系统源码 编辑:程序博客网 时间:2024/05/23 19:09
编译了 动态链接库代码: https://github.com/apolukhin/Boost.DLL/blob/develop/example/getting_started_library.cpp
然后测试:
#include <boost/dll/shared_library.hpp> // for shared_library#include <boost/function.hpp>#include <laok.h>namespace dll = boost::dll;//shared_library基本接口://static boost::filesystem::path suffix();后缀//void unload() 卸载//void load(...)加载//bool is_loaded() 是否加载成功//bool has(const std::string &)是否包含名字//type get(const std::string &)用名字获取//type get_alias(const std::string &) 用别名获取//native_handle_t native() 本地句柄//boost::filesystem::path location() dll路径//void swap(shared_library &) JOB_DEFINE(dll , shared_library_suffix){PS(dll::shared_library::suffix());}JOB_DEFINE(dll , shared_library_info){dll::shared_library lib("kernel32.dll" , dll::load_mode::search_system_folders);PS( lib.is_loaded() );PS( lib.location() );PS( lib.native() );}JOB_DEFINE(dll , shared_library_get){boost::filesystem::path path = GetCurFilePath();dll::shared_library lib(path/"tutorial/00-getting_started_library" , dll::load_mode::append_decorations);boost::function<int(int)> c_func_name = lib.get<int(int)>("c_func_name");PS( c_func_name(1) );int& c_variable_name = lib.get<int>("c_variable_name");PS(c_variable_name);PSVoid( c_variable_name = 100 );PS( lib.get<int>("c_variable_name") );std::string& cpp_variable_name = lib.get<std::string>("cpp_variable_name");PS( cpp_variable_name );PSVoid( cpp_variable_name = "laok");PS( lib.get<std::string>("cpp_variable_name") );boost::function<std::string (const std::string& )> pretty_name = lib.get_alias<std::string (const std::string& )>("pretty_name");PS(pretty_name("laok"));}
运行效果如下;
=====<dll_shared_library_suffix>begin[dll::shared_library::suffix()]:[".dll"]=====<dll_shared_library_suffix>end [State:OK] [Times:0.004s]=====<dll_shared_library_info>begin[lib.is_loaded()]:[true][lib.location()]:["C:\windows\syswow64\kernel32.dll"][lib.native()]:[755C0000]=====<dll_shared_library_info>end [State:OK] [Times:0s]=====<dll_shared_library_get>beginE:\ArgusTech\workspace-cpp\boost\dll\tutorial\00-getting_started_library.dll********************************loaded explicit!E:\ArgusTech\workspace-cpp\boost\dll\tutorial\00-getting_started_library.dll********************************dll process attach[c_func_name(1)]:[2][c_variable_name]:[1]c_variable_name = 100[lib.get<int>("c_variable_name")]:[100][cpp_variable_name]:[some value]cpp_variable_name = "laok"[lib.get<std::string>("cpp_variable_name")]:[laok][pretty_name("laok")]:[laok Hello from lib!]E:\ArgusTech\workspace-cpp\boost\dll\tutorial\00-getting_started_library.dll********************************loaded explicit!E:\ArgusTech\workspace-cpp\boost\dll\tutorial\00-getting_started_library.dll********************************dll process detach=====<dll_shared_library_get>end [State:OK] [Times:0.086s]
0 0
- 链接库dll-1-shared_library
- dll动态链接库(1)
- dll动态链接库编程入门1
- 动态链接库 (DLL)
- 动态链接库DLL
- 动态链接库DLL
- 动态链接库 dll
- 链接库【DLL】
- DLL动态链接库
- DLL 动态链接库
- DLL(动态链接库)
- 动态链接库DLL
- DLL,动态链接库
- 动态链接库 DLL
- 动态链接库DLL
- 动态链接库 dll
- 动态链接库DLL
- 动态链接库DLL
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- vs中debug和release的区别
- 从np.random.normal()到正态分布的拟合
- 洛谷 P2659 美丽的序列
- 怎么把ABBYY识别结果的文档导出
- 链接库dll-1-shared_library
- 浏览器的重绘与重排
- 28.Unknown MySQL server host 'localhost'(0)
- 微信公众号信息的爬取解决方案
- 相见恨晚,真的很喜欢Udacity
- 关于RGB屏调试的一些知识
- 点击dialog上部红色方框区域 dilaog不消失 点击其实区域消失
- activity 全屏界面切换到非全屏界面的问题
- 浏览器命令行交互下js的执行过程