问题标签 [qt-mfc-migration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2597 浏览

c++ - Qt/MFC 迁移框架工具:正确退出 DLL?

我在以下示例之后使用 Qt/MFC 迁移框架工具:http: //doc.qt.nokia.com/solutions/4/qtwinmigrate/winmigrate-qt-dll-example.html

我构建的 dll 由基于 MFC 的第 3 方应用程序加载。第 3 方应用程序基本上调用我导出的 DLL 函数之一来启动我的插件和另一个函数来关闭我的应用程序。目前我在关机功能中什么也没做。

当我在 3rd 方应用程序中加载我的 DLL 时,将调用启动函数并且我的 DLL 成功启动并且我可以看到我的消息框。但是,如果我关闭我的插件然后尝试再次启动它,我会收到以下错误:

这让我觉得我没有做任何事情来正确关闭我的插件。我需要做什么才能正确关闭它?

更新: http ://doc.qt.nokia.com/solutions/4/qtwinmigrate/winmigrate-walkthrough.html说:

DLL 还必须确保它可以在同一进程中与其他基于 Qt 的 DLL 一起加载(在这种情况下,QApplication 对象可能已经存在),并且创建 QApplication 对象的 DLL 保持加载在内存中以避免其他 DLL 使用进程不再可用的内存。

所以我想知道是否存在一些问题,无论如何我都需要以某种方式保持原始 DLL 的加载?

0 投票
1 回答
463 浏览

c++ - wxWidgets 有与 Qt 的 MFC 迁移框架相媲美的东西吗?

我想为基于 MFC 的第 3 方应用程序构建一个 DLL 插件。执行此操作的“官方”方法也是使用 MFC 构建插件。我正在寻找是否可以使用任何其他 gui 工具包来简化我的开发。我玩过 Qt 的 MFC 迁移框架 ( http://doc.qt.nokia.com/solutions/4/qtwinmigrate/ ),为此我取得了一些成功,但我遇到了障碍。现在我正在考虑替代方案。wxWidgets 是否支持构建将与 MFC 主机应用程序集成的 DLL?

0 投票
2 回答
579 浏览

java - 使用来自非 Qt DLL (JNA) 的 QTimer

我写了一个库(DLL)。Java 代码将我的 DLL 与 JNA 一起使用。在库中,我通过 QThread 派生类中的“new”创建 Qtimer。

但是,我有以下错误:

在没有 QApplication/QCoreApplication 的情况下,我应该如何正确使用 QTimer 从非 Qt 线程调用?

0 投票
1 回答
1859 浏览

qt - Qt Win 迁移框架的链接错误:未解析的符号 QWinWidget::staticMetaObject

我正在尝试设置 Qt Win 迁移框架以在现有的基于 MFC 的应用程序中使用 Qt。我想将框架用作库,因此我qmakeqtwinmigrate/buildlib/buildlib.pro文件上运行以创建 Visual Studio vcxproj 项目文件。我将框架构建为 dll/lib 并将标头放在一个公共包含目录中。在我的 MFC 项目中,我添加了 Qt 迁移框架的库作为依赖项,在适当的地方包含了头文件,并添加了代码来测试框架。一切编译正常,但随后出现链接器错误:

错误 LNK2001:未解析的外部符号“公共:静态结构 QMetaObject const QWinWidget::staticMetaObject”(?staticMetaObject@QWinWidget@@2UQMetaObject@@B)

0 投票
1 回答
1251 浏览

qt - 将 Mfc 与 Qt 模态对话框和主进程一起使用

我有一个 Mfc 应用程序,我想在其中打开一个 Qt 模式窗口,而 Mfc 应用程序仍在后面运行。

要从 Mfc 启动 Qt 应用程序,我知道了如何到那里。此页面创建了一个 Dll,但我的解决方案改为创建一个静态库

至于创建一个 Qt 模态窗口,后面运行主应用程序,看起来很容易

我的问题是看起来我无法将这两种解决方案结合起来。

以下代码启动 Qt 窗口,但我强烈怀疑我阻塞了我的主线程并且主线程无法接收事件。

exec 函数可能阻塞了主线程

以下解决方案不应阻塞主线程,但 Qt 窗口仅出现几毫秒并消失

那么,问题是,是否可以使用show函数代替exec函数?

(如果我正在创建一个 Dll 并从我的 Mfc 应用程序的工作线程中调用 Dll,则此方法有效,但我更喜欢使用静态库)

0 投票
2 回答
1228 浏览

qt - 使用 show 而不是 exec 时 QWidget 不更新

在我的项目中,我需要在我的 Mfc 应用程序顶部创建一个非阻塞 QWizard。为此,我按照此处的说明进行操作(链接

这样做有一个奇怪的副作用,当我单击 QWizardPage 中的 QRadioButton 时,我的 UI 似乎没有正确更新。请参阅以下屏幕截图:

1-我的 QWizard 的第一步。一切看起来都不错

我的 QWizard 的第一步。 一切看起来都不错

2-我点击了一个 QRadioButton。看,“下一步”按钮处于奇怪的状态。

我点击了一个 QRadioButton。 见,

3-我点击了第二个 QRadioButton。看,两个 QRadioButton 看起来都被选中了。(是的,它们是互斥的!

我点击了第二个 QRadioButton。 看,两个 QRadioButton 看起来都被选中了。 (是的,它们是互斥的!)

4-现在,如果我在“鼠标悬停”、“下一步”按钮和 QRadioButton 上进行操作,这会强制更新,我的用户界面很好

现在,如果我正在做一个

我的问题是:使用 show 而不是 exec 时如何正确更新我的 UI?(我确实尝试使用 exec 并且我的 UI 正在正确更新)

我猜如果我使用 show,主线程不会更新我的 UI?

谢谢你。

编辑

这是实例化向导的函数的代码:

以下是我的 QWizard 课程:

编辑试图强制更新到目前为止没有解决问题

0 投票
3 回答
2328 浏览

visual-c++ - 如何在 MFC 12.0 中将 .dll 项目转换为 .exe

我有一个最初开发为 .dll 项目的项目,MFC但我想将此项目转换为 .exe 应用程序。我已更改项目设置,如下所示,但没有帮助。

在此处输入图像描述

编辑:此外,我已将链接器属性更改为Project properties -> Linker -> General -> Output file .. set to .. .Debug\DirBkgndExt.exe

当我编译时,我收到以下错误。

我用谷歌搜索了它,在一些博客上,人们建议将现有项目中的所有内容复制粘贴到可执行类型的新项目中。由于这个项目有点庞大,所以这个选项听起来不太好。

在此处输入图像描述

0 投票
1 回答
4989 浏览

android - 发送通知背景 Firebase android

运行:发送https://fcm.googleapis.com/fcm/send

如果应用程序打开,则消息以正确的格式到达。如果 APP 是消息以错误的格式到达,它不会通过扩展 FirebaseMessagingService 的类的逻辑。

在此处输入图像描述

我必须通过关闭应用程序来获取消息 FCM 后台 simpre 开放格式。

可能是什么问题呢?

问候,