[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 06/03 10:43 / Filesize : 104 KB / Number-of Response : 455
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Win32API質問箱 Build57



1 名前:デフォルトの名無しさん mailto:age [2007/09/08(土) 21:41:22 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

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

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


39 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 19:00:08 ]
ネタなら埋まる前のスレ使ってくれ
ネタじゃないならπが識別子に使えることを教えてくれてありがとう

40 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 19:02:08 ]
ついでに

BOOL CreateProcess(
  LPCTSTR lpApplicationName,                 // 実行可能モジュールの名前
  LPTSTR lpCommandLine,                      // コマンドラインの文字列

Windows NT/2000:このパラメータで const 文字列(リテラル;文字列定数)を指定すると、この関数の Unicode 版である CreateProcessW 関数は失敗します。

41 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 19:04:40 ]
>>37
何だその本は言ってみろ嘘吐きが

42 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 19:27:40 ]
>>39
&piが文字実体参照とみなされてπと表示されただけだろ。
本当は実体参照は、π というように最後にはセミコロンを付けないといけないのだが、
なくても勝手に実体参照として解釈してしまう糞ブラウザが広まったせいで…

43 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 19:41:52 ]
>>42のおかげで>>38,39,41が怒ってる意味がやっとわかった。

>>40はAdvanced Windowsにも注意書きがあったね。
俺が読んだ版では、「将来のOSでLPCTSTRに変更されるだろう」と書いてあったけど
Vistaでは落ちるようになったのか…。

44 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 19:48:15 ]
Vistaじゃなくても落ちるがな

45 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 19:48:57 ]
>>43
Vistaでも落ちる

46 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 19:57:24 ]
えすぱーだ>>42

47 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 20:44:27 ]
よくわかったな>>42
専ブラだったからわからんかった



48 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 20:48:00 ]
πなんて使えないんだから誰でも分かる

49 名前:37 [2007/09/09(日) 20:56:11 ]
>>40
ありがとうございます。
文字列定数であたえるのを変更したら動きました。
昼間からずっと悩んでました。
感謝してます。

50 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 03:46:46 ]
> 本に掲載されたまま一字一句同じように
どこの腐れ書籍かさらしageてよし

51 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 07:36:37 ]
どうせ37が文字セットの初歩的説明を見逃してるだけ

52 名前:デフォルトの名無しさん [2007/09/10(月) 09:21:45 ]
エクスプローラと同じコンテキストメニューを開くにはどうすればいいのでしょうか?

53 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 09:48:25 ]
shellapi

54 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 10:02:33 ]
なんでここの人はMFC使わないの?馬鹿なの?

55 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 10:11:31 ]
>>54
つ[mfcスレ]

56 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 10:11:33 ]
まだMFCとか言ってんの?馬鹿なの?

57 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 10:28:07 ]
覚え立てで嬉しくなってるか、MFCでしか作れないんだろ。



58 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 13:08:40 ]
どうせならWTLで

59 名前:52 mailto:sage [2007/09/10(月) 13:19:32 ]
>>53
FolderItem.InvokeVerbでコンテキストメニューの項目を実行できることなどは
わかったのですが、コンテキストメニュー全体を開く方法がわかりません。
もうちょっと情報をいただけないでしょうか?

60 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 13:32:09 ]
MFCって「マクドナルドフライドチキン」の略だろ

61 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 13:36:03 ]
>>59
IContextMenu

62 名前:52 mailto:sage [2007/09/10(月) 14:18:31 ]
>>61
www.codeproject.com/shell/shellcontextmenu.asp
役に立たねえ野郎だ。
そんな能力で回答しようと思うんじゃねえ。カスが。

63 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 14:27:13 ]
そんなに自分を卑下したらいけない

64 名前:デフォルトの名無しさん [2007/09/10(月) 18:59:50 ]
キーボードの入力判定について質問します。現在GetASyncKeyStateを用いて
キーボードの入力判定を行っているのですが、別ウインドウがアクティブの場合
でも、キー入力を拾ってしまいます。

例えば、自身のプログラムと同時にメモ帳を起動してあるとき、メモ帳への入力
を拾ってしまう。

自身のウインドウがアクティブの場合のみキー入力の判定をしたいのですが、
GetASyncKeyStateでは出来ないのでしょうか。マイクロソフトのサイトでは、
GetASyncKeyStateの説明に
「他のスレッド( またはプロセス)のウィンドウがキーボードフォーカスを
備えている場合は、0 が返ります」とあったので出来るとおもったのですが…。


WM_KEYDOWNなどのメッセージ処理やDirectInputであれば可能なことは解っているのですが、
できれば使用したくありません。

わがままですみませんが教えてください。



65 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 19:38:09 ]
GetForegroundWindow で自分のウィンドウがアクティブかどうか調べれば済むのでは

66 名前:デフォルトの名無しさん [2007/09/10(月) 20:23:37 ]
65さん 上手くいきました。ありがとうございました。

67 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 20:50:33 ]
VC5で使える最後のSDKってどこかで手に入ります?



68 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 22:56:40 ]
EnumWindowで質問があります。ム板で追い出されてしまいました...
諸先輩方よろしくお願いします。

○やりたいこと
・PHP+Cで、PHPから外部exeを起動して任意のWindowのPrintScreen取得。
 外部exeは常駐ではなく、PHPで指定されたときのみ実行。

○質問 :
@PHPからEnumWindowを使用した外部exeを起動すると、外部exe内のEnumWindowが期待通りに動かず、
 意味のわからないハンドルを取得してしまいます。
 ソースが学校のためうろ覚えですが、取得ハンドルのタイトルを見る限り、"Zend Timeout Window"とか"SENS"とか、
 "○○WindowSocket?"のようなものが5つくらい取得されていて、Windowsアプリのハンドルは取れませんでした。
 これは何でしょうか?回避方法を教えてください。
APHPで任意のWindow画面の画像キャプチャする方法があれば、ヒントを教えて下さい。

○プログラム内容 :
・Cプログラム
コンソールからWindow画像を取得するexeを作成しました。
起動時にWindowタイトルの一部を入力すると、その画像を取得します。不一致はデスクトップ画面を取得します。
EnumWindowでハンドル取得 -> Bmp作成 -> BitBlt -> ファイル保存の流れです。
コンソールからは正しく動作しています。

・PHPプログラム
 簡単な入力Formのみ。ボタンを押すと上記exeをsystem命令で起動しています。

○環境
 ・Windows 2000, Pen4 2G, MEM 512M
 ・Apache2.2.4, PHP 5.2.4 + zend debugger, VC6, eclipse + PDT

69 名前:68 mailto:sage [2007/09/10(月) 22:58:59 ]
>>68
ム板で追い出されたのではなくマ板でした。失礼しました。
Win32APIのスレッドですが、できればPHPの方もアドバイスお願いします。

70 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 23:00:06 ]
宿題は宿題スレへ

71 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 23:00:26 ]
PHP用のモジュールを作ればいいだけの話。

72 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 23:01:55 ]
>>69
禿しくスレ違い。PHP板で聞いた方がいい。

73 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 23:09:02 ]
全部一つのexeでやってしまえば解決

74 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 23:11:42 ]
百個のexeでやってしまえば解決

75 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 23:16:57 ]
>>68
Apacheがサービスとして動いているなら、
EnumWindowがうまく動いていないように見えるのは、
デスクトップが異なっているため。
ウィンドウステーションとかでググれば色々わかると思う。

サービスのプロパティで、
「デスクトップとの対話をサービスに許可」にチェックを入れれば、
そのプログラムはお前が思っていたとおりに動くようになるかもしれない。
ただし、セキュリティ上の問題があるかもしれないので、慎重にやれ。

76 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 23:20:03 ]
一応API関係なんじゃないの
PHPがサービスとして起動していて目的の窓と別セッションになっているとか

77 名前:68 mailto:sage [2007/09/10(月) 23:27:30 ]
>>75
どうもです。ウィンドウステーション知りませんでした。
プロセスが異なるぐらいは想像していたのですが、
検索キーワードがまったく思いつきませんでした。
ありがとうございます。セキュリティーは何とかなりそうです(多分)。



78 名前:68 mailto:sage [2007/09/10(月) 23:49:22 ]
>>76
どうもです。仰るとおりサービスで起動しているため、ユーザーのデスクトップが取れていなかったみたいです。
ネット調べてたらGetProcessWindowStation命令で行けそうな感じです。
ありがとうございました。参考リンクはっときます。

ttp://forums.belution.com/ja/vc/000/401/43.shtml
ttp://support.microsoft.com/default.aspx?scid=kb;ja;173687

79 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:02:32 ]
多少和んだ

80 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:05:21 ]
>>78
殺す

81 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:27:49 ]
>>80
なんで?
キンタマみたいなのができそうだから?

82 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:30:40 ]
どして殺すの( ゚д゚)


83 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:32:27 ]
( ゚д゚ )なぜ殺した

84 名前:68 mailto:sage [2007/09/11(火) 00:41:41 ]
あはっwwwすでに殺されてるしwwwwwww
ウイルス作る技術も度胸もありません。へたれなんでwwwwwwwwww
セキュリティー絡みの監視ソフト作成してて、画面の定期的なスナップが必要だったのです。
皆様どうもです!

85 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 01:16:02 ]
>>84よ、>>80は実は優しい子。
あとでザオリクをry

86 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 01:38:20 ]
VC++6で生成したサンプルプログラムが
2005Expressでコンパイルできない(´・ω・`)

87 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 01:44:29 ]
ありがち



88 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 01:44:45 ]
>>86がバカだからVC++6で生成したサンプルプログラムが
2005Expressでコンパイルできない(´・ω・`)

89 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 04:59:18 ]
フリーソフトのLinkOpenとかでやっている、
「エクスプローラ上のファイルのアイコンを選択状態(シングルクリックした状態)にする」
のってどうやるんでしょうか。いわゆるシェルAPIを使うだと思うのですが、
扱ったことがなく見当がつきません。よろしくお願いします。

