問題タブ [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ベースのアプリケーションによってロードされます。サードパーティのアプリは基本的に、エクスポートされたDLL関数の1つを呼び出してプラグインを起動し、別の関数を呼び出してアプリケーションをシャットダウンします。現在、シャットダウン機能では何もしていません。

サードパーティのアプリに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のMFCMigrationフレームワークに匹敵するものがありますか?

サードパーティのMFCベースのアプリケーション用のDLLプラグインを作成したいと思います。これを行う「公式」の方法は、MFCを使用してプラグインをビルドすることです。開発を容易にするために他のGUIツールキットを使用できるかどうかを調べています。QtのMFCMigrationFramework(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 を作成します。

しかし、次のエラーがあります。

QTimer を正しく使用して、QApplication/QCoreApplication を使用せずに非 Qt スレッドから呼び出すにはどうすればよいですか?

0 投票する
1 に答える
1859 参照

qt - Qt Win Migration Frameworkとのリンクエラー:未解決のシンボルQWinWidget :: staticMetaObject

既存のMFCベースのアプリケーションでQtを使用するようにQtWinMigrationフレームワークをセットアップしようとしています。フレームワークをライブラリとして使用したいので、ファイルを実行qmakeしてqtwinmigrate/buildlib/buildlib.proVisualStudiovcxprojプロジェクトファイルを作成しました。フレームワークをdll/libとしてビルドし、ヘッダーを共通のインクルードディレクトリに配置しました。私のMFCプロジェクトでは、Qt移行フレームワークのlibを依存関係として追加し、必要に応じてヘッダーを含め、フレームワークをテストするためのコードを追加しました。すべてが正常にコンパイルされますが、リンカーエラーが発生します。

エラーLNK2001:未解決の外部シンボル "public:static struct QMetaObject const QWinWidget :: staticMetaObject"(?staticMetaObject @ QWinWidget @@ 2UQMetaObject @@ B)

0 投票する
1 に答える
1251 参照

qt - Mfc を Qt モーダル ダイアログとメイン プロセスで使用する

Mfc アプリケーションがまだ背後で実行されている間に、Qt モーダル ウィンドウを開きたい Mfc アプリケーションがあります。

Mfc から Qt アプリケーションを起動する方法については、こちらを参照しください。このページでは Dll を作成しますが、私のソリューションでは代わりに静的ライブラリを作成します

メイン アプリケーションを背後で実行する Qt モーダル ウィンドウの作成に関しては、簡単に見えます。

私の問題は、両方のソリューションを組み合わせることができないように見えることです。

次のコードは Qt ウィンドウを開始しますが、メイン スレッドをブロックしていて、メイン スレッドがイベントを受信できない可能性が高いと思われます。

exec 関数がメイン スレッドをブロックしている可能性があります

次の解決策はメインスレッドをブロックするべきではありませんが、Qt ウィンドウは数ミリ秒しか表示されず、消えてしまいます。

質問は、exec関数の代わりにshow関数を使用することは可能ですか?

(これは、DLL を作成し、Mfc アプリケーションからワーカー スレッドで DLL を呼び出す場合に機能しますが、静的ライブラリを使用することを好みます)

0 投票する
2 に答える
1228 参照

qt - exec の代わりに show を使用すると QWidget が更新されない

私のプロジェクトでは、Mfc アプリケーションの上にノンブロッキング QWizard を作成する必要があります。これを行うには、ここの指示に従いました(リンク

QWizardPage 内の QRadioButton をクリックすると、UI が適切に更新されないように見えます。次のスクリーンショットを参照してください。

1-QWizard の最初のステップ。すべてがよさそうだ

QWizard の最初のステップ。 すべてがよさそうだ

2-QRadioButton をクリックしました。「次へ」ボタンが奇妙な状態になっているのを見てください。

QRadioButton をクリックしました。 ほら、

3-2 番目の QRadioButton をクリックしました。両方の QRadioButton が選択されているように見えます。(はい、それらは相互に排他的です!

2 番目の QRadioButton をクリックしました。 両方の QRadioButton が選択されているように見えます。 (はい、それらは相互に排他的です!)

4-ここで、「次へ」ボタンと QRadioButton の上に「マウス オーバー」すると、強制的に更新され、UI は問題ありません。

今、私がやっている場合

私の質問は: exec の代わりに show を使用するときに 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

実行: send https://fcm.googleapis.com/fcm/send

アプリが開いている場合、メッセージは正しい形式で届きます。APP が cerra の場合、メッセージは間違った形式で到着し、FirebaseMessagingService を拡張するクラスのロジックを通過しません。

ここに画像の説明を入力

アプリが閉じている以上に、メッセージ FCM background simpre open format を取得する必要があります。

何が問題なのですか?

よろしく、