tablacus / TablacusScriptControl

Script Control for 64-bit platforms
https://tablacus.github.io/scriptcontrol_en.html
MIT License
62 stars 17 forks source link

Inconsistent behavior of ScriptControl 64-bit to the msscript.ocx #10

Closed DoctorLai closed 6 years ago

DoctorLai commented 6 years ago

The Microsoft provides a 32-bit msscript.ocx which allows you to easily do some scripting inside your application, however, they do not have an official 64-bit version of ScriptControl and they are not planning to make one.

64-bit computing and applications are gradually accepted and in an increasing demand recent years. I found tablacus/TablacusScriptControl is a very good alternative that provides the 64-bit Scripting Control and I use it quite a lot in my applications.

As one can imagine, nowadays, usually the same source code can be compiled to both 32-bit and 64-bit, therefore, we have to make sure the behavior has to stay consistent in either mode. The behavior is somewhat different between the 64-bit ScriptControl and the Microsoft's 32-bit msscript.ocx.

How to reproduce?

create two vbs files, with the 32-bit version:

Dim SC
Set SC = CreateObject("MSScriptControl.ScriptControl")

SC.Reset 
WScript.Echo SC.Language

and 64-bit version:

Dim SC
Set SC = CreateObject("ScriptControl")

SC.Reset 
WScript.Echo SC.Language

If you run both, you will see the 32-bit version throws:

ScriptControl (4, 1) : The operation could not be completed because the script engine has not been initialized to a valid language.

but the 64-bit ScriptControl silently swallows the error.

image.png



Posted on Utopian.io - Rewarding Open Source Contributors

tablacus commented 6 years ago

I've adjusted it in Tablacus Script Control 64 version 1.0.9.0. Please try to update. Best regards,

DoctorLai commented 6 years ago

Thanks! yes, I can confirm it is fixed.

tablacus commented 6 years ago

My pleasure.