90 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 05:10:42 ]
explorer C:\Windows,/select

91 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 05:49:58 ]
おお! 今はもう時間が無いのでとりあえずですが
「ファイル名を指定して実行」で期待した振る舞いになるのを確認しました

ありがとうございます


92 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 11:59:03 ]
SJISベースのアプリ(のGUIなコントローラ)にUNICODEのファイル名を突っ込むと
当然変換時に欠落した文字がでてファイル操作等に失敗する可能性が出てきますが
そういうのをなるべく小手先で対処する方法はないですか?

1. Unicodeなテキストをメモリ上にロード
2. 1.のメモリデータをSJISなAPIやコントローラ(ListBox等)に突っ込む
3. 2.のデータを取り出してファイル操作 <- ここでエラー

例えば1.2.の間でファイル名がSJISに変換不可と判明したら8.3形式にするといったことをやれば出来るのかなと漠然と考えていますが・・・

93 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 12:22:44 ]
それでいいんじゃね

94 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 12:45:12 ]
ハードリンクを作るとか

95 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 18:57:12 ]
>>92
ファイル名だけ対応しているソフトは結構あるが;
パス名に対応していないソフトが多いですね。
ぜひ、がんばって対応してください。
UTF-8 に対応したソフトも増えてきたので、内部で UTF-8 でやったどうですか?

96 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 19:00:24 ]
やったどう

97 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 19:45:02 ]
殺した後に姦淫してやる



98 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 21:26:37 ]
( ゚д゚ )なぜ犯した

99 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 21:31:08 ]
復活させるため

100 名前:デフォルトの名無しさん [2007/09/11(火) 21:31:18 ]
そこに穴があるからさ!

101 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 22:46:57 ]
特定のコントロールに文字を送りたいんだけどどうしたらいい?

102 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 22:49:06 ]
そんな簡単な事も分からんのか死ね

103 名前:デフォルトの名無しさん [2007/09/11(火) 22:50:40 ]
おまえにはふたつあるが
おれにはひとつしかないじゃないか
しかもぼうがひとつおおいし…

ありゃ2か…
ありゃりゃ3か…orz

104 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 22:50:51 ]
どんな風に渡すかにもよる
単純にSetWindowTextで済むなら楽だが

105 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 23:02:27 ]
ゴメ

特定のコントロールに対してVBAのSendkeysの様に文字を送りたかったんだ。

sendkeyじゃ誰かが触ってアクティブフォームが変わったら送り先が変わってしまうので、
送り先を指定してkeyを送りたい。

106 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 23:22:15 ]
ウィンドウ指定してWM_KEYDOWNでいいんじゃねーの

107 名前:デフォルトの名無しさん [2007/09/12(水) 00:51:33 ]
初歩的な質問で申し訳ないのですが、タイトルバーの横にあるMINBUTTONやCLOSE BUTTONって、
どうやってメッセージを捕まえるのでしょうか?ご教授よろしくお願いします。



108 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 00:53:48 ]
>>107
GetMessage
WM_SIZE
WM_CLOSE

109 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 00:59:38 ]
WM_SYSCOMMAND

110 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 01:05:06 ]
>>108 >>109
ご教授ありがとうございます。
WM_SYSCOMMANDで欲しいメッセージを捕まえることができそうです。
ありがとうございました。

111 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 01:53:49 ]
作ってるアプリの機能がかなり増えてきて
コールバック関数がものすごく肥大化してきました。
これはやむを得ないことなんですかね?

112 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 01:56:04 ]
いいえ

113 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 01:59:36 ]
どうすりゃええのん

114 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 01:59:46 ]
例えばウィンドウプロシージャなら、
メッセージクラッカみたいに――あるいはそれを使って――
メッセージ毎に関数を分割するという手がある。

115 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 02:01:50 ]
茸っぽい
茸は文学ではない

116 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 02:07:32 ]
メッセージクラッカですか
そういうのがあるんですね
ありがとうございました

117 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 05:37:40 ]
デバイスコンテキストに対して、特定の座標の色の取得・設定はGetPixel, SetPixel(V)を使うしか方法はないですか?
速度が遅いので、他の方法を使いたいのですが。(TextOutとかはどうやって描いてるんだろう…



118 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 05:55:53 ]
>>117
↓読むと幸せになれるかもしれない
wisdom.sakura.ne.jp/system/winapi/win32/win121.html

ちょっとややこしいが

119 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 06:04:22 ]
>>118
ありがとうございます。
一旦CreateDIBSectionで作ったビットマップにBitBltしてコピーし、
そこで直接データを読み書きして、その後、元のデバイスコンテキストへBitBltして戻す、という方法が思いつきました。
早速書いてみます。

120 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 10:23:20 ]
現在、汎用的な関数として、
GetLastErrorからFormatMessage, MessageBoxへの連携処理を考えています。

ここのGetLastErrorで返されるエラー値なんですけど、
この値からメッセージの分類(クリティカル・警告・情報...etc)とか
判別できるものでしょうか?

できるのであれば、その手法を教えていただけませんか?
ちなみに、皆さんはどうしています?


121 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 14:14:48 ]
思想を改める必要がある

GetLastErrorはあくまで補助的なものであって、本来やりたかった処理が失敗したことを通知することが最優先。
FormatMessageで得られるエラー原因は追加で表示してユーザーの参考にさせる程度が関の山。

122 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 14:34:55 ]
HRESULTはビット毎に意味があるけど、GetLastErrorはビット29以外は
見た覚えがないな。

123 名前:120 mailto:sage [2007/09/12(水) 14:57:04 ]
>>121
なるほど、割り切って内容だけを表示させることに勤めます。

>>122
HRESULTの資料を見て、>>120を考えてみたんですが、
ダメそうです。

お騒がせしました。

124 名前:デフォルトの名無しさん [2007/09/12(水) 21:25:05 ]
hMenu = LoadMenu(NULL, _T("IDR_MENU"));
SetMenu(hWnd, hMenu);

MENUITEMINFO menuItemInfo;

ZeroMemory(&menuItemInfo, sizeof(menuItemInfo));
menuItemInfo.cbSize = sizeof(menuItemInfo);
menuItemInfo.fMask = MIIM_TYPE;
menuItemInfo.fType = MFT_STRING;
menuItemInfo.dwItemData = TEXT("追加された");

//InsertMenu(hMenu, 15, MF_BYCOMMAND, 16, _T("追加された"));
InsertMenuItem(hMenu, 15, FALSE, &menuItemInfo);

DrawMenuBar(hWnd);

「追加された」が追加されず、セパレータになるんですが、どうしてですか?
InsertMenu の方だとちゃんと追加されます。

WinXP SP2
VC++2005


125 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 21:36:43 ]
dwItemData = TEXT("追加された");  は
dwTypeData = TEXT("追加された");
じゃないかな ぱっとみだから間違ってたらすまんこ


126 名前:124 [2007/09/12(水) 21:41:50 ]
>>125
ありがとうございました。
全然、気づかなかったです。名前が似てるから・・・
無事に、追加されました。


127 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 00:48:15 ]
とある人力検索にて

Q:Web2.0が遺した物って何ですか?

A:DoCoMo2.0です



128 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 01:51:52 ]
あるソフトのウィンドウ(syslistview32)にコンテキストメニュー
を表示しようと思い、

PostMessage(hWnd, OS.WM_KEYDOWN, VK_APP, 0);
PostMessage(hWnd, OS.WM_KEYUP, VK_APP, 0);

を実行しましたが何も反応がありませんでした。

別のソフトであればコンテキストメニューが表示されます。
やり方が間違っているのでしょうか?
ちなみに右クリックした瞬間(押し下げた瞬間)にメニューが
出るソフトと、クリックし終わった瞬間(押し上げた瞬間)に
出るソフトの両方があるんですね。


129 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 02:08:58 ]
単純にそのソフトがそのキーを拾ってないだけじゃないの

130 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 02:10:40 ]
WM_CONTEXTMENUを送ったらどうだろう?

131 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 09:49:52 ]
spyを使おうぜ

132 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 11:47:02 ]
>>130

できました!!

WM_CONTEXTMENUはコンテキストメニューが開くときに
自動的に送信されているんだと誤解してました

>>131
spyってwinspectorのことですか?

133 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 12:00:34 ]
ウザイからどっか行って

134 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 16:43:29 ]
どうしてもわからんので教えてください!

libpngとlibjpegを使っているのですが
片方ずつ使う分には問題ないのですが両方のlibを使おうとすると
LINK:2005エラーが出てしまいます。最初ランタイムが違うのかと
libの方を確認してビルドし直したりしたんですがどうやらそういう問題
ではなさそうです。何か解決法はあるのでしょか?

呼び出し方はこんな感じです。
#ifdef _DEBUG
#pragma comment(lib, "libjpegd.lib")
#pragma comment(lib, "libpngd.lib")
#else
#pragma comment(lib, "libjpeg.lib")
#pragma comment(lib, "libpng.lib")
#endif

135 名前:134 mailto:sage [2007/09/13(木) 17:03:16 ]
Σ(・∀・ )勘違いでしたすみません解決しました><

136 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:17:50 ]
プログラムを動かしてるOSにないAPIを使ったらどんなことが起こるのでしょうか。
例えばWin9xでW系APIや、Win2000でuxthemeのAPIなどです。
その関数が実行されないだけとか、何かエラーが発生する、そもそも起動できないとか。
試す環境がないので聞いてみました。

137 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:25:17 ]
爆発する



138 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:38:32 ]
>>136
スタティックリンクならエントリポイントが見つからないとかなる
動的リンクなら実行されないかエラーになる

139 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:40:13 ]
ttp://www.uploda.org/uporg1016109.png
起動はする(CreateProcess == TRUE)けど、エントリーポイントに行く前にcsrss.exeが爆発させるので
ユーザー視点では起動しないのと同じ

