A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
MFCをどのように使用するのか分からないので何ともいえませんが
基本的にプラグイン側からMFCをシングルスレッドで(関数等を)使用すると
いうのであれば特に問題はないのではないでしょうか。
逆にMFCでの処理をマルチスレッドで書いていて非同期に製品側にアクセスする
(多分ないと思いますが..)場合には排他制御等のしかけが必要と思います。
この回答への補足
ご回答ありがとうございます。
MFCはアプリケーションを利用する際にしか用いたことがないのであれなのですが、、
やはりライブラリはマルチスレッドバージョンしか用意されていないようなのでコンパイラオプションはマルチスレッドにするしかないのでしょうね、、
たしかCWinAppなどを使うと初回時にスレッドを一本立ててアプリは最低でもその下で動くようになる、、など、気付かないところでスレッドをたてられてしまうので、マルチスレッドバージョンのMFCは使えないのではないかという気がしています。
No.2
- 回答日時:
>たしかCWinAppなどを使うと初回時にスレッドを一本立ててアプリは最低でも
>その下で動くようになる、、など、気付かないところでスレッドをたてられて
>しまうので、マルチスレッドバージョンのMFCは使えないのではないかという
>気がしています
これってCWinAppを使用すると内部でメインスレッド以外にワーカースレッドを
作成してしまうって事ですか?
ちなみにプラグインというのはDLLみたいな形で作成するのでしょうか?
この回答への補足
すみません、、補足を書いたのですが正常に書き込まれていませんでした。
>これってCWinAppを使用すると内部でメインスレッド以外にワーカースレッドを
>作成してしまうって事ですか?
詳しくは覚えていないのですが、CWinAppでRunを実行するとスレッドが一本走り、
それ以降の処理はそこで行われますよね。それを言いたかったのです。本来Windowsアプリはスレッドが1本もなくても動くものですから、、(もしくは最近のWindowsだと起動時のプロセスもスレッド扱いとなっているのかな、、?シングルスレッドと呼ばれるだけに。そこまではちょっとわかりません。もしくは理解を誤っているようでしたらすみません、、)
つまりMFCはもともとマルチスレッドを想定してつくられているので、MFCクラスを使用すると裏でスレッドが走るケースがあるのではないかということです、、
>ちなみにプラグインというのはDLLみたいな形で作成するのでしょうか?
説明不足で申し訳ありません。たしかにおっしゃる通りDLLで作成します。
No.3
- 回答日時:
>MFCはもともとマルチスレッドを想定してつくられている
そんな事はありません。MFCで作られた、プログラムでも明示的にスレッドを起こさない限り主スレッドで動きます。
新規にMFCプロジェクトで実行ファイルを作って起動させ、タスクマネージャでスレッドの数を確認すれば一つしかない事がすぐにわかります。
No.4
- 回答日時:
>>そんな事はありません。
MFCはマルチスレッドを想定していますよ。スレッド毎にメッセージマップのインスタンスを持ちます。今も昔も変わりません。
もしかして、GOOD-Frの飼い犬かね?
MFCはマルチスレッドを想定しているので、シングルスレッド、マルチスレッドの両方のライブラリがあったこの時代でも、リンクするライブラリは常にマルチスレッド用のものです。
ちなみに、現代のVisualC++には、シングルスレッド用ライブラリが存在しません。
アプリケーションのメインウィンドウはプライマリスレッドで動作します。
明示的にサブスレッドを作成しない限り、スレッドの数は常に1個です。
関数呼び出しの際に排他制御の必要はありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- プリンタ・スキャナー Brother MFC-7460DNの一時停止解除について 1 2022/12/03 12:38
- プリンタ・スキャナー ブラザー複合機のトナー交換およびトナー残量の検知の仕組みを教えて下さい。 1 2022/07/09 12:28
- プリンタ・スキャナー エプソンとブラザーどちらのプリンタがいいでしょうか 6 2022/12/23 15:38
- その他(開発・運用・管理) VisualStudioSetup.exeの設定について(Rustのインストールの準備として) 2 2023/04/17 12:54
- バドミントン 引退までの部活に行くのが気まずいです。 1 2022/05/31 21:29
- WordPress(ワードプレス) ワードプレスのバージョン 2 2022/06/12 09:32
- HTML・CSS 使用しているプラグインの自動表記リンクを目立たなくする方法はありますか? 1 2022/07/15 19:00
- 高齢者・シニア 60歳過ぎてレッド・ツェッペリンのファンになるのは異常? 5 2022/12/01 18:38
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- その他(開発・運用・管理) Windows serverでマルチキャスト通信の確認をしたいです。MicrosoftよりMPING 1 2023/03/31 01:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.netアプリへのSendMessageでフ...
-
スレッドの終了の仕方
-
Windows上で、シグナル(SIGTERM...
-
別スレッドからメインダイアロ...
-
_beginthreadexで生成したスレ...
-
スレッドにて同一メモリの書き...
-
画面の更新とスレッド
-
excelvbaでCreateThreadの動作
-
待機関数(WaitForMultipleObjec...
-
MFC通信プログラムマルチスレッ...
-
WaitForMultipleObjectのイベン...
-
マルチスレッドについて
-
WaitForSingleObjectの使い方に...
-
マルチスレッドでブレイクポイ...
-
Macターミナルで実行中のプログ...
-
バックグラウンドのプロセスの...
-
C言語で、メモリを解放しないで...
-
緯度、経度の 10進法と 60進法...
-
TCP/IP通信時のサーバーからの受信
-
VBSの処理中一旦処理を止めて再...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WaitForSingleObjectの使い方に...
-
VC++スレッドの正しい終了のさ...
-
スレッドの監視方法について
-
スレッドの安全な終了のさせ方
-
スレッドにて同一メモリの書き...
-
Windows上で、シグナル(SIGTERM...
-
スレッドの終了の仕方
-
スレッドの終了はどうやるんで...
-
VB2005 シリアル通信のClose処理
-
マルチスレッドプログラミング...
-
.netアプリへのSendMessageでフ...
-
マルチスレッドについて
-
Linuxでスレッド優先度って変え...
-
Win32APIでのスレッド処理
-
pthread_cond_wait 取りこぼし?
-
LinuxでDoEvents()同等機能
-
C++ GUIのメッセージループ。
-
excelvbaでCreateThreadの動作
-
マルチスレッドの実行順序の制御
-
同一スレッドで、ロックをかけ...
おすすめ情報