现在我想在javascript中调用用VC++写的dll库  并能使用里面的函数 
先问下能实现嘛,小弟是菜鸟 ···

解决方案 »

  1.   

    你无法在JavaScript中调用普通DLL,但可以使用new ActiveXObject调用ActiveX DLL,如: 
        <script> 
        set o = CreateObject( "WScript.Shell" ) 
         o.Run( "command.com /c mkdir " + "c:\NewDir") 
        </script> 
      

  2.   

    ajax可以调用后台服务函数,具体能不能调你的“VC++写的dll库”,我不太熟悉vs++,不过你可以试一下,谢谢!
      

  3.   

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

  4.   

    ajax要如何调用那,我也是就这2天看了下Ajax具体的能给详细说下嘛
      

  5.   


    js是在客户的浏览器里运行的。如果调用服务器上的,可以直接用c#啊
      

  6.   

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

  7.   


    <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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <img border="0" id="C_State" width="24" height="24"></td>
    <td>
    <p align="right">&nbsp; <input type="submit" value=RUN name=run>&nbsp;
    <input type="submit" value=STOP name=stop></td>
    </tr>
    <tr>
    <td align="center" width="100"><b><font size="5">H&nbsp;&nbsp;&nbsp; C</font></b></td>
    <td align="center"><input type="submit" value=CLR name=clr></td>
    </tr>
    </table>
    </form>
    </html>这里我想刷新是链接的两个图片  现在只能刷新一个 能实现刷新两个嘛 ?
      

  8.   

    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;
        }
    }上面的代码希望对你有帮助,谢谢~
      

  9.   

    修改一下,上面写错了,马虎啊,不好意思。请将最后两句改成:
            document.getElementById("C_State").src=imgs[0].img1Src;
            document.getElementById("C_State").src=imgs[1].img2Src;
      

  10.   

     想问下 我用 response.write()返回服务器的值 要如何返回才能返回一个数组呐 像这样嘛 ?
    response.write({C_State:"Left_spinning_dancer.gif"},{H_State:"Left_spinning_dancer.gif"})
      

  11.   

    [{C_State:"Left_spinning_dancer.gif"},{H_State:"Left_spinning_dancer.gif"}]这样
      

  12.   

    ajax取回数组数据,采用json表达方式,然后client端使用就行
      

  13.   


    <%
    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
    %>这样传值对嘛 ?
      

  14.   


    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;       
        }
      就是不出值
      

  15.   

    改成给单值  就没问题 <%
    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;
    }这样就没问题
      

  16.   

    你没仔细看我的回贴啊,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;       
        }
      

  17.   

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