140 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:55:22 ]
9xのW版APIはエントリポイントだけあるはず。
そして稀にMessageBoxWやTextOutWなど機能するものがある。

141 名前:デフォルトの名無しさん [2007/09/13(木) 22:55:24 ]
dllからアタッチしたプロセスIDやウインドウハンドルとか取得するには何を使えばいいんですか。
ヒントください。

142 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:58:50 ]
あたっちすれっどなんとかとか

143 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 23:08:56 ]
>>140
忘れてけどそういえばそうだった 単純に失敗を返すだけの実装になってるんだった
で、たいていRegisterClassで失敗して無言でWinMainを終える、と

144 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 23:16:57 ]
プログラミングWindowsで、RegisterCassExが失敗したら
MessageBoxで9x非対応というメッセージを表示して終了するコードを見て、
なるほどと思った。

145 名前:141 mailto:sage [2007/09/13(木) 23:19:59 ]
>>142
ありがとん
DWORD GetCurrentThreadId(VOID);を見つけました。

146 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 00:03:42 ]
>>140
MSLU使えば強制ANSI変換で一応動くはずだしな

147 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 00:07:00 ]
>>146
つい先日、MSLUの浮動小数点のバグではまった。



148 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 00:08:35 ]
だがすぐに抜け出した。

149 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 00:56:25 ]
そしてまたはまった。

150 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 01:07:53 ]
なんかエロい話だな

151 名前:デフォルトの名無しさん [2007/09/14(金) 02:56:13 ]
出して、入れて、出して、入れて、これがプログラムの基本です。

152 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 04:01:22 ]
SNEG?

153 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 05:09:26 ]
挿入が先だ。POPは後だ

154 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 05:14:05 ]
朝からinserterだのpush_backだのと

155 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 05:18:01 ]
Oh,Yes!Come on Fuck me!!

156 名前:デフォルトの名無しさん [2007/09/14(金) 07:10:43 ]
Yes,pussy

157 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 07:46:26 ]
Shell_NotifyIcon の uTimeout が10秒より短くしても無視される件、
突破する方法しりませんか?

3秒がいいんだけど。



158 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 07:55:35 ]
The system minimum and maximum timeout values are currently set at 10 seconds and 30 seconds, respectively.

159 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 08:21:35 ]
通知アイコン専用スレッド作っちゃえ。
Shell_NotifyIconがタイムアウトするのは、
別の重い処理が走っているという事だから、
焦らず待ってもいい気はするけどね。

160 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 17:33:22 ]
shit

161 名前:157 mailto:sage [2007/09/14(金) 18:13:00 ]
>>158
それは読んだ。レジストリとかで変更できるのかな。
まさかシステムのDLLにハードコードされてるのか??

>>159
szInfoにNULLを渡すと消せるみたいなので、自分でタイマ制御するかな。。。

162 名前:デフォルトの名無しさん [2007/09/14(金) 20:32:52 ]
もしスレ違いだったらすみません。

ウィンドウを複数表示させて(子ウィンドウなど)、
ひとつのウィンドウをドラッグして移動させたら、
他のウィンドウも一緒に移動するようなことってできないんですかね?
グループ化のようなことです。

163 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 21:06:13 ]
>>162
ハンドル保持してるんなら
WM_MOVEとかで設定したら?

164 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 21:25:23 ]
>>162
>>163はなしで
WM_MOVEは移動後に送られるもんだった


165 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 21:43:40 ]
WM_MOVING

166 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 23:39:20 ]
素朴な疑問です。
皆さんにとってTCHAR型は現役ですか?

typedef std::basic_string<TCHAR> tstring;
とか
#ifdef UNICODE
とか、
もうそんな時代じゃないのでしょうか?
コード量を増やし、可読性を下げる、ゴミ虫のような存在でしかないのでしょうか?

167 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 23:50:03 ]
TCHARで思い出したけど。
Win32APIのワイド文字はあくまでWCHARであり、wchar_tは違うよね。



168 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 23:59:01 ]
俺はTCHARを現役にさせている。
使わないけど目の前にWindows 98マシンを置いている影響かも。

しかし、#ifdef UNICODEはメインのコード中には出現させない。
比較的ライブラリ的な部分で吸収するようにしている。

>>167
そうかもしれないけど、
でもきっとみんなごっちゃに扱っているよ。
少なくとも俺はそう。

169 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 00:02:43 ]
俺も現役だな。
文字列は LPCTSTR とか _T() で囲ってたりする。

ただ tstring も使ってはいるんだけれど、
サロゲートペアの問題により
TCHAR* 変数を ++ した所で次の文字を指す保証は無いと知って、
CharNext() を利用する CString の方が安全という事を最近知った。

170 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 00:07:36 ]
VC2005でプロジェクト作ってまずするのは、「マルチバイト文字セットを使用する」

171 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 00:20:17 ]
はい、>>166はゴミ虫のような存在でしかありません。

172 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 01:32:40 ]
> TCHAR* 変数を ++ した所で次の文字を指す保証は無いと知って、
どうして?

173 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 01:33:10 ]
ごめんサロゲートペアって書いてあるな

174 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 01:33:17 ]
>サロゲートペアの問題により

175 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 01:44:12 ]
漏れはTCHAR撲滅
STLでstd::string使うようにした
コードはUTF-8
API呼ぶときだけWCHARにして渡してる
戻り値も変換してから使う
無駄なこと考えなくて済むようになったので
プログラミングに専念出来るようになった

176 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 01:49:24 ]
std::stringにUTF-8を突っ込むとな?

177 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 01:56:34 ]
>>169
CharNextはサロゲートペア非対応って書いてあるけど。
blogs.msdn.com/michkap/archive/2005/01/14/352802.aspx
でも結合文字列に対応しているのは立派。

あと、tstring/CStringで、インクリメントして次の文字にならないと言えば、
サロゲートペアや結合文字列の前に、ANSI時のマルチバイト文字があるだろうに。



178 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:05:26 ]
>>169
サロゲートペアでなく、マルチバイトの問題のことを言っているのか?

現時点ではCharNextを使ってもサロゲートペアは扱えず、
IS_SURROGATE_PAIR
IS_HIGH_SURROGATE
IS_LOW_SURROGATE
というマクロを使って判定するしかないそうな

参考
ttp://slashdot.jp/articles/06/12/26/0059208.shtml

179 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:06:55 ]
かぶった...orz

180 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:44:17 ]
>>176
なんか問題あるの?

181 名前:169 mailto:sage [2007/09/15(土) 02:44:40 ]
>>177-178
うそん orz

182 名前:デフォルトの名無しさん [2007/09/15(土) 02:52:03 ]
質問です。
VB6 でファイルのプロパティ(バージョンや製品名など)を取得するのに
GetFileVersionInfo等を使っています。
ロケールIDをVerQueryValueで取得できたので、言語名をGetLocaleInfo(ロケールID, LOCALE_SENGCOUNTRY)で
取得すると、"Japan"という英語の文字列が返ってきました。
しかしシェルの「ファイルのプロパティ」で表示されるのは「日本語」や
「英語(米国)」など日本語の文字列です。
これを取得するにはどうしたらいいんでしょうか?

183 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:55:14 ]
ジャパーン♪

184 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 03:33:22 ]
FAR PASCALとかNEARって書いてあるコードをたまに
見かけますが
どういう意味があるんですか?

185 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 03:41:58 ]
16ビットの名残

186 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 10:31:59 ]
_stdcallとか_cdeclって書いてあるコードをたまに
見かけますが
どういう意味があるんですか?

187 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 10:37:18 ]
聞く前にドキュメント嫁



188 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 10:37:35 ]
ググれ

189 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 10:40:16 ]
ドキュメントなんてないし
ぐぐってもでないからきいてるんだよ
わかんないなら書き込むなよ

190 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 10:43:44 ]
すいません 調べたらなんとなくわかりました
スレ汚しすまそ

191 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 10:49:28 ]
>>189
死ね

192 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 11:00:09 ]
>>182
MSDNよく読めや、ボケが。

と言いたいところだが、これに関してはwinnls.hを直接読んだ方が遥かに手っ取り早い。
たぶん、必要なフラグは LOCALE_SNATIVELANGNAME だと思う。

193 名前:デフォルトの名無しさん [2007/09/15(土) 11:14:18 ]
クイズの答えをEditコントロールに入力し、
その文字列を取得し、比較し正解か不正解か

というものを作りたいんですが、文字列を取得する方法を教えてください。
一応調べたら、GetWindowTextではできないってことはわかったんですが・・。

194 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 11:19:30 ]
次の質問をどうぞ

195 名前:193 [2007/09/15(土) 11:37:50 ]
すみません。自己解決しました☆GetWindowTextでできました。

196 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 13:35:36 ]
おめでとう☆

197 名前:デフォルトの名無しさん [2007/09/15(土) 15:42:58 ]
以前、マウスカーソルの移動とキーの自動入力を行うプログラムを作る必要があり、
その時は、調べて解決したのですが、今調べるとどうしても見つかりません。

たしか、APIをコールした後、開放しないと入力を受付けなくなるタイプと、
入力を受付けるタイプ(たしか、こちらは非推奨だったような)の二つがあったと思います。
そのような、マウスカーソルの移動とキーの入力を行う
APIの名前をご存知のかたがいらっしゃったら教えてください。



198 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 15:50:48 ]
チートしたいから教えて下さいってはっきり言えや

199 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 17:26:15 ]
チートしたいから教えてください!

200 名前:デフォルトの名無しさん mailto:age [2007/09/15(土) 17:48:13 ]
ISAPIでのメールスロットについて悩んでおります。

まず、メールスロットのサンプルプログラムを作りました。
HANDLE hSndSlot = CreateFile(SLOTNAME, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ) ;
この通りにCreateFileしますと問題なくハンドル作成できます。

