若该文为原创文章,转载请注明原文出处

前言

  开发Activex控件,以供其他应用程序调用,本篇章讲解C#调用Activex控件,不限于Qt开发的Activex控件。

  Wpf要调用Activex控件,必要先用C#对Activex控件进行包装,然后提供给Wpf调用。



Demo

  Qt开发Activex笔记(三):C#调用Qt开发的Activex控件_C#调用Qt



C#调用Activex方法

步骤一:注册activex控件

  运行之前先要注册,使用Qt下自带的idc注册一下。

idc -regserver activeHelloWorldDemo.dll

  Qt开发Activex笔记(三):C#调用Qt开发的Activex控件_windows组件_02

步骤二:确认activeQt控件的clsid

  查看一下,打开注册表并搜索一下,确认clsid,如下图:

  Qt开发Activex笔记(三):C#调用Qt开发的Activex控件_windows组件_03

"2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC"

步骤三:创建c#项目,引入com的dll

  将注册的dll引入到项目中,如下图:

  Qt开发Activex笔记(三):C#调用Qt开发的Activex控件_windows组件_04

  Qt开发Activex笔记(三):C#调用Qt开发的Activex控件_VS_05

  Qt开发Activex笔记(三):C#调用Qt开发的Activex控件_Qt编写activex_06

步骤四:代码中使用控件

  Qt开发Activex笔记(三):C#调用Qt开发的Activex控件_C#调用activex_07

步骤五:编写代码

private void button1_Click(object sender, EventArgs e)
{
activeHelloWorldDemoLib.activeHelloWorldDemo dlg = new activeHelloWorldDemoLib.activeHelloWorldDemo();
dlg.show();
}



源码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace trainSimulationDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void Form1_Load(object sender, EventArgs e)
{
}

private void button1_Click(object sender, EventArgs e)
{

activeHelloWorldDemoLib.activeHelloWorldDemo dlg = new activeHelloWorldDemoLib.activeHelloWorldDemo();
dlg.show();
}
}
}