能否在vb.net 2005中开发自己的VBA环境?
大家好,我现在要用VB.NET2005开发一个电网络的分析计算程序,其中各个节点的注入电流与节点的电压有关,因此我需要给程序的使用者提供接口,让他对每个节点编写简单的脚本来说明注入电流如何由电压计算得出。由于节点的类型多种多样,因此我不可能预先对每种类型都定义好函数,只能由用户在使用时动态定义。
请问,我如何提供给用户一个编写脚本的环境,类似于autocad、mapinfo和word那种,让他能用我提供的特定的VBA语句来描述节点,而我的程序能根据用户提供的信息动态生成计算该节点注入电流的函数,进而得到该节点的电流信息?
请问,类似的程序开发是否有现成的环境,还是完全需要我自己开发实现?
多谢了!!
[解决办法]
在.NET中使用脚本引擎
来源:qqread论坛 作者: 2006-07-11 出处:pcdog.com
office sas http rip
在应用程序中使用脚本引擎可以大大增强程序的灵活性和可扩展性,类似MS Office和 VS.NET的宏功能。微软。NET框架中Microsoft.vsa.dll中定义了脚本引擎的框架,而Microsoft.Visualbase.vsa.dll则定义了实现了VBA的脚本引擎。
利用这两个DLL可以定义自己的基于VBA.NET的脚本引擎,
Microsoft.vsa.dll中定义了一些框架接口,其中比较重要的接口包括IVsaEngine 为脚本引擎接口,所有的脚本引擎使用该接口IVsaSite 脚本引擎通讯接口,脚本引擎接受该接口来发布一些信息IVsaItem 为脚本引擎相关资源的项目IVsaCodeItem 为脚本代码模块IVsaRefrenceItem 为脚本引擎使用的外部引用对象IVsaGlobalItem 为脚本引擎使用的全局对象模块
使用过程一般为实例化一个脚本引擎,将实现了IVsaSite的对象传给脚本引擎对象,然后使用引擎的Items的CreateItem方法添加引用,代码文本和全局对象。然后调用Compile方法编译脚本引擎,使用RUN启动引擎。
脚本引擎启动后会在当前应用程序域中根据脚本代码动态生成和加载了一个Assembly程序集,使用 IVsaEngine.Assembly可访问动态产生的程序集。
Microsoft.VisualBase.vsa.dll实现了这些接口,并实现了基于VBA.NET语法的脚本引擎。
主要对象为 VsaEngine
本程序提供一个C#写的演示程序,使用微软。NET框架1.1,该演示程序提供了一个通用的使用脚本引擎的模块,大家使用这个模块就可以非常方便的使用VBA脚本引擎来扩展自己的应用程序。
演示程序下载地址:http://www.cnblogs.com/Files/xdesigner/VBAScriptDemo.rar
出处:XDesigner BLOG