[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/04 11:46 / Filesize : 212 KB / Number-of Response : 986
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build62



1 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:40:03 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

【前スレ】
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/

809 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:25:35 ]
エスパーのさらに上を期待してるのかw

810 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:29:51 ]
スペック足りてないんじゃね

811 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:34:30 ]
>>808
1208行目のループ文が無限ループしてる

812 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:38:57 ]
>>808
メモリとかリソースの解放漏れ

813 名前:卍凹 [2008/02/27(水) 18:47:15 ]
>>810
自分のPCよりスペックの高いPCを友人が持っていたのでためしたが駄目だった
んでスペックが足りないってこともないと思います。
>>811 812
812だとすれば自分のPCでも症状は出ると思うのですけど、今のところはでていません


814 名前:デフォルトの名無しさん [2008/02/27(水) 18:56:33 ]
今日からスッドレの勉強はじめました。

歯痛制御って何ですか?
セマホって何ですか?
クリテカルスポットって何ですか?

815 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:32:43 ]
そのまま勉強を続ければ時季に分かるだろう。

816 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 20:13:54 ]
>>808
それはその友人の罠だな。すぐ逃げた方がいい

817 名前:デフォルトの名無しさん [2008/02/27(水) 20:21:27 ]
クリティカルセクションつかって
会社の女のまんこに挿入したいのですが、
どうすればいいですか?




818 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 20:33:45 ]
自分では面白いと思って書き込むんだろうね。
リアルでも空気が読めずに相手にされないのがもろわかりな内容。

819 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 20:53:17 ]
>>818

820 名前:卍凹 [2008/02/27(水) 20:53:52 ]
自分のPCはCeleronで友人のはPen4これぐらいしか大きなちがいはないのですが
なぜ動かないのでしょうか?うpするからみてもらえませんか??

821 名前:デフォルトの名無しさん [2008/02/27(水) 21:10:15 ]
嫌です

822 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:13:34 ]
何故、他人が作ったもののデバッグをやらなきゃいかんのか、と

823 名前:卍凹 [2008/02/27(水) 21:15:39 ]
すいませんでしたm(__)m

824 名前:卍凹 [2008/02/27(水) 21:16:22 ]
すいませんでした

825 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:35:06 ]
マジで回答期待してるなら
うpロダにソース晒せ


826 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:47:26 ]
俺もゲームやりたい

827 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:03:14 ]
CeleronがCovingtonなら、十分すぎるほど違いがあるな。



828 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 23:57:47 ]
フォントの10.5ポイントとかとCreateFontの高さを相互変換するにはどうしたら良いですか?

829 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:04:25 ]
MFC や WTL の CreatePointFont の実装をパクる

830 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:07:08 ]
ポイント/72*DCのdpi = pixelという計算式がある。

MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

831 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 00:30:14 ]
>>829-830
ありがとうございます。
そこらへんから調べてみます。感謝。


832 名前:771 mailto:sage [2008/02/28(木) 00:50:22 ]
誰も覚えてないだろうけど>>771はどうにもならんかったのでフックで何とかした。
以上報告まで。

833 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 04:07:03 ]
MSDNライブラリを読むと、BitBltやStretchBltは使えない環境もあるようですが、
AlphaBlendやTransparentBltにはそのような記述がないということは、
BitBlt等はデバイス(GPU?)が行い、AlphaBlend等は全てCPUが処理するということで合ってますか?

834 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 07:00:34 ]
Vista以降を除けば合っていない。
GetDeviceCapsのSHADEBLENDCAPSで対応状況が解る。

835 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 07:01:10 ]
AlphaBlendやTransparentBltはハードウェア処理できたらハードウェア処理するができなかったらソフトウェア処理だったと思う

836 名前:デフォルトの名無しさん [2008/02/28(木) 10:40:58 ]
エクスプローラやAPIのCopyFileを使った巨大ファイルのコピー中に(完了まで数分掛かる)
現時点でのコピーされたバイト数を取得する方法は無いでしょうか?

よろしくお願い致します。

837 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 10:49:50 ]
CopyFileEx



