加入收藏 | 设为首页 | 会员中心 | 我要投稿 51站长网 (https://www.51zhanzhang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
站内搜索:
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

正在加载插件(DLL)

发布时间:2020-12-26 07:38:33 所属栏目:Windows 来源:网络整理
导读:有没有办法在D动态加载和调用DLL中的函数?我希望我的程序能够在启动时加载插件,也可以在运行中加载插件. 这取决于你想要获得的动态.如果你想动态加载一个dll并运行一些预定义的函数,那么有一个很好的包装器,由Wei Li here.由于模板的强大,它可以让你做这些

有没有办法在D动态加载和调用DLL中的函数?我希望我的程序能够在启动时加载插件,也可以在运行中加载插件. 这取决于你想要获得的动态.如果你想动态加载一个dll并运行一些预定义的函数,那么有一个很好的包装器,由Wei Li here.由于模板的强大,它可以让你做这些事情:

// define functions
alias Symbol!("MessageBoxW",int function(HWND,LPCWSTR,UINT)) mbw;
alias Symbol!("MessageBoxA",LPCSTR,UINT)) mba;
// load dll
auto dll = new Module!("User32.dll",mbw,mba);
// call functions
dll.MessageBoxW(null,"Hello! DLL! ","Hello from MessageBoxW",MB_OK);
dll.MessageBoxA(null,"Hello from MessageBoxA",MB_OK);

代码为D1.对于D2,您必须用字符串替换char [],使用toStringz()并可能删除范围.编辑:这个代码的my D2 port可能对其他人发现这个问题有用.

(编辑:ASP站长)

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

    相关内容
    未处理完善
      无相关信息
    未处理完善