网页调用OCX
之前写过一个DLL,是在客户端进行调用的,后来环境发生更改,需要在网页里调用这个DLL,把它里面的函数写到了OCX里面,
比如:STDAPI __export DllTest(void)
{
Application->MessageBoxA("成功调用","信息",MB_OK);
return 1;
}
STDAPI __export DllAdd(int i,int j)
{
int Sum = i+j ;
return Sum;
}
然后在网页里面编写上
<object id="Dll2Ocx" classid="clsid:63B72107-0ABA-4436-873E-6D7E714422C1" codebase="E:\\项目\\ActiveX\\Dll2OcxTest\\bin\\Dll2Ocx.ocx" style="width:0px;height:0px" >
</object>
<script language="JavaScript" type="text/javascript">
var obj = document.getElementById("Dll2Ocx");
function DllTest()
{
alert("1111");
obj.TestDll();
}
function DllAdd()
{
alert("DllAdd");
obj.TestDll();
}
</script>
<td>
<input type = "button" name="OcxTest" value="测试Ocx" onclick = "DllTest();" /></td>
<td>
<input type = "button" name="DllAdd" value="DllAdd" onclick = "return DllAdd();" /></td>
打开网页是能够见到那些个按钮,点击也能够弹出调试信息,但是后面的语句就没有执行了,能帮忙分析下吗。
[解决办法]
你控件里写的是DllTest(),而网页里写的是TestDll()......这样肯定不能调用成功啊。
不知道你现在写的是不是你的源程序。
[解决办法]
Application->MessageBoxA("成功调用","信息",MB_OK);
改成:
::MessageBox(GetActiveWindow(),"成功调用","信息",MB_OK);
试试
[解决办法]
其实我一直想说,codeBase里可以用含有中文的路径吗?
[解决办法]
不如打开你的BCB在ocx设置断点,设置host调试。