838 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:22:29 ]
BitBltが使えない環境なんて考えたことない。
そんなのが実在するなんて恐ろしいわ。

839 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:41:33 ]
BItBltはオペレータの組み合わせ具合で
ドライバのまずい部分をつつく可能性はあるね

840 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:52:06 ]
>>833
「HDCは画面だけのものじゃない」ってのをよく考えれ。

>>836
アプリが動かしてるのを取得したいんならフックするのがベストかな。
自前ならどーとでもお好きなように。

841 名前:デフォルトの名無しさん [2008/02/29(金) 18:38:33 ]
質問があります。
プログラム中で、マウスホイールを禁止したいと思ってます。
またはプログラム中でホイール動作時の移動量情報を自分で決めたいと思っています。
できれば、WM_CREATE内で。。
ホイール動作時にWM_MOUSEWHEELメッセージが来るのは分かったのですが。。
環境はVC.net + SDK です。よろしくお願いします

842 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 18:44:39 ]
C#のArrayListみたいなのに相当する
出し入れ自由なコレクションって自作するしかない?

843 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 18:56:20 ]
どう考えても、OSの面倒見てくれる範囲じゃないだろ

844 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 19:17:04 ]
大抵のライブラリにはあるだろ

845 名前:デフォルトの名無しさん [2008/02/29(金) 19:58:24 ]
CLISTってのはMFCとかいうのの機能なんでしょ?

846 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 19:59:47 ]
>>842
どの言語?いずれにしてもその言語のスレ行きな、ここはスレ違いだから。

847 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 21:38:35 ]
>>842
Dynamic Pointer Arrayという物がある。
比較的最近のSDKでないと定義されてないけど実はWin95でも使える枯れたAPIだったりする。



848 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:09:33 ]
>>841
WM_MOUSEWHEELでdeltaを好きなようにしたらいかんべ

849 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:16:20 ]
GUI部分と実際の処理部分を別々のソースファイルに書いています。
内部処理のソースファイルで定義した関数から
SetWindowTextでEDITコントロールの内容を変更出来ないんですけど、原因分かりますか?

850 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:16:58 ]
WinAPI難しいなぁ

851 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:21:18 ]
ttp://wisdom.sakura.ne.jp/system/winapi/
テンプレの上記のサイトのメッセージボックス項の
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
CHAR chStr[128];

wsprintf(chStr , "インスタンスハンドル : %d" , hInstance);
MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK);

return 0;
}
上記のコードを実行しようとすると
error C2664: 'wsprintfW' : 1 番目の引数を 'CHAR [128]' から 'LPWSTR' に変換できません。
error C2664: 'MessageBoxW' : 2 番目の引数を 'CHAR [128]' から 'LPCWSTR' に変換できません。
このようなエラーが出ます
chStrをLPWSTR[128]で宣言してもエラーは相変わらずです。
これはどうすればいんでしょうか?コンパイラはVS2005です

852 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:23:54 ]
>>851
マルチバイト文字セットに変更汁

853 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:29:54 ]
>>851
CHAR→TCHAR

>chStrをLPWSTR[128]で宣言してもエラーは相変わらずです。
ってLPWSTR chStr[128]ってしたってこと?

854 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:36:59 ]
またWISDOMかw

855 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:39:24 ]
>>852
>>853
TCHARにすると
error C2664: 'wsprintfW' : 2 番目の引数を 'const char [26]' から 'LPCWSTR' に変換できません。
こんなエラーが出ます
このエラーからすると第一引数にはchar型が入るように見えるんですが、違う、のかなぁ

>>chStrをLPWSTR[128]で宣言してもエラーは相変わらずです。
>ってLPWSTR chStr[128]ってしたってこと?
です、エラーからしてそういうことかなぁと思いまして

856 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:40:49 ]
>>855
TCHAR chStr[128];
wsprintf(chStr , TEXT("インスタンスハンドル : %d") , hInstance);

857 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:41:54 ]
* UNICODE, ANSI ビルド
* TCHAR, CHAR, WCHAR 型
* TEXT, _T マクロ
この辺についてちゃんと調べるなりドキュメント読んだほうが良いと思う



