网页调用OCX

科多兽 2010-11-05 12:09:28
之前写过一个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>

打开网页是能够见到那些个按钮,点击也能够弹出调试信息,但是后面的语句就没有执行了,能帮忙分析下吗。
...全文
266 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
科多兽 2010-12-25
  • 打赏
  • 举报
回复
之前是我建立的工程有问题,然后我重新新建了一个工程,可以进行正常的调试。
yr1202 2010-12-21
  • 打赏
  • 举报
回复
直接用mfc的ocx向导生成 很简单
我不懂电脑 2010-12-21
  • 打赏
  • 举报
回复
不如打开你的BCB在ocx设置断点,设置host调试。
科多兽 2010-11-27
  • 打赏
  • 举报
回复
这几天去外面出差了,这个事情一直没有解决掉.楼上的兄弟,在bcb的tlb中建立了声明了接口,并且在接口中声明了函数,那现实部分应该要怎么写呢,有例子给个吧?
husolinglal 2010-11-06
  • 打赏
  • 举报
回复
一般控件对外是要有接口的,我看了下,你的控件的对外接口函数好像不太对头,接口应该不是用
STDAPI __export来标明的。
你应该在bcb的tlb中建立对外接口,然后再实现接口代码。
科多兽 2010-11-05
  • 打赏
  • 举报
回复
他那边是不是刚做啊?妖哥
ccrun.com 2010-11-05
  • 打赏
  • 举报
回复
这问题交给zzbinfo来回答.
科多兽 2010-11-05
  • 打赏
  • 举报
回复
是不是OCX工程内一定要建立ActiveForm的窗体啊?
科多兽 2010-11-05
  • 打赏
  • 举报
回复
跟是否含有中文的路径没有关系,我现在用相对路径,还是一样,在OCX的入口处能打印信息,但是函数内没有反应。
husolinglal 2010-11-05
  • 打赏
  • 举报
回复
其实我一直想说,codeBase里可以用含有中文的路径吗?
科多兽 2010-11-05
  • 打赏
  • 举报
回复
这样不行,程序能够运行,但一直在加载OCX,鼠标显示繁忙。
僵哥 2010-11-05
  • 打赏
  • 举报
回复
Application->MessageBoxA("成功调用","信息",MB_OK);
改成:
::MessageBox(GetActiveWindow(),"成功调用","信息",MB_OK);
试试
科多兽 2010-11-05
  • 打赏
  • 举报
回复
恩,是我的源代码,之前是我粗心,我现在改回来了,页面函数实现部分
function DllTest()
{
alert("1111");
obj.DllTest();
alert("2222");
}
能弹出第一个信息,但是第2部分就没有了,还是有错误.
zzbinfo 不要谦虚哦.
husolinglal 2010-11-05
  • 打赏
  • 举报
回复
你控件里写的是DllTest(),而网页里写的是TestDll()......这样肯定不能调用成功啊。

不知道你现在写的是不是你的源程序。
银点 2010-11-05
  • 打赏
  • 举报
回复
我来等,看谁来回答
zzbinfo 2010-11-05
  • 打赏
  • 举报
回复
楼主不要被老妖迷惑了,他那么说只是我是伪高手而已

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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