|
本帖最后由 liucqa 于 2013-5-29 22:05 编辑
近期不少会员询问关于如何使用XLL加载宏来确保工作表上的公式不暴露给用户的问题。
我做了一个演示,演示了以下功能:
1、如何自动通过VBA代码加载XLL
2、使用XLL自定义函数代替工作表函数
3、在文件关闭时注销自定义函数(通过封装的函数实现)。
4、文件启动后,在Excel的加载项列表里面看不到演示的加载宏。
5、自定义函数里面,也看不到演示的三个函数。只能看到暴露给用户的几个其他函数(这几个函数与本演示无关)。
该文件经测试在2003、2007、2010下正常。其余版本未测试,谁有空的话,帮测试一下,谢谢!
XLL封装工作表函数的演示.rar
(148.1 KB, 下载次数: 1140)
,原版本有问题,请下载新版
有问题请QQ联系
*****************************************
实际使用中,若进一步确保安全,可以考虑在XLL自定义函数中采用花参数,或者将本机的注册码作为参数传递,以确保加载宏中的自定义函数不会被非法使用。
具体方法不在此处赘述。
*****************************************
高频问题:
1、XLL封装与普通的VB DLL封装相比,有什么优势?
答:普通的DLL需要注册,XLL不需要提前注册,部署方便。而且XLL可以实现自动升级,DLL如果更新文件需要重新在注册表中卸载老版本注册新版本。
2、XLL封装与COM加载项相比,有什么优势?
答:XLL与COM相比,发展方向不同,后者在未来发展比XLL更好。但由于ExcelDna项目的出现,XLL的开发可以采用.Net语言,开发效率提高10倍,适合初学者。Com加载项的开发对初学者来说,还是不太适合的。此外,使用Com加载项开发自定义函数,需要加上VBA的外壳才能被作为自定义函数调用。
3、如何开发XLL加载项
答:标准的XLL开发需要微软的XLL SDK,并使用C、C++语言进行,开发周期长。本人建议采用ExcelDna项目通过C#开发,写一个简单的加载宏只需要几分钟,最多半小时。具体请参考 http://club.excelhome.net/thread-964658-1-1.html
4、对本论坛的会员来说,开发XLL有什么困难?
答:最大的困难是需要重新学习.Net语言。如果有编程基础,C#入门需要7天。如果没编程基础...,嗯,俺得想想...
5、XLL可以保证源码不外泄或者算法不被破解吗,采用.Net语言开发XLL,源码会不会外泄?
答:任何语言开发的软件都可能被破解,问题在于破解的投入与产出是否匹配。如果你采用C、C++来开发XLL,一般不必担心被破解的问题。如果采用ExcelDna项目开发,我的建议是不要使用.dna文件进行明码的开发,可以考虑使用DLL+混淆(用VS2010开发)。对普通使用者来说,这样就足够了。当然,如果你开发的东西很值钱,可以考虑购买商业的加壳软件对你的作品进行保护。
|
|