javascript 如何调用普通dll

nx427 2010-03-30 11:37:43
现在我想在javascript中调用用VC++写的dll库 并能使用里面的函数
先问下能实现嘛,小弟是菜鸟 ···
...全文
1009 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
nx427 2010-04-02
  • 打赏
  • 举报
回复
结账 给分
fengjia123123123 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 nx427 的回复:]

我需要读底层寄存器中的值,那我想问下 用activex控件能实现嘛
[/Quote]

这个真没有~~

呵呵,这个不知道了,不了解那方面的~~
nx427 2010-04-01
  • 打赏
  • 举报
回复
我需要读底层寄存器中的值,那我想问下 用activex控件能实现嘛
sjkof 2010-03-31
  • 打赏
  • 举报
回复
ajax取回数组数据,采用json表达方式,然后client端使用就行
fengjia123123123 2010-03-31
  • 打赏
  • 举报
回复
[{C_State:"Left_spinning_dancer.gif"},{H_State:"Left_spinning_dancer.gif"}]
这样
nx427 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 cgtianyi 的回复:]
修改一下,上面写错了,马虎啊,不好意思。请将最后两句改成:


JScript code

document.getElementById("C_State").src=imgs[0].img1Src;
document.getElementById("C_State").src=imgs[1].img2Src;
[/Quote]
想问下 我用 response.write()返回服务器的值 要如何返回才能返回一个数组呐 像这样嘛 ?
response.write({C_State:"Left_spinning_dancer.gif"},{H_State:"Left_spinning_dancer.gif"})
fengjia123123123 2010-03-31
  • 打赏
  • 举报
回复
修改一下,上面写错了,马虎啊,不好意思。请将最后两句改成:


document.getElementById("C_State").src=imgs[0].img1Src;
document.getElementById("C_State").src=imgs[1].img2Src;
fengjia123123123 2010-03-31
  • 打赏
  • 举报
回复
function stateChanged()
{
if(xmlHttp.readyState==4)
{
document.getElementById("C_State").src=xmlHttp.responseText;
//这里再加上另外一个图片的操作就可以了,例如
var imgsSrcStr = xmlHttp.responseText;

/*
你可以在服务器端返回一个json格式的数据(其实就是js对象的数组)字符串,
包含两个图片要刷新的src
[{img1Src:"your img1's src"},{img2Src:"your img2's src"}]然后在客户端对这个串
eval()解析出来两个src就好了例如 var imgs = eval(imgsSrcStr),这样会得到一个数组
用imgs.img1Src和imgs.img2Src就可以得到两个图片的src了
最后一步马上就完成了,吼吼~~,
*/

//将两个src分别赋值到节点上,终于ok了。
document.getElementById("C_State").src=imgs.img1Src;
document.getElementById("C_State").src=imgs.img2Src;
}
}


上面的代码希望对你有帮助,谢谢~
fengjia123123123 2010-03-31
  • 打赏
  • 举报
回复
你没仔细看我的回贴啊,

if(xmlHttp.readyState==4)
{
var HC_Alarm = xmlHttp.responseText;
//将上面这句话改成下面的,我在第一次回帖的时候已经把思路说的很清楚了。
var HC_Alarm = eval(xmlHttp.responseText);
document.getElementById("H_State").src=HC_Alarm[0].H_State;
document.getElementById("C_State").src=HC_Alarm[1].C_State;
}
nx427 2010-03-31
  • 打赏
  • 举报
回复
改成给单值 就没问题

<%
response.expires=-1
Msg=request.querystring("q")
if Msg="HC_Alarm" then
response.write("/Main/green.bmp")
else
response.write("/Main/red.bmp")
endif
%>
if(xmlHttp.readyState==4)
{
document.getElementById("HC_Alarm").src=xmlHttp.responseText;
}

这样就没问题
nx427 2010-03-31
  • 打赏
  • 举报
回复

if(xmlHttp.readyState==4)
{
var HC_Alarm = xmlHttp.responseText;
document.getElementById("H_State").src=HC_Alarm[0].H_State;
document.getElementById("C_State").src=HC_Alarm[1].C_State;
}
就是不出值
fengjia123123123 2010-03-31
  • 打赏
  • 举报