次にISAPIのDLLの中で全く同じCreateFileの一文を書いたのですが、
ERROR_ACCESS_DENIEDのエラーになってしまいます。
(CreateMailSlot無しですと、ISAPI-DLLの中でもERROR_FILE_NOT_FOUNDが返ってきます)

ISAPI-DLL内でCreateFile()に失敗する原因としてどのようなものが挙げられるでしょうか。
二時間以上悩んでおりますが全く抜け出せません・・・

201 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 18:59:20 ]
セキュリティー上危なくない?

202 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 23:06:26 ]
すみません。
OleLoadPictureを使ってjpegを読み込みたいのですが、
読み込んだ直後にIPicture::get_Height、 get_Widthでサイズを取得すると、
実際の画像の大きさよりかなり大きな値になりました。
例えば113 は 2990に、640は16933になります。
OleLoadPictureの戻り値は正常です。
何か原因でしょうか?

203 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 23:11:32 ]
>>202
それ単位がPixelじゃないんだ
HIMETRICなんだ

msdn2.microsoft.com/ja-jp/library/bc81z8b6(VS.80).aspx

204 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 23:52:07 ]
>>203
なるほど。おかげ様で正常にピクセル単位に変換できました。
ありがとうございました。

205 名前:デフォルトの名無しさん [2007/09/16(日) 00:50:29 ]
>>192
回線切ってwinnls.h を読んできました。なんとかなりそうです。
SENGCOUNTRY って、English Country のことですね。
そこら辺に落ちてたサンプルの作者が分かってなかったみたいです。
人のせいにします。
ありがとうございました。


206 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 00:53:00 ]
このスレの人たちはMFC使ってない人が多いのかな?
個人的にはMFCきらいなんでWin32そのまま使ってます

207 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 00:56:36 ]
MFCは別スレなんだから、ここは使ってない人が多いのは当たり前。



208 名前:デフォルトの名無しさん [2007/09/16(日) 01:10:04 ]
>>205
一応追伸
俺が求めていたのはLOCALE_SLANGUAGE(localized name of language)
だったようです。では。

209 名前:200 mailto:sage [2007/09/16(日) 08:46:51 ]
もう5時間試行錯誤しているのに
さっぱり進めないッスorz

210 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 08:52:10 ]
>>209
>>201

211 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 08:55:31 ]
>>209
死ぬまで彷徨えばいいよ

212 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 09:25:48 ]
>>209
ISAPI全然しらんけど
MSDNライブラリの「Reading from a Mailslot」っての読んだ?

213 名前:デフォルトの名無しさん [2007/09/16(日) 09:27:23 ]

SHFileOperation でフォルダ・ファイルのコピー等の操作をしています
Explorerでは、出てくるダイログが最前面表示でしっかり出てきますが、
Flagの設定等でそれと同じようにできるでしょうか、教えてください。


214 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 09:35:37 ]
できます

215 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 09:38:50 ]
>>209
正直IIS全然詳しくないけど、ISAPIってNetworkServiceで動作するんじゃないの?
メールスロットの作成元がよく判らないけど、
既定では作成ユーザかSystem位しかアクセスできないような気がする。

216 名前:デフォルトの名無しさん [2007/09/16(日) 09:41:25 ]
>>214

どうもありがとうございました!!

217 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 09:43:06 ]
bool(BOOL)は扱いが楽だが、たまに情報量が少なくて戻り値型を変えてほしいと思うケースがある



218 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 09:52:10 ]
HRESULTにしろってか

219 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 10:00:27 ]
>>214
ところで、Flag引数のバリエーションにはヘルプによると

fFlags
FOF_ALLOWUNDO
FOF_CONFIRMMOUSE
FOF_FILESONLY
FOF_MULTIDESTFILES
FOF_NOCONFIRMATION
FOF_NOCONFIRMMKDIR
FOF_NO_CONNECTED_ELEMENTS
FOF_NOCOPYSECURITYATTRIBS
FOF_NOERRORUI
FOF_NORECURSION
FOF_NORECURSEREPARSE
FOF_RENAMEONCOLLISION
FOF_SILENT
FOF_SIMPLEPROGRESS
FOF_WANTMAPPINGHANDLE
FOF_WANTNUKEWARNING

とありましたが、これ以外にもありますでしょうか?該当の内容のFlagが
見つけられずにいます、よろしければご教示のほどよろしく!

220 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 10:34:25 ]
ヘッダ眺めれ

221 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 10:45:58 ]
hwnd

222 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 13:39:59 ]
>>220-221

hwnd ではゼロポインタを指定しています。これを別のものに設定すると
可能になるでしょうか。
じつはWin32APIはほとんどこれしか使っていない.NETユーザーなもので
この辺のことがよくわかりません。すみませんが、よろしくお願いします。


223 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 15:19:06 ]
>>222
C言語暦1ヶ月のわて思うに
hwndをゼロポインタにしてるから、SHFileOperationがいじけたんじゃね!
ゼロ以外のhwndにしなきゃ駄目なんじゃない。とにかくゼロ以外の、たとえば
1とか2とかに変更して試してみたらいいんじゃね。オーナーウインドウが何か知らないけど、
出来ればオーナーウインドウのHWNDが指定できると申し分ないと思うんだけど。


224 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 15:26:18 ]
>>223
あなたのいるプロジェクトは危険だというのが
その文章からヒシヒシと伝わってくる

上達にするようにがんばれ。超がんばれ。

225 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 15:29:51 ]
オーナーを指定すれば、必ずその上にウインドウが来ると言うだけの話。

226 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 15:48:49 ]
>>224
わてはプロジェクトにいないづら。学校に居て教室で講義子守唄にzzzz
間違ってC言語の授業とってしまった,orz。
Cは一々型を指定しなきゃならないから鬱陶しいなり。
動的言語が主流の時代にC言語を教えてる学校だから、やっぱ危ないよなわての学校

227 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:00:35 ]
何でここにおんねんw



228 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:04:21 ]
>>226
Cはやっておかないとだめよ

229 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:10:29 ]
その主張は重々わかるんだが、それでもソフトウェアする上で避けられないのがCなんだよなあ。
Java, C#マンセーな俺だがそれでもC使えないヤツはだめだと思う。

230 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:11:24 ]
>>227
宿題スレ行くつもりが、スレタイよくを見ずにクリックしたらココが現れたなり
これ何かの縁づら。

231 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:29:05 ]
はいw雑談スレになりましたw

232 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:50:42 ]
>>226
学校の授業はそれくらい保守的なのが相場。

233 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 16:57:24 ]
東大ってことしからpython教えてなかったか?

234 名前:222 mailto:sage [2007/09/16(日) 17:28:32 ]
>>223
どうもです。確かな縁で教えていただくことができました。助かりました!!

>>225
あーそうだったんですか、、やっとわかりました。うまくできているのですね!!

みなさんどうもありがとうございました!!


235 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:26:42 ]
Windows画像とFAXビューアの高速版を自分で作ろうとしていたら、
FindFirstFile、FindNextFileでは、エクスプローラで表示されている順番で
ファイル名を取得することができませんでした。
例えば、更新日時でソートしてあるフォルダでは更新日時順に画像を表示したいです。
適切なAPIがあれば教えて下さいませ。

236 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:38:23 ]
RegQueryValueEx

237 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 19:15:08 ]
IShellFolder, IShellFolder2



238 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 20:38:44 ]
>>236>>237
そのキーワードで検索して色々と知ることができました。
後は自分で調べていきたいと思います。
どうもありがとうございました。

239 名前:200 mailto:sage [2007/09/16(日) 21:53:54 ]
IISの権限の問題でした。
admin権限で動かしてみたところ成功いたしました。
レスくださったかたありがとうございました。

240 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 04:26:08 ]
InsertMenuItemでMENUITEMINFOを指定しますが、メニューの
文字色を変えるにはどのようにしたらいいのでしょうか?

fTypeをMFT_STRINGにすると色を指定できないようですし

241 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 04:29:28 ]
MFT_OWNERDRAW を指定して自分で描く

242 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 04:43:21 ]
>>241

こんな時間に即レスthx
トライしてみます

243 名前:デフォルトの名無しさん [2007/09/17(月) 10:15:08 ]
VC についてるspy++なんですが、アプリ起動の際に、メッセージ横取りを禁止させる関数ってあるんすかね?

244 名前:デフォルトの名無しさん [2007/09/17(月) 10:16:04 ]
無い

245 名前:243 [2007/09/17(月) 10:20:28 ]
関数といったのが、まずかったか・・・方法でもいいんですけど・・・
凄い人が集まってそうなので聞いてみたんですが、アプリ解析対策とかしないんですか?

246 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:22:06 ]
逆に聞きたいのだが、>243からどうやったら>245の意味を読み取れると思うのだ?

247 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:23:04 ]
フックを禁止する方法が無いんじゃね

kernel32に手出ししてみるとか?



248 名前:244 mailto:sage [2007/09/17(月) 10:24:19 ]
メッセージ見られるとやばいようなら最初からCUIにするよ

249 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:24:37 ]
故意か天然かしらんけど、煽り口調になってるぞ。
煽ってもなにも出ないばかりか、袋にされるだけさ。

250 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:29:10 ]
rootkitみたいなものを作って叩かれたいマゾなんだね。

251 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:41:39 ]
チートしたい人とチートされたくない人って似た質問するんだよね

252 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:44:21 ]
敵を知り己を知ればなんとやら

253 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:45:26 ]
>>251
チートておまえ・・・。

254 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:47:40 ]
メッセージレベルでクラック対策しようってのがそもそも間違ってる

255 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:55:36 ]
そういえばそんなフィルタドライバのソースがどっかに転がってたな
読もう読もうと思っててそのままURLもとろも失くしてしまったが

256 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 10:56:17 ]
もとろも!   orz

