我用网上下的一个例子,VC++深入详解的ocx例子,都已经调用成功了。
但我调用公司给我的ocx,就是不成功。我是在注册表里搜我的ocx文件,然后拿那个文件夹节点上的值作为classid的。现在的问题是,我觉得加载是成功的,因为没有显示小红叉,但我想用调用ocx的方法,左下脚脚本错误,提示对象不支持属性或方法。
这个ocx肯定没什么问题的,在别的桌面程序中一直在用。这个方法肯定也是有的。我的js调用代码如下:
var o3DCtrl = document.getElementById("CITY3DCTRL1");
//alert("E:\\wujing\\data\\22.ive");
alert(o3DCtrl);
var a = o3DCtrl.LoadCITY3DFile("E:\\wujing\\data\\22.ive");
现在的问题是,这个ocx控件还依赖了很多别的dll,它们都和ocx在同目录下,但不在system32下面。这个ocx肯定也注册过了。
我不知道是不是这个原因造成的ocx方法调用不成功?
还是我的classid写错了?(因为classid是从注册表中找的,不是从程序中找的,我不知道这样找的对不对)
大家帮忙看看。
但我调用公司给我的ocx,就是不成功。我是在注册表里搜我的ocx文件,然后拿那个文件夹节点上的值作为classid的。现在的问题是,我觉得加载是成功的,因为没有显示小红叉,但我想用调用ocx的方法,左下脚脚本错误,提示对象不支持属性或方法。
这个ocx肯定没什么问题的,在别的桌面程序中一直在用。这个方法肯定也是有的。我的js调用代码如下:
var o3DCtrl = document.getElementById("CITY3DCTRL1");
//alert("E:\\wujing\\data\\22.ive");
alert(o3DCtrl);
var a = o3DCtrl.LoadCITY3DFile("E:\\wujing\\data\\22.ive");
现在的问题是,这个ocx控件还依赖了很多别的dll,它们都和ocx在同目录下,但不在system32下面。这个ocx肯定也注册过了。
我不知道是不是这个原因造成的ocx方法调用不成功?
还是我的classid写错了?(因为classid是从注册表中找的,不是从程序中找的,我不知道这样找的对不对)
大家帮忙看看。
我是这么想的,桌面程序需要把生成路径设到这个ocx目录下,很多它依赖的dll也在这个目录。但网页调用ocx时,怎么去搜索它依赖的dll呢,会到ocx同目录下面去找吗?还是只在system32下面找?
<object id="xxxx" visible="false" classid="CLSID:1C62CC1F-43BC-4N04-B9CA-E64A197C5CCD" type="application/x-oleobject" width="0" height="0"></object>
<script language="javascript">
function FUN() {
xxxx.INFO();//ocx可以调用的函数
}
</script>
问题就是我调用别的ocx也都成功了,classid我是通过注册表找的,应该也没错,因为我用其他ocx测试的时候,也通过注册表找过他们的classid,和程序里找的是对的上号的。
有没有可能一个ocx本身的问题造成它只能在桌面应用程序中调用,不能在网页中调用?