您的位置:首页 > 编程语言 > Qt开发

C#/VC调用QT控件

2017-02-15 21:28 651 查看
通过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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt c#