257 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 11:20:11 ]
         ,-、            ,.-、
        ./:::::\          /::::::ヽ
       /::::::::::::;ゝ--──-- 、._/::::::::::::::|
       /,.-‐''"´          \:::::::::::|
     /                ヽ、::::|
    /                    ヽ
     l    \                  l
    .|    ●          /     |
     l  , , ,           ●     l    にゃんだばかやろー
    ` 、      (_人__丿    、、、   /
      `ー 、__               /
         /`'''ー‐‐──‐‐‐┬'''""´
        ./        ___ l __
         l   ./    /  |/ |
         `ー-<    /  ./  ./
           `ー‐--{___/ゝ、,ノ



258 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 13:01:25 ]
フックされても問題ないように
パラメータを暗号化すれば医院で内科医


259 名前:デフォルトの名無しさん [2007/09/17(月) 13:53:37 ]
文字列テーブルの文字を使うのに
文字配列用意してそこにコピーしないとだめっていうのは
面倒ですねぇ・・・。
文字配列の大きさの問題(文字列が入りきらない可能性)もあるし。
無駄に大きな配列用意するのもどうかなってかんじ。

260 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 14:42:50 ]
よくわからんが、必要なサイズぴったしに malloc すればいいんでないの?

261 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 16:45:47 ]
ListBoxとか使うときに
自分で持ってる構造体があるのに
API用にもうひとつ作ってコピーしないといけない理不尽
のことを言ってるのかな?


262 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 17:06:36 ]
>>261
 >API用にもうひとつ作ってコピーしないといけない理不尽
 コピーした領域をOSに渡す形なら、OS側は任意の時点で領域解放できる。

・アプリが持っている領域を、直接OSに渡した場合、その領域を解放するタイミングを知るスマートな方法はあるか?
(OS側の処理が先に終わった場合、アプリに、その領域を解放してよいか問い合わせるのか?
 それとも、解放要求をアプリに対して発行するのか?
 どちらも本末転倒でしょ?)


263 名前:262 mailto:sage [2007/09/17(月) 17:08:04 ]
261じゃなくて >>259 だった。すまん

264 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 17:23:44 ]
ニワトリが先か、タマゴが先か論争に発展してきますた。

265 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 17:26:01 ]
Javaや.NETはもう一度コピーしてるんだからまだマシ

266 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 18:18:56 ]
>>265
kwsk

267 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 18:21:53 ]
>>266
ahsg



268 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 19:01:46 ]
そもそも>>259はLoadStringの話に見えるのは気のせいか?

269 名前:デフォルトの名無しさん [2007/09/17(月) 21:25:47 ]
そうなんです。
LoadString で文字列を取り出すとき
文字列の長さを気にせずに柔軟に取り出せる良い方法ないのかなぁと悩んでます。
いろいろ調べて MFC か ATL 使えばいけるのはわかったんですが
Windows プログラミングの勉強はじめたばかりで
両方ともよくわかってないんで
とりあえず MFC も ATL も使わないで出来る方法ないのかなぁと悩んでたんですけど
三日ぐらいあれこれ考えたんですけど
コレといったのが見つからないんでもう悩むのやめます。

270 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 21:38:28 ]
それならLoadResourceとかを使えばいいんだよ。
俺もやった。リソース内ではUTF-16LEのくせに、
なぜか9xがLoadResourceWを実装していないというケチさのおかげで。

271 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 21:40:25 ]
NULLを含まない格納した文字数が返るのだから nBufferMaxの値-1
が返ってきたときはたぶんバッファを増やさないといけないと判断できると思う

最初 260 とかでスタックにとって、それで足りなそうな場合だけ動的に 260*2 。
それでもだめなら 260*2 *2 。それでにだめなら 260*(ry
って感じか?



272 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 21:51:57 ]
俺はめんどくさいからそんな仕様にしない

273 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 22:25:38 ]
ネットで勉強してウィンドウとメニューバーまでは作れるようになったけどあと
がまったくわかりません(´・ω・`)
フリーソースのを見て勉強するのがいいってよくみるけど読んでみてもチンブンカンブン
需要はあるはずなのになんでWin32APIの書籍ってこんなに少ないんだろ…
どこかいいサイトか本ありませんか?

274 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 22:27:22 ]
>>271
そーいやリソース文字列は、最大65536バイトまでだったけ?

275 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 22:32:51 ]
>>273
猫でも読んでろ

276 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 22:34:23 ]
>>273
知識つけたきゃテンプレの猫とかAPI入門嫁

アドバイスしとくと、どこまで覚えるかより何をしたいかが重要だったりする
それと人のソースはあくまで一例と捉える

277 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 22:34:28 ]
>>274
msdn2.microsoft.com/en-us/library/ms647465.aspx#_win32_String_Resources
[quote]
For 16-bit string resources, 255 characters is the maximum length.
For 32-bit string resources, 65535 characters is the maximum length.
[/quote]



278 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 22:36:58 ]
>>277
おーいえ
さんくす

279 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 23:59:48 ]
>>275-276
d 猫ってAPIのもあったのね。HPは見づらいから今度探して買ってくる

280 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 00:13:28 ]
>>279
あほは死ね

281 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 00:23:21 ]
>>280
「あはは死ね」だと思った。

282 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 00:42:50 ]
>>279
あはは死ね

283 名前:262 mailto:sage [2007/09/18(火) 02:02:37 ]
>>279
 猫は「apiの使い方の外枠をつかむ」目的に限定した方がいいです。 コードは問題ありすぎ……。
(コーディングに関しては、オライリーの牛本を参照してください。)

ページが見づらいのは「書籍を買ってくれ」って事なのかね?

284 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 02:10:05 ]
>>262は死ね

285 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 02:50:39 ]
みんな死ななくていいよ

286 名前:デフォルトの名無しさん [2007/09/18(火) 04:08:18 ]
ツールバーのちらつき対策で質問があります。
ウィンドウサイズを変更するとツールバーがちらついて困ってます。
メインウィンドウは仮想画面化してるのですが、ツールバー部分はHDCがなくてちらついてしまってます。
書き換えタイミングを0.1秒単位にづらすとかはやりましたが軽減できてもちらつき自体をなくす事はできませんでした。
どういった解決方法があるでしょうか?ご教授お願いします。

287 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 04:10:29 ]
子ウィンドウをクリッピング領域からはずす



288 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 04:14:22 ]
背面消去をなくす

289 名前:286 [2007/09/18(火) 04:30:28 ]
>>287
すみません。クリッピング領域から外すということは書き換えないってことでしょうか。。
今のサイズ変更部分はこうなってます。
case WM_SIZE:
MoveWindow(hTool, 0, 0, LOWORD(lParam), 50, TRUE);
break;
出来ればもう少し詳しくお願いできないでしょうか・・・orz

290 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 04:32:17 ]
ツールバー作成時に
WS_CLIPCHILDRENとWS_CLIPSIBLINGSを追加

試してない

291 名前:290 mailto:sage [2007/09/18(火) 04:34:01 ]
ごめん超勘違いしてた
俺のは忘れろ

292 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 10:27:18 ]
>>286
うろ覚えだが
メインウィンドウのクラスのスタイルから、CS_HREDRAW、CS_VREDRAWをはずすか、
またはメインウィンドウのWM_ERASEBKGNDで何もしないように対処すればよいと思われ

293 名前:286 mailto:sage [2007/09/18(火) 10:33:24 ]
>>292
既にそれは、やってしまってるんです。。
それでもちらつくんですよね。。
今も悩んでいて、面倒臭いですが一つ一つのボタンにハンドルを持たせればクリアできるのはないかと考え、
プログラム作成中です。

294 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 10:50:11 ]
気になるのなら自前で描くしかない

295 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 10:59:43 ]
ちらつくのは所詮描画の問題なので、普通に考えれば
メインウィンドウの背景(WM_ERASEBKGND)、メインウィンドウの描画(WM_PAINT)、
ツールバーの背景、ツールバー自身の描画
のいずれかで無駄な背景初期化を行っているくらいしかないと思うのだが

メインウィンドウの仮想画面化とかツールバー部分のHDCって何?
あとボタンにハンドルに持たせるとかも意味が分からない

ツールバーの描画で何か特別なことやってる?

296 名前:286 mailto:sage [2007/09/18(火) 11:13:46 ]
>>295
ツールバーにHDCみたいなのあればメモリ上にメモリDC取ってちらつき対策できないかと考えてました。
ハンドルというかボタン一つ一つにHWND型で持たせてクリアしようかと。。ツールバーの場合、ツールバーのHWND
単体でサイズ変更してるため、ちらついてるんじゃないかと考えています。

297 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 11:42:52 ]
>>296
ツールバーはOS標準のコントロールなんだから単体で対処可能なちらつき対処くらいやってるだろ
そんなことに力をそそぐくらいなら、>>292あたりもう一度見直したほうがいいのでは?

スタイル設定したつもりが反映されていないとか
メッセージハンドラを定義してみたけど名前が違ってたりして呼び出されてないとか
実はメインウィンドウの子のビューがツールバーと重なっていて、ビューの背景消去が問題だとか



298 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 12:03:26 ]
標準コントロールはちらつき対策なんて元から考えていないが、
対処くらいやっているだろうとか考えられてしまうそのおめでたい頭がうらやましい。

299 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 12:26:19 ]
そもそもツールバーってちらついたっけ?
VC2005+MFC+WinXPSP2だと、ToolBarのみとReBar+ToolBarの構成で作れるが、
どちらもちらつきは発生しなかったぞ。
昔のMFC自前実装の奴(ペイントとか)はちらつくけど。

300 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 12:31:11 ]
>>298
いや言い方はよくなかったもしれないけど、そんな高度なことを議論する
つもりはなくて、普通メインウィンドウのリサイズで気になるほどちらついたり
はしないんじゃないのってことを言ったつもりだった

そうでないと、ツールバーを使う人は全員描画のカスタイズをしないといけなく
なるけど、自分でもそんなコードは書いたことがないし、それで特に気になったこともない

