C#/VC调用QT控件

通过QT Creator将QT控件编译成C++库,即dll,C#和VC通过dll调用QT控件。

需要在QT Creator中使用qtwinmigrate,将qt控件封装为一个函数接口,通过Pinvoke与C#和VC交互。
注意:函数接口中不能出现以下语句

QApplication a(argc, argv);

qtwinmigrate在生成dll的过程中会预先定义一个QApplication 对象,而qt只允许一个QApplication 对象存在。如果这样做,运行dll时会报错:

ASSERT failure in QCoreApplication: "there should be only one application object", file kernel\qcoreapplication.cpp

应该这样做:

QApplication* qapp_instance = qApp;

在dll中定义一个全局的QApplication对象指针,指向全局的qApp(在qapplication.h源码中定义),通过这个对象指针访问QApplication对象,如进行以下操作:

qapp_instance->exec();

调用qt控件dll时,需要附带qt的dll

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值