マルチスレッド時のダイアログ

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
だんごさん
記事: 273
登録日時: 14年前

マルチスレッド時のダイアログ

#1

投稿記事 by だんごさん » 13年前

C言語でDXライブラリのプログラムを組んでいます。
今作っているソフトは、DxLibがメッセージ処理してくれるProcessMessage()以外で動くように、マルチスレッドにしています。
理由はソフトのタイトルバーがシステムに掴まれても画面が動くようにするためです。
またモードレスダイアログを表示させるため、ダイアログメッセージ処理を肩代わりしてくれるSetDialogBoxHandle( hwnd ); を呼び出していました。

しかし、DxLibでマルチスレッドにするための関数SetMultiThreadFlag( TRUE ) ; を呼び出すと上記の関数が無効(?)になります。
使えないようにコメントアウトしてしまうのです。

そこでダイアログメッセージ処理も自分で作ろうと思ったですが、DxLib側のプログラムで呼び出すと処理が重くなります。また別のスレッドを作ろうとしたのですが、プログラムを通ってくれません(書き方が違うんだと思いますが…)。

どうすればDxLibのマルチスレッドにさらにモードレスダイアログのメッセージ処理を追加できるでしょうか?

YAHOO!知恵袋リンク

windows 7 HP
VC++2008
DxLib 3.10a
 Dango San

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: マルチスレッド時のダイアログ

#2

投稿記事 by softya(ソフト屋) » 13年前

知恵袋に有るようにDXLIBの管理人さんに相談されたほうが良いと思いますが、もし自分でやるとしたらDXLIBのソースコードを調べられたのでしょうか?
そのぐらいしないと解決できない問題だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

だんごさん
記事: 273
登録日時: 14年前

Re: マルチスレッド時のダイアログ

#3

投稿記事 by だんごさん » 13年前

分かりました…
本家様で質問させていただきます。
 Dango San

だんごさん
記事: 273
登録日時: 14年前

Re: マルチスレッド時のダイアログ

#4

投稿記事 by だんごさん » 13年前

DXライブラリ置き場掲示板

解決ボタン押しておいた方がいいのでしょうか?
 Dango San

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: マルチスレッド時のダイアログ

#5

投稿記事 by softya(ソフト屋) » 13年前

だんごさん さんが書きました:DXライブラリ置き場掲示板

解決ボタン押しておいた方がいいのでしょうか?
相互リンクの条件は満たしているわけですから、誰か答えてくれるかもしれないので、しばらくはこのままで良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

だんごさん
記事: 273
登録日時: 14年前

Re: マルチスレッド時のダイアログ

#6

投稿記事 by だんごさん » 13年前

全て自己解決しました。
主な原因として、HWND型の引数の渡し方が誤っていたことでした。

無事、動作したことを確認いたしましたので解決とさせていただきます。
 Dango San

閉鎖

“C言語何でも質問掲示板” へ戻る