>>286の気にしているのがどの程度なのかは知らないので断言はできないけど

301 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 12:33:25 ]
ちらつく理由を考え、それがあってるか検証し、
それを元に対策を考える。

302 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 12:51:23 ]
>>299
言われるまで気づかなかったが、最近の標準コントロールはちらつかないな。
Explorerのウィンドウをムキになってリサイズしてみたが悔しいほどちらつかないw
ツールバーよりウィンドウの幅が狭くなったときに出る>>のマークだけがちらついてる。

303 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 13:02:01 ]
チラリズム

304 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 13:39:06 ]
WM_SIZE時、TOOLBARにWM_SIZEを送る
クライアント部分は子ウィンドウにしてToolbarと重ねない

305 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 13:58:03 ]
専門用語でフリッカーと言うんだよ

306 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 14:26:04 ]
>case WM_SIZE:
>MoveWindow(hTool, 0, 0, LOWORD(lParam), 50, TRUE);
>break;
なんかこの辺が間違ってる気が

307 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 14:30:39 ]
>>298
死ね



308 名前:286 [2007/09/18(火) 19:24:40 ]
>>306
サイズ変更時に書き換えなさいって命令なので、その部分をカットすればちらつきませんが、
その場合、サイズ変更時ツールバーが変になってしまうので・・・。
検証の結果、ボタン一つ一つにHWNDを持たせるか、>>294さんの言うようにオーナードローで描くか。
現在は、この2択です。もっと簡単にできないか、考えて見ますね。

309 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 19:33:51 ]
>>308
あほは死ね

310 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 19:51:28 ]
MoveWindow の最後の引数ってなんだっけ。

311 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 19:53:58 ]
            ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ <こいつ最高にアホ
 彡、   |∪|  /
/ __  ヽノ /
(___)   /


312 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 19:56:22 ]
>>310
ググれよ。カス。

313 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 20:34:30 ]
>>310が一番的確な解決方に導いていると思うぞ

314 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 20:38:02 ]
             ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ <こいつ最高にアホ
 彡、   |∪|  /
/ __  ヽノ /
(___)   /

>>313
>>308
最後の引数には気付いている。
おかしいのは最後の引数ではない。

315 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 22:18:15 ]
そもそもツールバーをAPIで作ったときにMoveWindowなんて書いた記憶が無い件

316 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 22:55:03 ]
そもそもメインウィンドウは仮想画面化してるとか
ツールバー部分はHDCがないとか言う不思議君だから
リサイズでMoveWindowくらいするだろう


317 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 23:47:20 ]
検証もせずに批判ばかりする奴より、検証しようと努力してる奴の方が俺は好感を持つ。



318 名前:182 mailto:sage [2007/09/18(火) 23:51:20 ]
すみません
GetLocaleInfo() でファイルの言語を取得できるようになったんですが、
.net で作ったexeの場合、自分で取得すると「日本語」が返ってくるんですが
「ファイルのプロパティ」だと「ニュートラル言語」になってるんですが、
どうすりゃ取れるんでしょうか。


319 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 23:57:10 ]
>>317
正解が既に>>304で出てるのに無視されてるからじゃないの?

>>308
ツールバーのリサイズはMoveWindowでなく、WM_SIZEを直接SendMessageする

ttp://msdn2.microsoft.com/en-us/library/aa932759.aspx


320 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:38:22 ]
>>319
MoveWindowはダメとかSendMessageとか命令の問題じゃない気がするが・・・
試しに俺が検証してみた。

* ツールバーを作成する */
hTool = CreateWindowEx(
WS_EX_TOOLWINDOW, TOOLBARCLASSNAME, NULL,
WS_CHILD | WS_VISIBLE | WS_THICKFRAME,
0,0,0,0,
hWnd, (HMENU)IDR_TOOLBAR, hInst, NULL);

ボタン略。

>case WM_SIZE:
>SendMessage(hTool, WM_SIZE, wParam, lParam);
>break;

ちらついてるじゃねーか。orz

321 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 01:45:18 ]
>>320
俺も今試してみたが(WinXP SP2)、特にちらつきはないぞ?

//ツールバー作成部分(ボタンは2個)
hToolBar = CreateToolbarEx(hWnd, WS_CHILD | WS_VISIBLE, ID_TOOLBAR, 2,
hInst, IDB_TOOLBAR, tbb, 2, 0, 0, 16, 15, sizeof(TBBUTTON));
//他は省略

ベースはVC2005のWin32アプリのウィザード生成物で、ツールバー処理追加以外に以下を修正
×wcex.style = CS_HREDRAW | CS_VREDRAW;
○wcex.style = 0;
×wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
○wcex.hbrBackground = (HBRUSH)NULL;

なお、WM_SIZEの追加コードは

(a)SendMessage(hToolBar, WM_SIZE, wParam, lParam);
(b)MoveWindow(hToolBar, 0, 0, LOWORD(lParam), 50, TRUE);

の両パターンを試したがどちらも問題はなし

322 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 02:12:26 ]
>>321
ちらつきの考え方の違いかな。。
ウィンドウの枠、右部分を(マウス左)ドラッグして左右に振ってみて欲しい。
ツールバーのボタンがちらついてない?
俺もCreateWindowExとCreateToolBarExだと違いがあるのかと思って両方試してみたが
両方ともちらつかないか?俺も気になってきたw

323 名前:322 mailto:sage [2007/09/19(水) 02:27:21 ]
補足
ちらつきが分かりやすいように、ラージサイズのアイコン使用中。

324 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 02:28:22 ]
ちらしの裏にでも書いてろ低脳

325 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 02:31:20 ]
Vista使えばちらつきなんて気にならん

326 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 02:34:06 ]
>>322
OSは何?
こちらで試したプログラムでは、メニューの文字はわずかにちらつくが、ツールバーは
それよりずっと安定していて目で認識できる範囲のちらつきはない

ボタンのデザインはグレーの背景に手書きで1、2と書いてあるだけなので
目立ちにくいかもしれないが、少なくともメニューと同じくらいちらついてくれれば確実に分かる

327 名前:322 mailto:sage [2007/09/19(水) 02:40:27 ]
>>326
環境 (WinXP SP2)
ボタンのデザインは、既存のBMP。フォルダアイコンのラージサイズを貼り付けてる。