858 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:48:20 ]
>>855
違うよ。>>852の意味は
[プロジェクト]-[プロパティ]-[構成プロパティ]-[全般]-[文字セット]をマルチ バイト文字セットを使用する
に変更するという意味だよ。

859 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:50:30 ]
error C2664:〜〜〜〜  'A’ から 'B' に変換できません。
※ABは char / wchar_t / LPSTR / LPWSTR / LPCSTR / LPCWSTR など

巷のサンプルコードがこのようなコンパイルエラーを発生させる場合、文字セットが適切ではないです。
開発環境の文字コードの設定をソースにあわせるか、ソースを開発環境の設定にあわせるかしましょう。
方法は各々の開発環境のスレへどうぞ。


この辺の文言がテンプレにあったほうがいいような気がするがお前らはどう思うか

860 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:50:41 ]
>>849
コード見ないとわかんね
ここエスパースレじゃねえし

861 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:52:53 ]
>>860
分からないなら無理に答えていただく必要はありません

862 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:55:44 ]
>>861なりすまし乙
>>860エスパーレスが欲しかったんですけど、ダメですかねえ

863 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:58:31 ]
違うプロセスのウィンドウに SetWindowText を使っているとか

864 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 22:58:37 ]
無茶言うなw

865 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 23:36:24 ]
>>863
SetWindowText(WM_SETTEXT)は他プロセスでも平気じゃなかったか

866 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:04:58 ]
>>865
WM_SETTEXT は大丈夫だけど SetWindowText は駄目

msdn2.microsoft.com/en-us/library/ms633546.aspx
>To set the text of a control in another process,
>send the WM_SETTEXT message directly instead of calling SetWindowText.


867 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:15:11 ]
ちょっと占ってみると
HWNDを間違えてる、とでますた。



868 名前:855 mailto:sage [2008/03/01(土) 00:27:56 ]
ありがとうございました、1~10辺り200回くらい読みなおしてきます

869 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:47:18 ]
VCってどの辺のバージョンからUnicodeビルドがデフォになってるの?

870 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:59:55 ]
2005。Expressロハ化と軌を一にしており
全国の初心者をドツボにハメた。

871 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:07:34 ]
なんかしらんが、Unicodeが楽すぎ。マルチバイトで文字区切りなんて悪夢だ。

872 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:15:58 ]
>>871
で、油断してるとサロゲートペアとかにはまると。

873 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:19:47 ]
UTF16じゃなくて32ならよかったのにな

874 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:32:53 ]
まだWin98が現役だというのに・・・

875 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:34:54 ]
現役じゃねえよバカ
LANケーブル引っこ抜け

876 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:47:15 ]
Windowsフォームアプリケーションでデザイナを使って生成されるコードはMFC?

877 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:47:54 ]
開発環境のスレで聞け



878 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 03:17:58 ]
>>870
VS2005インスコして確かめてみたら、マジだ
なんでデフォの動作をころころ変えるかねぇ・・・

つうかメモリ128MBでVS2005が予想以上に重いw

879 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 03:24:58 ]
オレは今どきデフォでMBCSの方が嫌だよ

880 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 04:49:41 ]
>>849ですが解決しました、Win32APIと関係無いところでミスってたようです。
どもでした。

881 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 04:58:54 ]
ktbr

882 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 07:44:23 ]
ころころ動作を変えてねぇだろ。
いままでずっとMBCSだったじゃないか。
というかおれとしては2002か2003の時点で変えてほしかった。

883 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 08:41:54 ]
2005でもコマンドラインからclやnmake叩いてコンパイルすればデフォはMBCSじゃないの?

884 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 08:53:56 ]
プロジェクト作ったときに、デフォルトで/DUNICODE /D_UNICODE
あたりが定義されるだけだからなー。
だから、nmakeについてはMAKEFILEをどうやって作ったかにもよるんじゃね?
あと、環境変数CLとかw

