mfc随记:基于vs2010创建MFC ActiveX控件并测试
一.新建一个空项目
以管理员打开vs2010,选择新建一个mfc activeX控件,填写项目名称和路径,其他无需修改,直接默认一直下一步即可
二. 添加测试方法
- 在底部tab栏切换到类视图,右键添加方法
- 按向导添加方法,比如myAdd,两个参数和一个返回值
- 点击下一步,按默认即可
- 编写逻辑,切换到代码页面,编写我们的代码
DOUBLE CmyocxCtrl::myAdd(DOUBLE n1, DOUBLE n2)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// TODO: 在此添加调度处理程序代码
return n1+n2;
}
- 右键项目重新生成解决方案,注意如果不是管理员打开,可能失败,因为无权限注册
可以在项目目录下生成的ocx文件
三.测试
1.测试方法1,使用IE浏览器测试
打开idl文件,复制我们类的UUID
在IE里面调用
<OBJECT id="MyOcxDemo" classid="clsid:76FB4C27-5AE7-419F-BF64-AF1271FEF448" width="0" height="0"></OBJECT>
测试代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ocx调用演示</title>
<script>
function testOCX()
{
var myOcx=document.getElementById("MyOcxDemo");
if(myOcx){
alert("myAdd(1,2)="+myOcx.myAdd(1,2));
}
}
</script>
</head>
<body>
<OBJECT id="MyOcxDemo" classid="clsid:76FB4C27-5AE7-419F-BF64-AF1271FEF448" width="0" height="0"></OBJECT>
<button type="button" onclick="testOCX()">演示</button>
</body>
</html>
测试结果
2.使用TSTCON32.exe测试
2.1 打开软件,选择Edit->Insert new contorl,选中控件myocx control
2.2 选择Control->Invoke methonds
在弹窗里填写测试参数测试
四.打断点调试
1.右键项目属性,在调试的命令栏填上TSTCON32.exe的路径
2. 在我们的代码里面打上断点,直接运行调试按钮,则会弹出TSTCON32界面,按上面测试方法测试,则运行到断点时会自动停住