Qt创建COM组件解决opengl渲染设置问题(DLL方式)
Posted DS小龙哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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函数。这种
以上是关于Qt创建COM组件解决opengl渲染设置问题(DLL方式)的主要内容,如果未能解决你的问题,请参考以下文章
Qt创建COM组件解决opengl渲染设置问题(DLL方式)
带有 QT 错误的 OpenGL:断言:“QOpenGLFunctions::isInitialized(d_ptr)”。无法创建 OpenGL 上下文