|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2019/4/24 13:17:11 |
标题: |
编译64位的exe无法使用ms自带的ScriptControl |
浏览:3452 |
|
加入我的收藏 |
楼主: |
var jsExe: OleVariant; begin jsExe := CreateOleObject('ScriptControl'); // 创建组件
jsExe.Language := 'JavaScript'; // 指 定组件所使用的语言,也可以是VBScript end;
这句话,编译成win32没有问题; 但是编译成win64却却报错, 提示:
没有注册类, ProgID: "ScriptControl"
不知道如何处理,可能64位默认不支持微软的script了
----------------------------------------------
青云论坛 |
作者: |
gmxyb (gmxyb) |
★☆☆☆☆ |
-
|
普通会员 |
|
2019/4/24 13:23:59 |
1楼: |
支持64位,只是有一些接口(不是所有的)的 GUID 要用另一套,32/64 是不同的。
还有一些函数的参数类型也要做调整。。
至于具体是那些,网上能搜到。
----------------------------------------------
-
|
作者: |
|
2019/4/24 15:50:19 |
2楼: |
多谢楼上提醒; 我尝试了半天;没搞定; 直接导入了(也就是您说的两套中的win64这套):
unit MSScriptControl_TLB;
// Type Lib: C:\Windows\SysWOW64\msscript.ocx (1) // LIBID: {0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC} // LCID: 0
.....
怎么弄都不行;
算了,还是把程序退回到32位了;
----------------------------------------------
青云论坛
|
作者: |
|
2019/4/24 16:16:36 |
3楼: |
其他JavaScript的方法我也试过,但是他们其实都不是真正的js解析器;
很多标准的语法,解析不了;
----------------------------------------------
青云论坛
|
作者: |
|
2019/4/24 16:19:56 |
4楼: |
SysWOW64中的是32位的, SYSTEM32中的才是64位的,不要轻易放弃,再试试 ;)
----------------------------------------------
-
|
作者: |
|
2019/4/24 17:06:27 |
5楼: |
https://www.baidu.com/link?url=e7Fji8jvN4C0VbRDwHx5zWQ3s7QxcPwe_hWdh-u086mQbdiZ7hu7XtkYVp6EmVrY&wd=&eqid=dce1be4100060f4d000000065cc0261f
上面这个帖子说到:
另外这个ScriptControl仅仅有32位的,在64位Windows上的system32里面并没有这个DLL,仅仅在SysWow64中才有.也就是说如果你要开发64位Windows程序就不能用了.当然如果是在64位Windows中运行的32位程序则没问题.
--- ysWOW64中的是32位的, SYSTEM32中的才是64位的,不要轻易放弃,再试试 ;)
全局搜索后,只有这个一个地方有这个ocx: C:\Windows\SysWOW64\msscript.ocx
----------------------------------------------
青云论坛
|
作者: |
|
2019/4/24 21:22:29 |
6楼: |
1、下载https://github.com/tablacus/TablacusScriptControl/releases/download/1.0.9.0/tsc64_1090.cab,安装即可。
2、源码:https://github.com/tablacus/TablacusScriptControl.git
----------------------------------------------
是你上错了车,还是我下错了站?
|
作者: |
|
2019/4/24 22:49:47 |
7楼: |
我都不好意思回答。那是武哥的专利。 让武哥来回答你的问题吧。
----------------------------------------------
武汉天气不好
|
作者: |
|
2019/4/25 8:36:26 |
8楼: |
这个不错:
1、下载https://github.com/tablacus/TablacusScriptControl/releases/download/1.0.9.0/tsc64_1090.cab,安装即可。
2、源码:https://github.com/tablacus/TablacusScriptControl.git ----------
使用说明说的也很清楚:
Script Control for 64-bit platforms Tablacus Script Control 64
Alternate MSScript.ocx
* Install & Uninstall
Run setup.exe
or
* Install Run as administrator regsvr32 tsc64.dll
* Uninstall Run as administrator regsvr32 /u tsc64.dll
Binary file is here. https://tablacus.github.io/scriptcontrol_en.html
Build Visual C++ 2010 Express Edition SP1 Windows SDK v7.1
----------------------------------------------
青云论坛
|
作者: |
|
2019/4/25 8:47:33 |
9楼: |
厉害啊!
就用上面tsc64.dll 搞定了!
可是微软为什么自带的只能支持32位;说明微软本身也想放弃这个功能了
----------------------------------------------
青云论坛
|
作者: |
gmxyb (gmxyb) |
★☆☆☆☆ |
-
|
普通会员 |
|
2019/4/26 19:51:14 |
10楼: |
首先,微软自带的js引擎肯定是支持 64 位的,只不过可能不提供msscript.ocx这种控件方式了。如果你熟悉com编程,直接用底层的Com接口是可以的(不同于msscript.ocx的脚本接口)。
那个 tsc64.dll 也只是把微软64位的js引擎封装了一下,模拟了一个64位的msscript.ocx
我在一楼说的那几个不同的 GUID 在 tsc64.dll 的源码中就有。
----------------------------------------------
-
|
作者: |
|
2019/4/30 9:19:50 |
11楼: |
多谢gmxyb; 要是有直接底层的com的delphi代码,就更好了;网上搜了一下,好像没找到;
这样就变成纯绿色了;
----------------------------------------------
青云论坛
|
作者: |
|
2019/4/30 10:37:49 |
12楼: |
其他JavaScript的方法我也试过,但是他们其实都不是真正的js解析器;
很多标准的语法,解析不了;
-----> 这话从何说起 。。。 msscript才是很老的了。。许多新的js写法解析不了
----------------------------------------------
-
|
作者: |
|
2019/5/1 11:48:02 |
13楼: |
是的 msscript是很老了;我也不太想用这个; 能否推荐一个其他的:)
----------------------------------------------
青云论坛
|
作者: |
|
2019/5/2 21:41:06 |
14楼: |
给你推荐一个纯Pascal写的JavaScript,而且它执行的时候会用JIT编译成X86或X64本地代码再执行,而不是一行行解释,效率极高。 你去找一下besen,以前在GoogleCode上,现在Github上。
----------------------------------------------
武稀松http://www.raysoftware.cn
|
作者: |
|
2019/9/22 8:47:06 |
15楼: |
你去找一下besen,以前在GoogleCode上,现在Github上。
--找到了; https://github.com/BeRo1985/besen
稍后就研究一下;
----------------------------------------------
青云论坛
|
作者: |
gmxyb (gmxyb) |
★☆☆☆☆ |
-
|
普通会员 |
|
2019/9/22 15:27:39 |
16楼: |
besen比较小众,项目貌似不太活跃,代码也挺晦涩难懂。。
如果想要个比较好的js脚本引擎,推荐: https://github.com/tondrej/chakracore-delphi
----------------------------------------------
-
|
|