885 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:35:16 ]
つーか今時メモリ128MBで開発しようなんて思うほうがどうかしてるよ。

886 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:23:20 ]
UNICODE文字が全角幅か半角幅か簡単に調べる方法はありますか?
デバイスコンテキストに固定長フォントセットしてGetTextExtentPoint32()呼び出すしかないでしょうか?


887 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:36:01 ]
一部罫線系の記号なんかは、フォントによって
全角半角の扱いがちがったりするし。
UNIXなら、wcwidthでいけるんだけどね。
まー、64Kbit程度のテーブル一回作れば終わるわけだし作れば。



888 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:37:29 ]
日本語ターゲットなら、SJISに変換して何バイト取るか調べる手もあるか。
BMP外にあるSJIS表現不能な連中はシラネ。

889 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:39:19 ]
>>885
エミュレータだよ

>>886
>>462

890 名前:886 mailto:sage [2008/03/01(土) 13:03:39 ]
>>887-888
ありがとうございます。
記号なんかを含めるとそっちのほうが手っ取り早い気もしますね。

>>889
同じスレ内に答えあったとは・・・
ありがとうございました&すいませんでしたszo


891 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:12:53 ]
>>889
エミュレータでしかもメモリ128KBなら、さくさく動くと思う方がおかしい。

892 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:52:39 ]
>>891
うむ、たしかにそれは桁違いにおかしいな。

893 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:05:19 ]
今時128kのメモリなんて手に入らないだろw

894 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:08:47 ]
今時のCPUのキャッシュよりも小さいな。

895 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:41:47 ]
64KBのおれのマシンじゃ
このスレのdatすら入らないんだぜ(現在194KB)

896 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 16:43:22 ]
まぁ、基本的に文字が幅をもってるじゃなくてグリフが持ってるんだけどね。


897 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:13:11 ]
ZwSetSystemInformationの使い方教えて〜



898 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:59:39 ]
>>895
オンメモリ前提なんてここ数年の出来事なんだぜ
もうちょっと前はオンディスクもほぼ不可能で人間様の手と手書きラベルが前提だったんだぜ
もちっとまえはきりが無いので止めとく

899 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 19:00:53 ]
第一引数に動作モードの定数
第二引数に結果を受け取る構造体のポインタ
第三引数の第二引数が示す構造体のサイズ
戻り値はNTSTATUS
構造体と定数は目的によるのでぐぐる

900 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 19:02:57 ]
ASIC内に内蔵されているメモリとかだと、128Kはそれなりに。

901 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 19:30:01 ]
WindowsをスタンバイにするAPIは何でしょうか?

902 名前:デフォルトの名無しさん [2008/03/01(土) 19:38:13 ]
最小化されている任意のウィンドウの通常時のサイズを取得するには
どうすればいいでしょうか?

903 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 20:23:34 ]
GetWindowPlacement

904 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 22:26:34 ]
IShellFolder::ParseDisplayNameの第3引数
MSDNの説明では入力専用のはずなのに、LPCWSTRじゃなくてLPWSTRです。
これは間違いという事でconstな文字列渡してもいいんでしょうか?

905 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 23:54:43 ]
ぜんぜん知らんけど、コンパイラに怒られなかったら大丈夫なんじゃね
コンパイラに怒られたら、渡す以前の問題だわな

906 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 00:14:17 ]
さー?
CreateProcessみたいな例もあるし、
いまのMSDNでconstじゃないなら、一応従っておいたほうがいいんじゃない?

907 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 04:09:43 ]
フォルダを作成すると通知コードはどんなのが来るのでしょうか。



908 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 04:19:46 ]
来ねーよ
自分で待ち構えてないとな

909 名前:907 mailto:sage [2008/03/02(日) 05:01:13 ]
>>908
ありがとうございます。
WM_で探してみたけどたしかにそれらしいものはありませんでした。
調べてみたところ、
RemoveDirectory()、CreateDirectory()はkernel32.dllの関数らしい
のですが、これをフックして、戻り値を調べればわかるような気がしました。
難しそうなので、まだ自分には早そうですね。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<212KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef