我用VS2005 编写了一个ATL activex控件, 并且写了一个测试脚本。这个控件是由原来的一个BCB写的控件改过来的。原来那个没有问题,但是现在这个用VC写的,却在IE下无法加载成功。
具体的情况是这样的,我直接用IE打开网页,就是直接在文件目录里打开,比如C:\TestCtrl.html,看见IE8中的那个开发人员工具中,控件的object项是有的,就是我的控间接口类,也就是说这种情况下是正常的。
但是,我用IE去访问本地的apache目录下的测试网页,就是http://127.0.0.1/TestCtrl.html,那个object项是NULL,结果调用接口时IE就报错,说是对象不支持此方法或属性以下是我的测试网页:
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript">
function TestUpload()
{
UploadBlob.SetParam("URLPath","http://10.0.95.5/");
}
</script>
</head>
<H1> This is a test page for UploadCtrl.</H1><p>
Version 1.0. Data: 2010/9/30
<HR><center><P>
<body>
<OBJECT classid="CLSID:34496F16-FE1B-4B3F-82AB-91D7B6782E05" codeBase="http://127.0.0.1/UploadCtrl.cab#Version=1,0,0,1" id="UploadBlob"></OBJECT></br>
</br>
<button onclick="TestUpload()">上传大附件</button>
</body></HTML>还有inf文件:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0 [Add.Code]
UploadCtrl.dll=UploadCtrl.dll[UploadCtrl.dll]
file-win32-x86=thiscab
clsid={34496F16-FE1B-4B3F-82AB-91D7B6782E05}
FileVersion=1,0,0,1
RegisterServer=yes; end of INF file
还望各位高手指点迷津
具体的情况是这样的,我直接用IE打开网页,就是直接在文件目录里打开,比如C:\TestCtrl.html,看见IE8中的那个开发人员工具中,控件的object项是有的,就是我的控间接口类,也就是说这种情况下是正常的。
但是,我用IE去访问本地的apache目录下的测试网页,就是http://127.0.0.1/TestCtrl.html,那个object项是NULL,结果调用接口时IE就报错,说是对象不支持此方法或属性以下是我的测试网页:
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript">
function TestUpload()
{
UploadBlob.SetParam("URLPath","http://10.0.95.5/");
}
</script>
</head>
<H1> This is a test page for UploadCtrl.</H1><p>
Version 1.0. Data: 2010/9/30
<HR><center><P>
<body>
<OBJECT classid="CLSID:34496F16-FE1B-4B3F-82AB-91D7B6782E05" codeBase="http://127.0.0.1/UploadCtrl.cab#Version=1,0,0,1" id="UploadBlob"></OBJECT></br>
</br>
<button onclick="TestUpload()">上传大附件</button>
</body></HTML>还有inf文件:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0 [Add.Code]
UploadCtrl.dll=UploadCtrl.dll[UploadCtrl.dll]
file-win32-x86=thiscab
clsid={34496F16-FE1B-4B3F-82AB-91D7B6782E05}
FileVersion=1,0,0,1
RegisterServer=yes; end of INF file
还望各位高手指点迷津
解决方案 »
- 怎么用CSerialPort类实现一次读取多个字符?
- 对一个同一个socket,wsarecv 后, 再wsasend
- vc 动态生成多个对话框
- 都是起定时的作用,两者会有冲突吗?高手请进
- 请教:VC编译时生成EXE文件时,自动加入校验值
- VC程序员之无法选择的命运
- UNICODE讨论?欢迎参加!
- 调查:你平均每天睡几个小时
- 我想在对话框中显示表格,请问如何显示,并且表格中要可是输入的
- 指针使用的问题
- COM组件 VS2005怎么实现断点调试
- Debug Assertion Failed!File:f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\bardlg.cpp
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript">
function TestUpload()
{
UploadBlob.SetParam("URLPath","http://10.0.95.5/");
}
function test1()
{
try {
//这是从代码中创建ActiveX的实例
var myobject = new ActiveXObject("UploadCtrl.Upload");
if (myobject) {
myobject.SetParam("123456", "123456");
}
else
alert('插件实例化失败。。');
}
catch(e)
{
alert(e.message);
} }
</script>
</head>
<H1> This is a test page for UploadCtrl.</H1><p>
Version 1.0. Data: 2010/9/30
<HR><center><P>
<body>
<OBJECT classid="CLSID:34496F16-FE1B-4B3F-82AB-91D7B6782E05" codeBase="http://127.0.0.1/UploadCtrl.cab#Version=1,0,0,1" id="UploadBlob"></OBJECT></br>
</br>
<button onclick="test1()">上传大附件</button>
</body></HTML>这是为什么呢?难道object标签没有起作用?
就是装不上,CAB问题,这时你单独运行那个网页文件也是不行的。