tbBmp.hInst = HINST_COMMCTRL;
tbBmp.nID = IDB_STD_LARGE_COLOR; /* 標準の大サイズのアイコンを使う宣言



328 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 09:38:55 ]
ちらつくのはいちいち消して(バックグラウンド塗りつぶし)描くからだよ
もともと全部描きなおすタイプならけさんでいい

329 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 12:07:36 ]
再度試してみた

背景消去を行わない(ウィンドウクラスの背景ブラシをNULLにするか、WM_ERASEBKGNDを無視)
とした場合でも、クラスのスタイルにCS_HREDRAW | CS_VREDRAW が残っていると、ボタン部分が
かすかにちらつく(メニュー文字のちらつきの半分程度)

>>322>>286の言ってるちらつきがこれってことはないのか?

330 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 12:19:23 ]
WS_CLIPCHILDRENしてるか?

331 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 17:39:11 ]
Visual Basic 6.0ってありましたよね?
あの言語でIsNumericって関数があったんですけど、
あれをVC++側で実装する場合、
OLE関連の関数群に存在するのでしょうか?
もし、存在するなら、その名称を教えていただきたいです。


332 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 17:44:40 ]
>>331
市ね

333 名前:182 mailto:sage [2007/09/19(水) 18:06:08 ]
>>318
VerLanguageName() で自己解決しました。
LangID は LocaleID の下位4バイトでした。
帰ります。


334 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 19:19:25 ]
>>331
VariantChangeTypeで数値関連の種類に変換できるか試せば、
同じような動作になると思う。

335 名前:デフォルトの名無しさん [2007/09/19(水) 21:14:29 ]
Win98からVistaまで動作するプログラムを作ろうと思ってます。
Vistaのフォルダ書き込み権限を取得するために、ConvertStringSidToSidを
使っているんですが、Win98でこのプログラムを動作させようとすると
ConvertStringSidToSidがないとエラーになってしまいます。

ConvertStringSidToSidを使いつつ、両方のOSで動作するようにするためには
どうすればいいんでしょうか?

336 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 21:16:52 ]
>>335
LoadLibrary, GetProcAddress

337 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 21:17:21 ]
むり



338 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 21:20:28 ]
>>336
ありがとうございます。
試してみます。

339 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 23:23:04 ]
> Win98からVistaまで動作するプログラムを作ろうと思ってます

ムダな努力だと思うがどうよ?
依頼主からの指示?

340 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 23:51:17 ]
98-Me
2000-XP
Vista
と3種類のリリースに分けて作る方が得


341 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 01:02:59 ]
最初にOSのバージョン調べて、それを元に挙動変えるのはだめなん?

342 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 01:10:52 ]
98でSIDとかあったっけ

343 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 01:18:23 ]
> Win98からVistaまで動作するプログラムを作ろうと思ってます
 Win16で作れば、Win3.1から動くのが作れます。

冗談はともかく、Win98,Me対応は面倒な筈です。
OSのバージョン依存部分に1枚皮を被せて、呼び分ける必要があります。
OS依存部分を別DLLにして、LoadLibraryするとか。

344 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 02:03:21 ]
>>343
> Win16で作れば、Win3.1から動くのが作れます。
残念ながら64bit版Windowsで動きません。

345 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 03:09:00 ]
.Netでつくる

346 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 03:51:25 ]
Win95って.netインストールできないんじゃなかった?

347 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 03:53:24 ]
>>343はWin98からと言ってるから問題ない



348 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 04:19:38 ]
まだ98つかってる香具師いるのか

349 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 05:48:08 ]
買い換えるまでWin98という奴はいるだろ

350 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 06:40:37 ]
オレは win98 + winXP。去年から win98 -> vista と思っているが、評判が
よくないので、ママ。win98 機は gateway なんだが、keyboard に慣れていて
ホレ今も、それと coding にも使っている。hardoff で見つけた 6GB HDD で
動かしていて、元の HDD は後生大事にとってある。時々換装しないといけない
が、今年はやってない。フラットケーブルが煎餅みたいに割れそう。

351 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 06:44:20 ]
Win98をWebに繋ぐなんて最早犯罪だろ。

352 名前:デフォルトの名無しさん [2007/09/20(木) 07:09:11 ]
ダブルバッファリングのコードを書いたつもりでしたが、上手くいきません。

InvalidateRect()関数によってWM_Paintが要請されるまで、描画が行われない予定
なのですが、InvalidateRect()を呼び出さずにもWM_Paintが発行されているようで、
TextOutによる文字列が描画されてしまいます。ご教授お願いします。

ttp://sakuratan.ddo.jp/uploader/source/date52297.txt

353 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 07:21:51 ]
>>335
もう見てないかもしれんが、俺のプログラムでは同様の事例で
リンカーオプション「/DELAYLOAD」を使っている

354 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 07:44:06 ]
見てるよ
ずーっと見てる
君を見てる

355 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 07:48:07 ]
質問に答えろぉぉぉおおお!

356 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 07:50:29 ]
>>355
m9(^Д^)プギャー アホスギ

357 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 07:52:40 ]
>>352
せいぜい、WM_PAINT内でii.hScreenを使っていいかどうかを見る
フラグでも用意しておくしかないと思う。



358 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 07:55:20 ]
>>352
とりあえず、ダブルバッファがどうとか考える前にメッセージを理解してくれ


359 名前:352 mailto:sage [2007/09/20(木) 08:03:57 ]
サンプルがわるかたかな・・・。
hScreenに描画している限り無効領域は発生せず、
WM_Paintは発行されないと思ってたんだけど、その認識が間違ってるのかな。

360 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 08:05:23 ]
>>359
fとWindowProcは同じスレッド?

361 名前:352 mailto:sage [2007/09/20(木) 08:07:38 ]
>>360
fという関数は、WM_Createで行うとエラーがでる部分を退避させるため
だけに暫定処置として作りました。

362 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 08:20:11 ]
ああすまん、WM_CREATE内から呼んでいるね。
ってそれだとWM_CREATE内から呼んでいることに変わりはないだろ。

363 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 08:26:04 ]
どう見てもAPI以前のレベルです、本当にありがとうございました。

364 名前:352 mailto:sage [2007/09/20(木) 08:31:52 ]
一応、猫でもわかるのサンプルみて作ったつもりなんだけど、
なんで描画されるんだろ。



365 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 08:40:02 ]
>>359
ウィンドウ作った時点じゃ、最初から無効領域

366 名前:352 mailto:sage [2007/09/20(木) 09:32:48 ]
>>365
なるほど!動作確認の仕方が間違っていたのですね。
おかげさまで問題を解決することができそうです。
ありがとうございました。

367 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 09:34:31 ]
重なっている上のウィンドウが移動したり、新しくウィンドウが作られたり、
そのウィンドウがリサイズしたりして、新たに描画しなければならないところが無効領域。
InvaridateRectは、そういった条件にかかわらず無効領域にするAPIだから。



368 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 12:21:27 ]
>366
この手のタイプは、「できませんでした。教えてください。」ってまた来るんだよな・・・orz

369 名前:デフォルトの名無しさん [2007/09/20(木) 13:29:37 ]
教えて頂きたいのですが、MDIにおいて、
親ウインドウと子ウィンドウの透過率を変えることは可能でしょうか?

親ウィンドウに色のついた透明な子ウィンドウを重ねたいのです。
(一旦メモリデバイスにコピーした後、AlphaBlend()により色を付ける方法は
成功しました。)

SetWindowLong(),UpdateLayeredWindow()などが関連してくると思うのですが。

370 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 13:40:03 ]
子ウィンドウをレイヤードウィンドウすることはできない

371 名前:デフォルトの名無しさん [2007/09/20(木) 13:49:17 ]
>370
やはり、そうでしたか。WS_CHILDとWS_EX_LAYEREDのスタイルを合わせると
ウィンドウが作れないんですよね。

ここから推測するに、親ウィンドウ(透過率255)、
子ウィンドウ(透過率127)のようなことも出来ないとなりますね。

現在のAlphaBlend()とUpdateLayeredWindow()を上手く使ってって方法を
取っていきます。

372 名前:デフォルトの名無しさん [2007/09/20(木) 20:46:07 ]
GetKeyboardStateで、現在のキーボードの状態を取得しているのですが、
アプリのウィンドウがアクティブでないときにGetKeyboardStateすると、
上手く情報を取得してくれません・・・、解決するにはどうすればよいでしょうか?

ウィンドウをアクティブにしたフリをして、GetKeyboardStateを動かすこととか出来ないですかね?

キー入力はフックしていて、キーボードでキーが入力されると、
アプリのウィンドウがアクティブでないときでも、
イベントが呼ばれてGetKeyboardStateが走る仕組みです。

動作・開発環境は以下の通りです。
OS : WindowsXP SP2 .net framework 1.1
言語 : C#

宜しくお願い致します。

373 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 20:49:24 ]
>GetKeyboardStateで、現在のキーボードの状態を取得しているのですが、

ドキュメントにちゃんと書かれているとおり、
GetKeyboardState は現在のキーボードの状態を取得するAPIではありませんので、
別のやり方、たとえば GetAyuncKeyboardState を使うなどに変えた方が良いでしょう。


374 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 20:50:17 ]
>>373
GetAsyncKeyboardState

375 名前:デフォルトの名無しさん [2007/09/20(木) 21:05:51 ]
>>373-374
GetAsyncKeyStateですよね?
試してみます。ありがとうございました!

376 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 21:30:16 ]
335です。
>>353さんの方法で出来ました。
ありがとうございました。

377 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 22:00:05 ]
WinSock関連での質問です。
TCPによる接続でconnection関数を利用していますが、
対象のホストを見つけられない場合は、
一定時間処理が停止しています。
これの対処法を、皆さんはしていますか?

スレッド側に投げて対処?
それとも、connectionよりいい関数があるんでしょうか?




378 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 22:28:19 ]
非ブロックソケット



379 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 23:29:06 ]
>>377
スレッド
非ブロック
非同期

380 名前:377 mailto:sage [2007/09/21(金) 00:04:40 ]
>>378-379
スレッド案で非同期化を試みます。
ありがとうございました!

381 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 00:14:20 ]
SHBrowseForFolder() で質問です。
BROWSEINFO.hwndOwner に設定したウィンドウに対してモーダルで
ダイアログが開きますが、他にモードレスのウィンドウがあるとき、
それらは無効にならずにフォーカスを奪えてしまいます。
全ウィンドウに対してモーダルで開いて欲しいのです。
しょうがないので SHBrowseForFolder() の前後に
「hwndOwner と同じプロセスの全有効ウィンドウを無効/有効にする」
というのを入れたら希望する動作になったんですが、
なにかオフィシャルな手段は提供されてないんでしょうか。

382 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 00:38:48 ]
その、他のウィンドウの構成が間違っている

383 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 03:11:36 ]
>>369-371
MSの公式サイトにはUpdateLayeredWindow()の方を使えって書いてある


384 名前:デフォルトの名無しさん [2007/09/21(金) 03:15:26 ]
ごめん逆だった
SetLayeredWindowAttributesを使えって書いてある
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnwui/htm/layer.asp


385 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 04:19:28 ]
>>384
どこに?

386 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:20:33 ]
lstrlenWなどの文字列の長さを返すAPIの説明に、
「文字単位の長さ」とありますが、
サロゲートペア文字は2文字と数えるのでしょうか?
それとも1文字?
もし1文字で数えられてたら、自分のプログラムが大変なことになります・・・・

387 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:26:10 ]
>>386
MSDNに書いてあるよ。

> The return value specifies the length of the string, in TCHAR
> values. This refers to bytes for ANSI versions of the function
> or WCHAR values for Unicode versions.




388 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:27:30 ]
サロゲートペアのことは書いてないようだけど

389 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:28:24 ]
>>388
「WCHARの長さ」って書いてあるやん


390 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 12:54:30 ]
早く全面的にUTF32に汁

391 名前:デフォルトの名無しさん [2007/09/21(金) 13:39:30 ]
キーボードで入力されたキーコードとシフト状態を元に、文字を作成する関数って

ToAscii
ToAsciiEx
ToUnicode
ToUnicodeEx

上記以外に無いのでしょうか?あれば教えていただきたいです。
宜しくお願い致します。

392 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 13:58:43 ]
>>381 ShowOwnedPopupsは ? (試してないけど)
386関連。EM_LIMITTEXT/EM_SETLIMITTEXTはどーなってますか

393 名前:392 mailto:sage [2007/09/21(金) 15:46:57 ]
ShowOwnedPopupsは忘れてください

394 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 17:08:10 ]
DLLを自分で作って使ってみたいと思い挑戦しているのですが
どーしてもわからないっす。

VC2005Expressを使用してDll projectでDllをビルド
LoadLibraryで読み込む←成功
先にtypedef int (*DLLFUNC)(int, int) ;と宣言しておき
DLLFUNC Add ;
Add = (DLLFUNC)GetProcAddress(hDll, "Add") ;

↑でNULLが帰ってきて「指定されたプロシージャが見つかりません」って出てます。
DLLのソースは
#include <windows.h>
int WINAPI DllMain(HINSTANCE hInstance , DWORD fdwReason , PVOID pvReserved) {
return TRUE;
}
__declspec (dllexport) int Add(int nValue1 , int nValue2)
{
return (nValue1 + nValue2) ;
}
です。よろしくお願いします。

395 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 17:10:07 ]
def作ったほうが確実

396 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 17:12:22 ]
そのソースのファイル名は .c か .cpp か。


397 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 17:16:31 ]
>>395
defを使う方法はまだやった事無いです。今から勉強します。
>>396
.cppです。



398 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 17:19:45 ]
>>397
では、.c にリネームして試してみるべし。


399 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 17:22:01 ]
extern "C"をつけて名前マングルをやめて、かつdefでエクスポートすればいける

400 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 17:33:35 ]
誰だマングリなんて作ったの
意味ねーだろ

401 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 17:43:01 ]
.cにリネームしたらいけました!
さらに.cppに戻した後 >>399に書かれていたextern "C"の方法でも
出来ました!有難うございます。

402 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 17:48:39 ]
>>400
多重定義とかメンバ関数とか名前空間とか同名の区別に必要。
型安全なリンクにも繋がる。

403 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 21:18:10 ]
>400
んじゃオーバーロードとか使うなよ

404 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 21:33:43 ]
せめて同一プラットフォームではマングリングは統一して欲しいところ
BCCとVC++でオブジェクトリンクできないとかもうね

405 名前:381 mailto:sage [2007/09/22(土) 01:54:58 ]
>>382
今はテストプログラムで遊んでいるところなので、たしかにこういう
状況はレアケースだと思います。
たとえば「モーダルダイアログ→その上に[参照...]ボタン」だったら
全然問題ないです。
何を隠そうVB6で書いてるんですが、もしかしてVB特有の現象でしょうか。
C&SDKもMFCも分からないヘタレなもので、
.NETでFolderBrowserDialogクラスで試してみたら、ちゃんと全ウィンドウに
対してモーダルでした。
.NETでSHBrowseForFolder() をP/Invoke するのをこれから試します。

>>392
その関数はちょっと目的とは違う気がします。(試してないけど)


406 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 02:03:47 ]
その前にspyしてWindow構成見たほうが早くね

407 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 02:09:08 ]
micsoroftがツール提供してるってことは、
spyは合法ってことでおk?



408 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 02:20:53 ]
何言ってんだおめぇ

409 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 03:48:12 ]
>>404
COM

410 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 03:55:58 ]
1PはPLAYERだろーが

411 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 04:03:12 ]
ごめん

全然うまくないから

412 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 04:08:01 ]
>>411
相手にならん
もっと練習してから来い下手糞

413 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 05:28:35 ]
ちょっとフォルダ内のファイル一覧を作る処理を書こうとしてるんですが
FindFirstFile〜FindNextFile...は遅い!と思いしばらく実験...
ひょっとしてコマンドプロンプトでdir〜するより遅いんじゃないか?・・・と調べたらさすがにdirよりは早いようだったorz

しかしもっと早くしたいのです、FindFirstFile系より早い関数知ってる人いますか?

414 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 06:00:23 ]
IShellFolderのEnumObjectsはもっと遅い

415 名前:デフォルトの名無しさん [2007/09/22(土) 06:18:51 ]
こんなスレで質問していないで、早く試行錯誤でバグ回避策を見つける仕事に戻るんだ!
何?やる気がありません?なら辞めろや、他の派遣雇うからw


416 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 06:21:40 ]
IShellFolderですか、COMってやつですか?
初めて見るのでよく分からんですが、こいつはこいつで奥が深そうですね

417 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:13:35 ]
>>413
遅いって何ファイルで何秒くらい?



418 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:14:45 ]
自分で作ればいいのに
能なしは大人しく既存の関数使っとけ

419 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:35:59 ]
>>417
5万で一秒くらいです、ちっとも遅くない・・・ですか?

420 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:39:12 ]
そんなに速くしたいならWindowsの外でやれ

421 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:39:46 ]
1msで50ファイル。どこが不満なんだ‥‥


422 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:42:25 ]
実際計って以外に早いなと・・・
他の部分が重いのでしょうね、スレ汚し申し訳なかったです

423 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:45:46 ]
windowsプログラムのお話
VC++2005EEのスケルトンプログラムのソースが何をやっているのか教えてぽ・・・。

424 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:46:04 ]
キャッシュが効いてただけと予想

425 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:48:20 ]
一覧の表示をListViewとかでやってるなら検索中は更新止めるとかしないと笑える程遅くなるぞ。

426 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:04:49 ]
キャッシュはメモリのコンパクションツール(っていうのかな?)を使えば消えますよね?
その状態だと5万ファイルで一分ぐらい、次回実行以降高速化してます・・・
ListViewとかじゃなくvector<string>に入れて後でファイルに保存してます、時間計測は純粋にファイルリスト取得部分のみです

再起動とかしてちゃんと計測し直した方がいいですかねぇ?

427 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:09:58 ]
うるせーバーカ死ね



428 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:11:21 ]
>>426
HD直接触ってみるとか

429 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:25:20 ]
キャッシュですねぇ、>>424さんの指摘どおりのようです
再起動して実行すると初回が91秒、10回実行して平均とか出してたんですが2回目以降は750msぐらいで安定してます
HDD直に触るのは魅力的ですよね、一度はやりたいです

しかしこれ、それでも使えないほど遅いかと言われればそんなこともない速度でしょうか
どうも昔触って以来FindFirstFile系は遅いと思い込んじゃってたんですかねぇ

430 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:27:18 ]
くそう

431 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:33:48 ]
>>423の言ってるのが「空のプロジェクト」をチェックしないで普通に作った奴なら
単にウィンドウ出してメニューつけて、だけをやってるんだと思う
なんかReadMe.txtってのもプロジェクトに参加してるみたいだし一度目を通されてはどうでしょう

間違ってたらスマソ

432 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:36:17 ]
>>429
APIの呼び先で予想外のコードが動いている可能性もあるから確認してみるといいよ。
アンチウィルスソフトはよくやってる。
とりあえずカーネルデバッグしてみ。

433 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:48:42 ]
カーネルデバッグと、初めて聞いたもので調べておりますが
カーネルデバッガというものを使うようですね、おすすめなんてありますか?

434 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 09:15:36 ]
とりあえず無難にWinDbgを使って見るのがいいんじゃない?
無料でダウンロードできるよ。
www.microsoft.com/japan/whdc/DevTools/Debugging/default.mspx

WinDbgの文法覚えとけばCUIのデバッカへの移行もしやすいから出先でデバックする機会とかあるなら役立つかもね。

あと、カーネルデバッグするしないにかかわらずシンボルをインストールすることを忘れずに。
たとえば、Visual Studioでデバッグする場合不明なシンボルがあるとコールスタック表示するのをそこであきらめるし、
シンボル名が表示されてりゃブレークポイント貼るとき楽だしね。

435 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 09:30:31 ]
>>434さん、折角教えて頂いたばかりですが現在の私の能力ではここまでのようです・・・
かなり便利そうには見えるのですが習得には少しかかりそうです・・・

いろいろとご指摘くださった皆さんありがとうございました、
今回はFindFirstFile〜でとりあえず作り、後は次回の課題とさせていただきます。

436 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 09:32:40 ]
>>431
やさしい人ありがとう><
みんなプログラム作る時は空のプロジェクトでやるのかな・・・?

437 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 09:34:17 ]
ああ



438 名前:デフォルトの名無しさん [2007/09/22(土) 09:48:51 ]
坊主。男は黙って空のプロジェクトで作るもんだぜ?( ゚Д゚)y─┛~~

439 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 14:21:56 ]
質問させてください。
BitBltで描写している800*600のビットマップ画像を毎秒20ピクセルぐらい
で高速横移動させようとすると、描写がおっつかないのか移動中画像がぶれる
のです。(上から下に走査線の波がはしるように画像がゆがみます)

ひょっとしてWINAPIではそこまでの描写はできないのでしょうか?
DirectXを使えということなのでしょうか。


440 名前:439 mailto:sage [2007/09/22(土) 14:24:04 ]
↑すみません、移動値が間違っていました。
一回10ピクセルの移動を、毎秒20回ほどです。

441 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 14:25:19 ]
ププ

442 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 14:29:24 ]
>>439
DirectXには垂直同期を待つ機能がある
GDIだけではできない

443 名前:439 mailto:sage [2007/09/22(土) 14:41:27 ]
>>442

ご回答ありがとうございます。

今まさにGDIに垂直同期させる方法がないか考えているところ
でしたが、できないのですね。。。

DirectXを勉強することにします。
ヒント、感謝します。

444 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 16:46:25 ]
"C:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*.*"

これがOKなのが許せない

445 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 16:51:28 ]
/////////////////////////////////////home/unko
www.2ch.net///////////////////////////////////////////////////
普通だろ

446 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 16:53:02 ]
VC++2005EEで途中まで文字入力したときのポップアップヘルプが
出なくなっちゃたよぅ・・・><

447 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 16:57:37 ]
EEなんて使ってるからだ
大人しくプログラミング引退しなさい



448 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 17:03:58 ]
そんなぁ・・・><

449 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 17:06:19 ]
と、思ったら僕の勘違いでした・・・
ごめんなさい

450 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 17:21:41 ]
>>444
パス名の先頭に\\?\(Cなら\\\\?\\)でもつければ?

451 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 21:14:40 ]
>>446
あのピョコってでるのは確かインテリセンスって言うはずだ
プロジェクトのフォルダ内に.ncbって拡張子のファイルがあると思う、表示される情報はこれに保存されてるらしい
で、情報の更新に若干タイムラグが出る事があってポップアップが出ない事がある、これは数秒待てば出るようになるよ
前の行にビルドエラーになる箇所があるとそれ以降インテリセンスも更新されてなかったりするのでこまめにビルドするといいかも

452 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 21:30:29 ]
じゃあ、コンパイル成功してもIntelliSense動いてくれないのはなぜなんだぜ?
特にBoostとか使ってるとき、特定の行以降/ブロック内で起こる。

453 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 21:53:56 ]
それはC++がキモすぎるかr

454 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 22:27:03 ]
いやキモいのはbo






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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