Qt创建COM组件解决opengl渲染设置问题(DLL方式)

解决问题:采用DLL方式注册COM组件,没法自己写main函数,解决无法设置Qt全局属性问题。比如:

QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);

因为这些设置必须在QApplication 之前设置才有效。

一、项目介绍

【1】项目场景介绍

使用Qt开发COM组件给C#(WPF)调用,QT开发COM组件一般有两种形式:独立的exe文件和DLL库文件。如果是给其他语言调用,开发COM组件选择DLL方式最合适,在VS里安装Qt插件之后可以很方便的创建ActiveQtServer工程,创建之后,就是一个完整的模板,可以编译注册。

【2】问题说明

我当前开发的COM组件是一个视频播放器,需要用到OpenGL渲染,Qt默认的的渲染方式是采用AA_UseDesktopOpenGL,当前项目里渲染需要采用AA_UseOpenGLES,也就是需要修改属性。而修改AA_UseOpenGLES 属性需要在QApplication之前,那么问题就来了。

如果采用独立的exe方式编写COM组件,可以自己写main函数,那么在QApplication 之前设置AA_UseOpenGLES这些属性是没问题。

如果采用DLL方式注册COM组件,是不用自己写main函数(写了也没用),Qt5AxServer有默认的main函数。这种

猜你喜欢

转载自blog.csdn.net/xiaolong1126626497/article/details/128484389