以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [结贴]实现通过vs2008添加动态代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9487)
|
-- 作者:qtcks
-- 发布时间:2011/4/17 12:35:00
-- [结贴]实现通过vs2008添加动态代码
如果要使用第三方的开发工具,请引用foxtable.exe和foxtable.lib.dll,这两个文件包括foxtable所有公开的类型。
如何实现以下代码?
示例
下面的代码定义了一个简单的Sum函数:
Dim Code As string Code = "Dim Val1 As Integer = 1" & vbcrlf Code = Code & "Dim Val2 As Integer = 2" & vbcrlf Code = Code & "Dim Sum As Integer = Val1 + Val2" & vbcrlf Code = Code & "Return Sum" Functions.Add("Sum",Code) Functions.Complie()
这样我们就可以在其余地方调用此函数:
Functions.Execute("Sum")
[此贴子已经被作者于2011-4-17 13:54:49编辑过]
|
-- 作者:qtcks
-- 发布时间:2011/4/17 13:52:00
--
睡了一觉,神清气爽啊,一下就通了。附攻略
1、在vs2008中,新增一个新项目,
此主题相关图片如下:添加引用.png
2、添加新建的项目中=>项目=>添加引用 (foxtable的引用)
此主题相关图片如下:新增类库.png
3、附代码
Imports Foxtable Public Class Class1 Public Function xb() Dim x As String = "Return 123" Foxtable.Functions.Add("Sum", x) Foxtable.Functions.Complie() Return True End Function End Class
4、编译生成dll文件。并复制到foxtable程序目录下。我的是(by.dll)
5、打开foxtable并添加外部引用
此主题相关图片如下:外部引用.png
6、打开foxtable 的命令窗口输入一下命令
Dim x As New by.Class1 output.show(x.xb) output.show(Functions.Execute("sum"))
结果如下。调试成功了哦。
|
-- 作者:qtcks
-- 发布时间:2011/4/17 13:54:00
--
调试成功咯
此主题相关图片如下:调试成功.png
vs2008 代码
此主题相关图片如下:代码片段.png
|
-- 作者:狐狸爸爸
-- 发布时间:2011/4/17 15:09:00
--
呵呵,看来睡好觉,才能学得好啊。
|
-- 作者:lihe60
-- 发布时间:2011/4/17 16:25:00
--
主要用途是什么?
|
-- 作者:qtcks
-- 发布时间:2011/4/17 16:39:00
--
嘿嘿,用途嘛················
准备搞foxtable版B/s程序,为实现内部函数代码加密。嘿嘿。
|
-- 作者:blackzhu
-- 发布时间:2011/4/18 7:51:00
--
也是一高手中的高手.
|
-- 作者:santde
-- 发布时间:2015/12/23 18:48:00
--
foxtable版B/s程序整出来了没有
|
-- 作者:santde
-- 发布时间:2016/1/16 16:45:00
--
请教
Dim x As New by.Class1 output.show(x.xb) output.show(Functions.Execute("sum"))
这段代码执行 没问题有预期效果
但如果
Dim x As New by.Class1 output.show(x.xb)
二次执行就不行,提示键值已有,是啥原理
|
-- 作者:大红袍
-- 发布时间:2016/1/16 17:22:00
--
要先吧函数remove掉,如
Functions.remove("函数") Dim Code As String Code = "msgbox(123)" & vbcrlf Functions.Add("函数",Code) Functions.Complie() Functions.Execute("函数")
|