zoukankan      html  css  js  c++  java
  • 使用 JScript 创建 .exe 或 .dll 文件

    什么是 JScript?

    JScript 是由微软开发的活动脚本语言,基于 ECMAScript 规范实现。Internet Explorer 中的 JavaScript,实际上是指 JScript。JScript 已被 Windows Script Host(WSH)支持(WSH 中的 JavaScript shell scripting:C:\> cscript jslint.js)。JScript 最新的版本(JScript.NET)基于 ECMAScript 4.0 ,并且可以在 .Net 环境下编译。

    .NET Framwork 中包含有 JScript 编译器 :JScriptCompiler (C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\jsc.exe),其可以将 JScript 文件编译为一个 .exe 或者 .dll 文件。

    为了方便使用,我们可以将 JScriptCompiler 的路径加入到环境变量(环境变量 –> 系统变量 –> Path)中。在 CMD 程序运行窗口中直接调用命令 “jsc”,就可以看到编译器相关的帮助选项。

    jsc [选项] <源文件> [[选项] <源文件>…]

    JScript 编译器选项

    – 输出文件 -
    /out:<file> 指定二进制输出文件的名称
    /t[arget]:exe 创建控制台应用程序(默认)
    /t[arget]:winexe 创建 Windows 应用程序
    /t[arget]:library 创建库程序集
    /platform:<platform> 限制此代码可以在其上运行的平台;必须是 x86、Itanium、x64 或 anycpu。默认为 anycpu

    – 输入文件 -
    /autoref[+|-] 基于导入的命名空间和完全限定名称自动引用程序集(默认情
    况下为 on)
    /lib:<path> 指定要在其中搜索引用的附加目录
    /r[eference]:<file list> 从指定的程序集文件引用元数据 <file list>: <assembly name>[;<assembly name>...]

    – 资源 -
    /win32res:<file> 指定 Win32 资源文件(.res)
    /res[ource]:<info> 嵌入指定的资源 <info>: <filename>[,<name>[,public|private]]
    /linkres[ource]:<info> 将指定的资源链接到此程序集 <info>: <filename>[,<name>[,public|private]]

    – 代码生成 -
    /debug[+|-] 发出调试信息
    /fast[+|-] 禁用语言功能以使代码更好地生成
    /warnaserror[+|-] 将警告视为错误
    /w[arn]:<level> 设置警告等级(0-4)

    – 杂项 -
    @<filename> 有关更多选项,请阅读响应文件
    /? 显示帮助
    /help 显示帮助
    /d[efine]:<symbols> 定义条件编译符号
    /nologo 不显示编译器版权标志
    /print[+|-] 提供 print() 函数

    – 高级 -
    /codepage:<id> 使用指定的代码页 ID 打开源文件
    /lcid:<id> 将指定的 LCID 用于消息和默认代码页
    /nostdlib[+|-] 不导入标准库(mscorlib.dll)并将 autoref 默认值更改为 off
    /utf8output[+|-] 以 UTF-8 字符编码形式发出编译器输出
    /versionsafe[+|-] 为没有标记为“override”或“hide”的成员指定默认值

    创建 .exe 文件

    先创建 JS 文件(C:\test\helloWorld.js),内容如下:

    var date = new Date();
    print('Hello World! \nToday is ' + date );
    

     

    接着我们进行编译:

    C:\test>jsc helloWorld.js

    Microsoft (R) JScript Compiler version 8.00.50727
    for Microsoft (R) .NET Framework version 2.0.50727
    Copyright (C) Microsoft Corporation 1996-2005。保留所有权利。

    你会惊讶的发现,C:\test 目录下多了个 helloWorld.exe 文件,非常简单吧,呵呵

    最后我们可以直接执行 helloWorld.exe 文件:

    C:\test>helloWorld

    Hello World!
    Today is Fri Jun 3 23:13:20 UTC+8 2011

    大功告成!!

    创建 .dll 文件

    .dll 文件的创建也同样非常简单:

    package LibHW {
    class HelloWorld {
    function run() {
    var date = new Date();
    return 'Hello World! \nToday is ' + date;
    }
    }
    }

    编译语句:

    C:\test>jsc /t:library LibHW.js

    对于生成的 LibHW.dll 文件,我们可以通过创建新的 .exe 文件(consumer.js –> consumer.exe)以导入模块的方式调用(类似于 Python)。

    先创建 consumer.js 文件:

    import LibHW;
    var hw = new LibHW.HelloWorld();
    print(hw.run());

    然后编译 consumer.js 文件,执行 consumer.exe:

    C:\test>jsc consumer.js

    Microsoft (R) JScript Compiler version 8.00.50727
    for Microsoft (R) .NET Framework version 2.0.50727
    Copyright (C) Microsoft Corporation 1996-2005。保留所有权利。

    C
    :\test>consumer

    Hello World!
    Today is Sat Jun 4 00:42:35 UTC+8 2011

    当然你还可以创建 windows 的应用,上例中的 consumer.js 文件修改如下:

    import System.Windows.Forms; // this has a MessageBox class
    import LibHW;

    var hw = new LibHW.HelloWorld();
    MessageBox.Show(
    hw.run(),
    "Dude!",
    MessageBoxButtons.OK,
    MessageBoxIcon.Exclamation
    );

    编译语句:

    C:\test>jsc /t:winexe consumer.js

    双击新生成的 consumer.exe 文件,哈哈,是不是很有成就感!

    从上面的例子可以看到 JScript 的潜力无限,没有做不到,只有想不到。

    扩展阅读:

    原文:http://www.planabc.net/2011/06/04/use_jscript_to_create_windows_apps_and_libraries/

  • 相关阅读:
    surfer插值方法及提取插值结果 转载
    Surfer的grd数据转换成gmt可用的grd数据方法
    Appium+Python3+ Android入门
    Flask入门的第一个项目
    测试报告模板
    火狐浏览器之伪造IP地址
    获取apk的签名信息
    初识kibana
    Fiddler模拟post四种请求数据
    Python-正则表达式
  • 原文地址:https://www.cnblogs.com/mybest/p/2104258.html
Copyright © 2011-2022 走看看