DLL扩展
来自tradeStar帮助系统
(版本间的差异)
(→菜单扩展) |
(→菜单扩展) |
||
第34行: | 第34行: | ||
#run_by_bar | #run_by_bar | ||
extern 'Shell32.dll' int ShellExecuteW( int iHandle, LPCWSTR sOperation, LPCWSTR sFile, LPCWSTR sParam1, LPCWSTR sDir, int nShowCmd ); | extern 'Shell32.dll' int ShellExecuteW( int iHandle, LPCWSTR sOperation, LPCWSTR sFile, LPCWSTR sParam1, LPCWSTR sDir, int nShowCmd ); | ||
− | + | ||
function OnHxMenu begin | function OnHxMenu begin | ||
i:=ShellExecuteW(0, 'open', 'http://www.hexun.com', '', '', 1); | i:=ShellExecuteW(0, 'open', 'http://www.hexun.com', '', '', 1); | ||
end | end | ||
− | + | ||
− | + | ||
AddMenu('', '资讯(&I)', 0, OnShowBrowserWindow); | AddMenu('', '资讯(&I)', 0, OnShowBrowserWindow); | ||
AddMenu('资讯(&I)', '打开网页', 0, OnUrlMenu); | AddMenu('资讯(&I)', '打开网页', 0, OnUrlMenu); |
2013年9月13日 (五) 12:30的版本
目录 |
简介
用户可以通过DLL,满足自己表达算法、提高算法保密程度、提高算法运行效率等方面的需求。 还能扩展软件的菜单和面板功能。
DLL可以用任意语言编写。如 C,C++,Pascal,Delphi,.NET等。
不但用户编写的DLL可以接入,甚至Windows的系统DLL也可以引入。
DLL的用途
DLL有三方面的用途。
1.用于扩展公式系统的函数。例如,您可以实现自己的ma函数。
2.用于扩展菜单。您可以写一段程序创建一个对话框封装在DLL中,然后告知北斗星创建一个菜单来调用这个对话框。
3.用于扩展K线图右方的信息面板。
DLL的接口规范
- 传统DLL接口规范,也称为飞狐DLL接口规范
函数扩展
函数扩展既可以使用传统DLL接口规范,也可以使用自由DLL接口规范
菜单扩展
菜单扩展必须使用自由DLL接口规范
假设希望点击菜单后,调用windows的ShellExecuteW弹出和讯网页,那么可以这样写公式:
#run_by_bar extern 'Shell32.dll' int ShellExecuteW( int iHandle, LPCWSTR sOperation, LPCWSTR sFile, LPCWSTR sParam1, LPCWSTR sDir, int nShowCmd ); function OnHxMenu begin
i:=ShellExecuteW(0, 'open', 'http://www.hexun.com', , , 1);
end AddMenu(, '资讯(&I)', 0, OnShowBrowserWindow); AddMenu('资讯(&I)', '打开网页', 0, OnUrlMenu);
面板扩展
面板扩展必须使用自由DLL接口规范
DLL调用常见问题
- 无法加载DLL
- 无法删除DLL
- 无法找到调用函数