news 2026/7/7 3:20:51

42、.NET与COM编程:从ActiveX控件到指针应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
42、.NET与COM编程:从ActiveX控件到指针应用

.NET与COM编程:从ActiveX控件到指针应用

1. 引言

在编程领域,开发者往往希望有一个全新的开始,但对于大多数公司而言,丢弃过去编写的代码重新开始并非可行之选。过去十年间,众多开发组织在开发和购买COM组件及ActiveX控件上投入了大量资源。微软致力于确保这些遗留组件能在.NET应用程序中使用,同时也让.NET组件能被COM轻松调用。本文将深入探讨.NET对导入ActiveX控件和COM组件、将.NET类暴露给基于COM的应用程序以及直接调用Win32 API的支持,还会介绍C#指针和直接访问内存的关键字。

2. 导入ActiveX控件

ActiveX控件是COM组件,通常会被放置在窗体中,可能有也可能没有用户界面。微软开发OCX标准后,ActiveX控件革命兴起,开发者可以用VB构建ActiveX控件并在C++中使用,反之亦然。数千个这样的控件被开发、销售和使用,它们小巧、易于使用,是二进制重用的有效范例。

2.1 创建ActiveX控件

为了演示在.NET应用程序中使用经典ActiveX控件的能力,我们将先开发一个简单的四则运算计算器作为ActiveX控件,然后在C#应用程序中调用它。
-步骤
1. 打开VB 6,选择ActiveX控件作为新项目类型。由于该控件没有用户界面,将项目窗体尽可能缩小。
2. 右键单击UserControl1并选择“属性”,在属性窗口中将其重命名为Calculator。
3. 点击项目资源管理器中的“项目”,在属性窗口中将其重命名为CalcControl。立即保存项目,将文件和项目都命名为CalcCont

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 10:06:42

16、Windows Azure 存储客户端开发全解析

Windows Azure 存储客户端开发全解析 在云存储服务的使用中,了解如何与存储服务进行交互至关重要。本文将详细介绍 Windows Azure 存储服务的相关概念,包括 URL、HTTP 方法、状态码等,还会手把手教你构建一个简单的存储客户端。 1. 基础概念 在与 Windows Azure 存储服务…

作者头像 李华
网站建设 2026/7/7 7:01:07

WinDbg Preview连接Win10内核调试:配置步骤与常见问题解析

用 WinDbg Preview 调试 Windows 10 内核:从零配置到实战排错 你有没有遇到过这样的场景?自己写的驱动一加载,目标机“啪”一下蓝屏了;或者系统莫名其妙死锁,事件查看器里只留下一句模糊的 DRIVER_IRQL_NOT_LESS_OR_…

作者头像 李华
网站建设 2026/7/6 23:12:00

5分钟学会AI图像分层:layerdivider终极使用指南

5分钟学会AI图像分层:layerdivider终极使用指南 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider layerdivider是一款革命性的AI图像分层工具&a…

作者头像 李华
网站建设 2026/7/7 9:43:24

3分钟掌握面部识别核心技术:OpenFace完整入门指南

3分钟掌握面部识别核心技术:OpenFace完整入门指南 【免费下载链接】OpenFace OpenFace – a state-of-the art tool intended for facial landmark detection, head pose estimation, facial action unit recognition, and eye-gaze estimation. 项目地址: https:…

作者头像 李华
网站建设 2026/7/7 18:23:34

LabelLLM开源数据标注平台完整部署与功能详解

LabelLLM开源数据标注平台完整部署与功能详解 【免费下载链接】LabelLLM 项目地址: https://gitcode.com/gh_mirrors/la/LabelLLM LabelLLM是一款专为大型语言模型训练设计的开源数据标注平台,提供灵活的任务配置、多模态数据支持和智能AI辅助标注功能。本文…

作者头像 李华