回复
没问题啊,不能运行吗?
nx427 2010-03-31
  • 打赏
  • 举报
回复

<%
response.expires=-1
Msg=request.querystring("q")
if Msg="HC_Alarm" then
response.write([{C_State:"/Main/green.bmp"},{H_State:"/Main/green.bmp"}])
else
response.write([{C_State:"/Main/red.bmp"},{H_State:"/Main/red.bmp"}])
endif
%>

这样传值对嘛 ?
unicode 2010-03-30
  • 打赏
  • 举报
回复
楼主这个用法很奇怪,你怎么能保证客户的机器上一定会有那个dll呢
fengjia123123123 2010-03-30
  • 打赏
  • 举报
回复
ajax可以调用后台服务函数,具体能不能调你的“VC++写的dll库”,我不太熟悉vs++,不过你可以试一下,谢谢!
xshf12345 2010-03-30
  • 打赏
  • 举报
回复
你无法在JavaScript中调用普通DLL,但可以使用new ActiveXObject调用ActiveX DLL,如:
<script>
set o = CreateObject( "WScript.Shell" )
o.Run( "command.com /c mkdir " + "c:\NewDir")
</script>
hebeiliuzhao0909 2010-03-30
  • 打赏
  • 举报
回复
做个ocx或者activex控件
nx427 2010-03-30
  • 打赏
  • 举报
回复

<html>
<head><title>E1_2</title>
<script type="text/javascript">
var xmlHttp
function showHint()
{
xmlHttp=GetXmlHttpObject()
if(xmlHttp==null)
{
alert ("您的浏览器不支持AJAX!");
return;
}
var C_url="gethint.asp";
C_url=C_url+"?q="+"CAlarm_State";
C_url=C_url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",C_url,true);
xmlHttp.send(null);
var t=setTimeout("GetState()",1000)
}
function stateChanged()
{
if(xmlHttp.readyState==4)
{
document.getElementById("C_State").src=xmlHttp.responseText;
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
xmlHttp=new XMLHttpRequest();
}
catch(e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
</script>
</head>
<body onload=showHint()>
<form method=POST action=>
<table border="0" width="200" cellspacing="4" cellpadding="4">
<tr>
<td align="center" width="100"><font size="5">MTP-001</font></td>
<td> </td>
</tr>
<tr>
<td align="center" width="100">
<img border="0" id="H_State" width="24" height="24">     
<img border="0" id="C_State" width="24" height="24"></td>
<td>
<p align="right">  <input type="submit" value=RUN name=run> 
<input type="submit" value=STOP name=stop></td>
</tr>
<tr>
<td align="center" width="100"><b><font size="5">H    C</font></b></td>
<td align="center"><input type="submit" value=CLR name=clr></td>
</tr>
</table>
</form>
</html>

这里我想刷新是链接的两个图片 现在只能刷新一个 能实现刷新两个嘛 ?
nx427 2010-03-30
  • 打赏
  • 举报
回复
还是说下的我现在的情况吧
在wince下搭建了一个web server 需要能用PC 机进行远程设置 应用软件我这里就使用的是ISAPI
搭建完成之后发现数据量比较大,因为我这里每秒刷新多个页面。
后来想到了只刷新数据来减少数据流量,ISAPI中我使用的是Html,想刷新数据看到网上有些介绍
javascript + Ajax + Asp
小弟是做底层的 以前也没接触过这些想在javascript中直接读取数据,看来可能性不大
现在使用html + javascript + Ajax + Asp 这种机制发现每次从服务器上只能取一种数据,我的一个页面最少的是需要更新5个数据以上 高手能给指点下嘛
unicode 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nx427 的回复:]

引用 3 楼 unicode 的回复:
楼主这个用法很奇怪,你怎么能保证客户的机器上一定会有那个dll呢

我调用的是服务器上的 ⊙﹏⊙b汗 难道不能能调用 ?
[/Quote]

js是在客户的浏览器里运行的。如果调用服务器上的,可以直接用c#啊
加载更多回复(3)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