- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 VB6 游戏,它运行得很好,但我一直在考虑创建一个脚本引擎的想法。我想我希望 VB6 为我读取纯文本脚本文件,然后 lex/parse/execute 它们。
我有很好的编程经验,并且之前搭建过一个简单的C编译器,以及一个LOGO模拟器。
我的问题是:我可以使用 Lexx/Yakk/Bison 等工具来帮助我吗?我应该如何在词法分析、解析和将命令反馈给 VB6 方面解决这个问题,以便我可以处理它们?这个想法是否是一个坏主意,因为路上有太多的障碍(例如,在组装中 build 扫雷艇,虽然不是不可能,但非常困难,而且是一个坏主意。)?
最佳答案
使用 Microsoft® Windows® 脚本控件,因为它很容易集成到现有的 VB6 应用程序中。该控件支持 VBScript、JScript 或任何其他“事件脚本”实现。
我已经在四个项目中使用了Windows 脚本控件,并且它运行得非常好。非常容易集成。我希望 Microsoft 能够为我们提供 .NET 的替代品,并使其易于使用。 (我知道 .NET 中不需要该控件,但能够简单地创建一个处理所有内容的对象是很好的。)
Windows Script Control
The Microsoft® Windows® Script Control is an ActiveX® control that provides developers with an easy way to make their applications scriptable. This, in turn, enables users to extend application functionality through scripts, much as they do with macros today.
信息:在何处获取脚本控件位于 http://support.microsoft.com/kb/184739 。包含其他操作方法支持文章的链接。
第 13 章:向您的应用程序添加脚本支持,地址:http://msdn.microsoft.com/en-us/library/aa227413(VS.60).aspx
设计计算器,地址:http://msdn.microsoft.com/en-us/library/aa227421(VS.60).aspx
如何使用脚本控制模块和过程集合,插入自 http://support.microsoft.com/kb/184745
如何使用脚本控件的 AddObject 方法,插入自 http://support.microsoft.com/kb/185697
示例:SCRIPTEX.EXE 将 ScriptControl 与 Visual Basic 结合使用,插入自 http://support.microsoft.com/kb/189484
Windows 脚本控件可以从 http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en 下载。 (支持的操作系统:Windows 2000;Windows 98 第二版;Windows ME;Windows NT;Windows Server 2003;Windows XP)
MSDN 搜索“MSScriptControl.ScriptControlClass”http://social.msdn.microsoft.com/Search/en-US?query=%22MSScriptControl.ScriptControlClass%22&ac=8
MSDN 搜索“Windows 脚本控制”http://social.msdn.microsoft.com/Search/en-US?query=%22Windows+Script+Control%22&ac=8
MSDN 搜索“MSSCRIPT”http://social.msdn.microsoft.com/Search/en-US?query=MSSCRIPT&ac=8
关于scripting - VB6 解析器/词法分析器/脚本编写器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3000025/
我试图了解传递给 setTimeout 的箭头函数如何记住上一个执行上下文中的 this 的值。我知道在执行箭头函数时会使用词法作用域规则查找 this 值。这是否意味着箭头函数关闭变量和 this
这个问题已经有答案了: How does the "this" keyword in Javascript act within an object literal? [duplicate] (4 个
我已阅读 this问题,我想我已经理解了投票最多的答案,但他说 since basically every programming language in wide use today uses le
如何让这段宏发挥预期的作用? -- 我想从词法环境中捕获 p 而不必将其作为参数发送给宏。 (define-syntax-rule (fi a b) (if p a b)) ;--->capt
Program A() { x, y, z: integer; procedure B() { y: integer; y=0;
我正在用 Java 实现自己的链表。节点类只有一个名为“name”的字符串字段和一个名为“link”的节点。现在我有一个测试驱动程序类,它只按顺序插入几个名字。现在,我正在尝试编写一种排序方法来按字母
考虑到这个question SO,其中调用了整个 C# 内存中编译器。只有lexical and syntactic analyzing时是必需的:将文本解析为词素流,检查它们并退出。 在System
我有 2 个场景。 这失败了: class F { public X X { get; set; } } 错误 CS0102:类型“F” ' 已经包含 ' X 的定义| ' 这个有效: class
我有一个用 NodeJS 执行的 .js 文件。这是我的文件的内容: var ctry = "America"; function outer(msg) { console.log(msg +
我对编写汇编程序的概念非常陌生,即使在阅读了大量 Material 之后,我仍然很难理解几个概念。 将源文件实际分解为 token 的过程是什么?我相信这个过程称为词法分析,我已经到处搜索有意义的真实
在 static scoping,标识符可以通过分析/解析源代码来确定(与动态作用域不同,动态作用域或多或少需要了解调用者环境)。 我的问题是这样的,因为静态作用域只需要解析源代码以了解作用域和标识符
编辑:我在第一个答案后更改了示例代码,因为我想出了一个简单的版本来回避相同的问题。 我目前正在学习 Common Lisp 的作用域属性。在我认为我有一个坚实的理解之后,我决定编写一些我可以预测结果的
考虑这段代码: class Bar(object): pass class Foo(object): def bar(self): return Bar() f = Foo() def Bar
将 ES6 箭头函数与词法 this 绑定(bind)结合使用非常棒。 但是,我刚才在使用典型的 jQuery 单击绑定(bind)时遇到了一个问题: class Game { foo() {
将 ES6 箭头函数与词法 this 绑定(bind)结合使用非常好。 但是,我刚才在将它与典型的 jQuery 点击绑定(bind)一起使用时遇到了一个问题: class Game { foo(
我是一名优秀的程序员,十分优秀!