用Add Component and Control加入一个ocx控件时VC都做了些什么?

ymxl76 2003-09-11 11:54:23
我现在用Add Component and Control加入一个ocx控件,但总提示我:
The ActiveX control is not registerd properly,or its type library version number is incorrect.Try registering the control by removing and importing it in the Component Gallery.这是为什么?
注:我的控件可以在测试容器中正常使用。而且我在VC中用Add Class from a type library...也可以创建ocx的包装类。
...全文
175 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
天限天空 2003-09-12
  • 打赏
  • 举报
回复
遇到过相同的问题,
重启一次就ok了

系统大了,有些莫名其妙的问题
ymxl76 2003-09-12
  • 打赏
  • 举报
回复
我在建立项目时就已经选择了支持OLE Containerv了呀。
ymxl76 2003-09-11
  • 打赏
  • 举报
回复
现场给分。
opentuxedo 2003-09-11
  • 打赏
  • 举报
回复
是不是你的项目不支持OLE Container呀?AfxInitOleContainer了吗?
ymxl76 2003-09-11
  • 打赏
  • 举报
回复
我开始怀疑是没有把类型库信息编译进去。但后来发现可以分析到所有类型信息。
ymxl76 2003-09-11
  • 打赏
  • 举报
回复
已经注册成功了。我的Container都已经可以成功地加载ocx了。
我是用regsvr32注册的。
而且我已经查看过注册表了,绝对是成功的。
gzshd 2003-09-11
  • 打赏
  • 举报
回复
你的ocx还没有注册,你可以在你的程序里注册你的ocx控件,如下:

在C***App的InitInstance()里加入:
//初始化环境
if (FAILED(OleInitialize(NULL)))
{
AfxMessageBox("OLE initialization failed.Make sure that the OLE libraries are the correct version.") ;
return FALSE ;
}

下面的都是在CMainFrm.cpp或是CDailog.cpp里改动:
先响应OnDestroy(),在里加入:
OleUninitialize();

后在CMainFrm.cpp或是CDailog.cpp的开头加入:
#ifdef _WIN32
#define LOADLIBRARY_FAILED(x) (x == 0)
#else
#define LOADLIBRARY_FAILED(x) (x <= HINSTANCE_ERROR)
#endif
//定义函数地址
STDAPI DllRegisterServer(void) ;
typedef HRESULT (STDAPICALLTYPE *CTLREGPROC)();

再给CMainFrm.cpp或是CDailog.cpp加一个成员函数:
//检查控件是否支持注册
BOOL CRegisterOcxDlg::SupportsSelfRegister(CString strOcxPath)
{
BOOL bResult = FALSE;
DWORD handle;
UINT uiInfoSize;
UINT uiVerSize ;
UINT uiSize ;
BYTE* pbData = NULL ;
DWORD* lpBuffer;;
char szName[512] ;

//获得文件大小信息
uiInfoSize =
::GetFileVersionInfoSize(strOcxPath.GetBuffer(0),
&handle);
if (uiInfoSize == 0) return FALSE ;

pbData = new BYTE[uiInfoSize] ;

//获得文件信息
bResult =
::GetFileVersionInfo(strOcxPath.GetBuffer(0),
handle,
uiInfoSize,
pbData);
if (!bResult) goto NastyGoto ;

//在注册表中找
bResult =
::VerQueryValue( pbData,
"\\VarFileInfo\\Translation",
(void**)&lpBuffer,
&uiVerSize);
if (!bResult) goto NastyGoto ;

bResult = uiVerSize ;
if (!bResult) goto NastyGoto ;

// Build the path to the OLESelfRegister key
// using the translation information.
sprintf( szName,
"\\StringFileInfo\\%04hX%04hX\\OLESelfRegister",
LOWORD(*lpBuffer),
HIWORD(*lpBuffer)) ;

// Search for the key.
bResult = ::VerQueryValue( pbData,
szName,
(void**)&lpBuffer,
&uiSize);

NastyGoto:
delete [] pbData ;
return bResult ;
}

之后再在CMainFrame或CDialog的初始化函数里加入:

//检查是否支持注册
BOOL bResult = FALSE ;
if (SupportsSelfRegister("C:\\pp.ocx")) //假设控件的路径名是"C:\\pp.ocx",当然也可以用相对路径
{
HMODULE hModule = ::LoadLibrary("C:\\pp.ocx") ;
if (LOADLIBRARY_FAILED(hModule)) return FALSE ;
//获得注册函数地址
CTLREGPROC DLLRegisterServer =
(CTLREGPROC)::GetProcAddress(hModule,"DllRegisterServer" ) ;
if (DLLRegisterServer != NULL)
{
HRESULT regResult = DLLRegisterServer() ;
bResult = (regResult == NOERROR) ;
}
::FreeLibrary(hModule) ;
}
ymxl76 2003-09-11
  • 打赏
  • 举报
