本文目录一览:
js如何调用c语言写的api
包含api的.h文件,然后直接调用就可以了,比如winsock.h,可以调用recv等函数,也可以在函数前面加::
答案补充
HWND hWnd = ::FindWindow(sClassName, sWindowName);//传入类明到sClassName,窗口名sWindowName,否则传入NULL
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
如何实现 js 和 c++ 的互相调用
脚本执行的基础是WEB控件,
那么C++在WINDOWS下运行可以装入WEB控件实现脚本调用。
下面是一段引用某位博主的代码可以参考一下。
// vcJscript.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#import "C:/windows/system32/msscript.ocx" // msscript.ocx
using namespace MSScriptControl;
#include fstream
#include string
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr = CoInitialize(NULL); //使用一个变量初始化COM设置,单线程运行
IScriptControlPtr pScriptControl(__uuidof(ScriptControl)); //初始化脚本控件
pScriptControl-Language = "JavaScript"; //设置语言
pScriptControl-AllowUI = TRUE;//设置显示
fstream file;//文件流用于读出JS代码
file.open( "test.js" );
string strFileContent, strTemp;
char szTemp[1024]="";
do
{
file.read(szTemp, 1024);
strFileContent.append( szTemp );//拼接JS文件
memset( szTemp, 0, 1024 );
}
while ( !file.fail() );
file.close();
pScriptControl-AddCode(strFileContent.c_str());//向控件加入代码
VARIANT A = pScriptControl-Eval("main(4);"); //获取返回值
int iRet = A.intVal;
return 0;
}
js调用ocx控件
1.对于64位机器,将厂商提供的.dll文件拷贝到 C:\Windows\System32 目录下,将.ocx文件拷贝到C:\Windows\SysWOW64 目录下。
2.注册*.ocx文件。管理员身份。在“运行”中直接输入“regsvr32 c:\Windows\SysWOW64\ZT_DIT.ocx”.将其注册成功,如果注册失败,有可能是没有取得管理员权限,根据报错内容在网上搜索解决办法。
3.注册成功后,需要取得注册的.ocx的classid,便于在页面中引用。w+r(win10),打开运行。输入regedit,打开注册表,查找你注册的ocx
右键(复制项名称)将复制的粘贴到写字板,就知道clsid了, 取得clsid后写入带页面中,:
eg: OBJECT id="ZTIDC" style="width:400px;height:500" type="application/x-oleobject" classid="CLSID:2BC73BDF-3532-441D-9F50-00649C2ADB85"
/OBJECT
这样,在ie中就可以调用了!但是,在火狐和谷歌调用不了,甚至连界面都出不来。
在网上下载了
将axhost.r39.xpi拖入到火狐浏览器,结果报:此附加组件无法安装。。。。经过查资料,要更改火狐的一些设置,地址栏键入:about:config 修改为false
请问,大家谁有最简单的js调用网页的方法?要最简单的!
一、第一种情况:
1.后台方法:
protected string CsharpVoid(string strCC)
{
return strCC;
}
2.javascript 调用
script language="javascript"
var s = "%=CsharpVoid("")%";
document.write(s);
/script
第二种情况:
1.后代码:
protected void CsharpVoid()
{
string strCC = "";
Response.Write(strCC);
}
2.调用方法:CsharpVoid()
script language="javascript"
document.write("%CsharpVoid();%");
/script
第三种方法:
你可在页面中放一个按钮,把它设置为不可见style="display:none",然后,用脚本让此按钮点击
document.all("button1").click();
在此按钮的C#后台中写事件代码,这就是最简单的脚本调用C#方法.
二、我要的结果是当我去点按钮时,在去带参数去触发后台方法.怎么样写高手指点
HTML code:
html xmlns=""
head runat="server"
title/title
script type="text/javascript"
function Say(strValue) {
PageMethods.SayH(strValue, ShowMsg);
}
function ShowMsg(result) {
var sResult = result.toString();
document.getElementById("rMsg").innerHTML = sResult;
}
/script
/head
body
form id="form1" runat="server"
div
asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" /
input id="Button1" type="button" value="点击我" onclick="Say('你是猪');" /
/div
div id="rMsg"
/div
/form
/body
/html
C# code:
[System.Web.Services.WebMethod]
public static string SayH(string name)
{
return string.Format("welcome to site , !", name);
}
好人有好报 希望能采纳 嘿嘿!!!