一、项目场景
C# 与 Qt 混合编程,开发软件。 Qt编写功能模块给C#调用。
Qt带界面的控件给C#调用的常见的办法有两种: 如果不带界面的就很简单,这篇文章是介绍带界面的Qt组件给C#调用。
(1)Qt封装成COM组件方式给C#调用。
(2)Qt直接编译成DLL,导出接口给C#调用。
COM组件方式在之前的好几篇文章都有详细讲解。这篇文章介绍Qt直接编译成DLL,导出接口给C#调用。
当前的开发环境:
编译器: MSVC_VS2017 Qt版本: 5.12.6
二、案例1
Qt直接编译成DLL,导出接口给C#调用。
2.1 Qt创建DLL
如果现在已经有一个完整的Qt项目,编译成exe可以运行,如果改为DLL给C#调用?
(1)修改pro文件 增加配置,表示生成dll库文件。
TEMPLATE = lib DEFINES += DLL_CREATETEST_LIBRARY
(2)修改main.cpp 增加代码
//DLL入口,加载DLL会调用 BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpvReserved*/ ) { qDebug()<<"DllMain 被调用...."; static bool ownApp