‘壹’ 如何将JS文件作为嵌入资源放在DLL中
你应该说的是使用服务器控件开发, 使类继承control接口, 右击js文件属性窗口 生成操作设置为"嵌入资源"; 在namespace上设置[assembly: System.Web.UI.WebResource("NAMESPACE名称.b.js", "application/x-javascript")],
‘贰’ 如何在node-webkit中调用dll
1 安装nodejs,在http://nodejs.org/download/上下载32位的.msi文件,直接安装,如下所示(版本号为0.10.26):
将安装后的目录添加的环境变量中,如:D:\Program Files\nodejs (主要目的是使该目录下的node.exe可以在命令行中运行)。2 安装python2.7版本,并设置环境变量。3 下载node-webkit压缩文件,版本为0.8.4 。4 安装node-gyp和nw-gyp ,这个node-gyp将c文件编译成nodejs的包的编译工具,nw-gyp是将c文件编译成node-WebKit的包的编译工具,具体安装方法如下:
进入cmd命令模式,输入npm install node-gyp 即可
再次输入 npm install nw-gyp即可5 安装ffi和 ref模块,并重新编译成node-webkit可用的包,具体如下:
在命令行模式中输入:
npm install ffi
npm installref
这样会在本用户目录下生成node_moles文件夹,里面内容如下:
命令行模式进入到此目录下
下面通过nw-gyp来将ffi和ref模块重新编译。
由于ffi中包含ref模块,所以要先将ffi模块中的ref先编译,然后再将ffi编译,如下:
注意:编译命令一定要在含有package.json文件的目录下运行,命令后的—target=0.8.4是针对node-webkit的版本的,如果不是这个版本,需要改成自己的版本。最后将ref模块编译下即可。6 编辑项目的package.json文件,此文件主要是node-webkit调用你的应用的配置文件,需要在里面添加
"webkit": {
"plugin": true
} 此选项说明你的应用需要调用第三方包,也就是node_moles/ 目录下的ffi和ref包,一个例子如下:7下面通过一个例子来说明如何在js中调用dll :具体ref模块怎么用,可以参考这个 http://tootallnate.github.io/ref/#exports-refType8 最后将你的应用包括node_moles和你需要调用的dll一起压缩打包,压缩方式必须是z7(通过好压或其他压缩软件,只要后缀名是.zip的应该都可以),压缩后的文件后缀名必须是.nw,然后将该文件拷贝到node-webkit的目录下,拖进nw.exe即可执行。9 注意: 由于ffi模块是为C语言的dll包服务的,所以你自己编写的dll必须要有 extern “C” 来修饰 。
‘叁’ 如何把.js文件编译成dll供页面调用
其实js本来就是前台脚本,把js文件编译成dll供页面调用也可以实行
方法:
1.在解决方案中添加一个新项目(类库:JSControl)
2.在新项目中添加要用的JS脚本(JScript1.js)
脚本的内容:
function testAlert() {
alert("Hello!");
}
3. 改变JScript1.js的属性,Build Action为Embedded Resource(嵌入的资源)
4.在JSControl项目的AssemblyInfo.cs文件添加一行:(注意
JSControl.JScript1.js,JSControl是js所在项目的命名空间)
//定义组件内的内嵌资源的元数据属性
[assembly: System.Web.UI.WebResource("JSControl.JScript1.js", "application/x-javascript")]
注意:这边要增加个引用:System.Web.dll
5. 项目中增加一个注册客户端脚本的类:
‘肆’ dll文件用什么编辑器进行查看和编辑
dll文件是系统的动态链接库文件,可以用一些十六位春文本编辑器打开,如UltraEdit
修改DLL文件的方法
1、下载DLL文件修改工具EXESCOPE6.0-6.3或6.4工具
2、获取Browselc.dll、Shdoclc.dll、Shell32.dll和Cryptui.dll这几个链接文件。在找这几个文件时,最好将其他机器的硬盘,挂接在本机中,然后用本机的操作系统启动并复制这几个文件。
3、在修改DLL文件的时候,打开该键值,在右面的对话框中将所要修改的键值禁用即可,不要删除,以备日后恢复
‘伍’ 求助高手:DLL文件是用什么编辑器编辑的,能用什么软件打开
UltraEdit 等
一套极棒的文字、Hex、ASCII 码编辑器,可以取代记事本,内建英文单字检查、C++及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。其并且附有 HTML Tag 颜色显示、搜寻取代以及无限制的还原功能,一般大家常会用其来修改EXE或DLL文件。
http://www.skycn.com/soft/2248.html
‘陆’ js里怎样调用c#写的dll
js只支持Activex Dll(所谓的com组件).在C#里如下面的方法写.
然后js里注册该控件并调用.
里面有两个方法
Encrypt(string pToEncrypt,string sKey) //加密
Decrypt(string pToDecrypt,string sKey) //解密
然后你这样写代码:
using System;
using System.Runtime.InteropServices;
namespace 名称空间
{
// 首先建立接口,这个是Com必须使用的
[Guid("61BB24CB-4C2C-40f8-9E13-1AC5E558D56A")]
public interface IEncrypt
{
string Encrypt(string pToEncrypt,string sKey);
string Decrypt(string pToDecrypt,string sKey);
}
// 写接口的实现
[Guid("CB52E990-185E-4448-A7E8-C88ECAD563AB")]
public class 类名称 : IEncrypt
{
public string Encrypt(string pToEncrypt,string sKey)
{
// 复制FAQ加密代码
}
public string Decrypt(string pToDecrypt,string sKey)
{
// 复制FAQ解密代码
}
}
}
然后用vs.net打包成.dll类库文件,假设名称为MyEncrypt.dll
然后用如下工具
regasm MyEnCrypt.dll /tlb:MyEncrypt.tlb
这个.tlb文件就是类型库,可以由vb6和vc++6引用。
注意上面的guid是使用vs.net工具菜单里面的创建guid工具生成的。
还要注意,vs.net自动生成的assemblyinfo.cs文件中必须添加强名称和版本号,因为Com组件需要版本号,不要改动版本号,也不要用vs.net自动的1.*这样的版本号,最好使用
1.1.1.1这样的固定版本,而且必须一次添加,不能多次添加。
regasm后怎样在js里调用?
用你的例子是这样?
var ss = new ActiveXObject("MyEncrypt.类名称");
JS不可以调用普通的Dll动态链接库,但你可以使用new ActiveXObject调用ActiveX DLL,如:
<script>
set z_shell= CreateObject( "WScript.Shell" )
z_shell.Run( "command.com /c mkdir " + "c:\NewDir")
</script>
‘柒’ B/S模式下,如何通过js调用dll文件
实现js调用dll中的方法也是ajax中一种实现,首先新新建类库,类库名字叫ajax好了,然后新建process.cs文件,代码如下:
using System;
using System.Web;
namespace ajax
{
public class process:IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.CacheControl = "no-cache";
context.Response.Write(DateTime.Now);
}
}
}
然后编译为ajax.dll
接着在web.config中添加
<configuration>
//IIS6
<system.web>
<httpHandlers>
<add verb="*" type="ajax.process,ajax" path="ajax.aspx"/>
</httpHandlers>
</system.web>
//IIS7
<system.webServer>
<handlers>
<add name="ajax" verb="*" type="ajax.process,ajax" path="ajax.aspx"/>
</handlers>
</system.webServer>
</configuration>
注意IIS6还要设.aspx的映射不检查文件是否存在。
最后创建test.htm文件:
<html>
<head>
<title>调用DLL中的处理</title>
<script type="text/javascript">
function getTime() {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "/ajax.aspx", false);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
alert(xmlHttp.responseText);
}
}
xmlHttp.send(null);
}
</script>
</head>
<body>
<input type="button" value="getTime" onclick="getTime()" />
</body>
</html>
‘捌’ 怎么样将js封装进DLL里面
你应该说的是使用服务器控件开发, 使类继承control接口, 右击js文件属性窗口 生成操作设置为"嵌入资源"; 在namespace上设置[assembly: System.Web.UI.WebResource("NAMESPACE名称.b.js", "application/x-javascript")],详细情况请看一下参考资料.
‘玖’ 如何把js文件编译成dll供页面调用
1. 在解决方案中添加一个项目:JSControl
2. 在这个项目添加一个js文件(JScript1.js)
‘拾’ node.js如何调用dll
不同的编译器造出的dll格式是不一样的,你不太容易让node读取任意的dll。
但是你可以按照node指定的方式写C程序,用NODE_MODULE来expose一个init函数,然后node可以读取这样的dll或者so文件。