回复
没劲!!!!!!!
买单!
ymxl76 2003-09-11
  • 打赏
  • 举报
回复
请教各位高手。
内容概要:本文档是《Video for Linux Two API 规范》第0.24版的中文手册,系统性地介绍了V4L2(Video for Linux 2)的核心API及其使用方法。内容涵盖设备打开与关闭、能力查询、视频与音频输入输出管理、调谐器与调制器配置、视频标准选择、用户与扩展控制、数据格式协商、图像裁剪缩放、流控参数设置,以及多种I/O传输方式(如read/write、内存映射、用户指针等)。手册还详细定义了各类图像像素格式(如YUV、RGB、压缩格式)、缓冲区管理机制和ioctl控制接口,并附有编程示例和驱动开发指导,全面支持从基础捕获到高级视频处理的应用开发。; 适合人群:从事Linux平台下音视频驱动或应用程序开发的工程师,尤其是具备C语言基础并熟悉系统级编程的研发人员;适用于1-5年经验的嵌入式、多媒体或驱动开发者。; 使用场景及目标:① 开发基于摄像头、电视卡、视频采集卡等设备的Linux视频应用;② 实现视频采集、格式转换、流媒体传输、overlay叠加显示等功能;③ 调试和优化V4L2兼容硬件的驱动程序;④ 理解并运用ioctl接口进行设备控制与状态查询。; 阅读建议:建议结合实际硬件环境边学边练,优先通过VIDIOC_QUERYCAP确认设备能力,再逐步配置输入源、数据格式与I/O方式;注意各结构体字段的初始化与对齐要求,关注版本变更带来的兼容性问题,可参考附录示例代码进行调试验证。
数据集可视化效果见下方。 【数据集概况】 · 检测类别(中文):[自行车(bicycle), 公交车(bus), 汽车(car), 行人(person), 骑行者(rider), 踏板车(scooter), 卡车(truck)] · 训练集:1334 张 · 验证集:571 张 · 测试集:0 张 · 总计:1905 张 该数据集基于激光雷达点云生成的二维投影图像,真实还原了城市道路复杂交通场景下的多目标检测需求。图像呈现为典型的鸟瞰视角或前视视角的点云密度图,清晰捕捉到包括汽车、卡车、公交车、自行车、踏板车及行人等各类交通参与者在城市街道中的动态分布。数据集聚焦于高密度交通环境下的目标识别,具备高度的现实应用价值,可有效支撑智能交通系统、自动驾驶感知模块及城市安防监控等领域的技术开发。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 100 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.6355** mAP50-95 | 0.3557 Precision | 0.6116 Recall | 0.6067 train/box_loss | 1.3609 train/cls_loss | 1.1274 val/box_loss | 1.5101 val/cls_loss | 1.2023 【训练过程分析】 100 轮训练后 mAP50 仅 0.6355,模型收敛不充分。Loss 曲线前期下降后进入平台期,mAP 提升缓慢。mAP50-95 为 0.3557,定位精度同样偏低。 【模型性能评估】 Precision 0.6116、Recall ...
代码转载自:https://pan.quark.cn/s/a4b39357ea24 一、背景 对近一年以来(2024年H2~2025年H1),在部门非雇员OD管理中出现的主动管理、计划外离职等数据进行整理和复盘,提炼出OD招聘和管理中的经验教训,指导我们在选、用、育、留等各环节的改进,尤其在综合面试环节需要强化一些面试要素,持续优化面试环节的标准和管理过程中差异化的管理方案,提升OD的有效留存率。 二、问题/事件描述 部门近一年时间(2024年H2~2025年H1),出现约9例OD离职(含主动管理)情况,占比约7%,一定程度影响了OD的有效贡献率,本文对数据进行整理和提炼,识别风险因素,提炼共性原因,思考改进方案。 三、分析与对策 WXX - 基本数据:2002年生人,独生子女,流转资源,OD在岗4个月,985学校毕业,非软件专业(金融类专业) - 特征:自学习了一些Python就通过考试进入面试环节 - 面试环节复盘:综面环节第一次没有通过,但因业务需求紧迫,XM对人力补充比较迫切,再三沟通后,综面勉强通过 - 工作中结果:工作中与人交流不多,工作几个月攒到一些收入就准备离职出去玩。 主动离职 FXX - 基本数据:2002年生人,独生子女,流转资源,OD工作3个月,成绩较好,专业对口,父母为国企职工 - 特征:候选人沟通积极,思路清晰 - 面试环节复盘:综面意见较好,沟通比较积极,入职体检正常。 当时团队交付压力大,需要补充新鲜力量。 综面正常通过 - 工作中结果:入职后就经常生病(感冒等),工作后就隔三差五请假看病,整体出勤率低于50%时间,无法有效安排工作。 后主动管理 SXX - 基本数据:2001年生人,独生子女,OD工作2年,985大学环境专业,有一段时...

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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