■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build33
501
名前:
デフォルトの名無しさん
:2005/07/13(水) 23:09:55
まあ、fuckのまま直そうとしないヤツには何を言っても無駄だな。
502
名前:
デフォルトの名無しさん
:2005/07/13(水) 23:20:33
#define fuck Hook
503
名前:
デフォルトの名無しさん
:2005/07/14(木) 00:18:15
教えてください。
プログラム動作中にPCがサスペンドに入らないようにしたいのですが、
どうすればよいのでしょうか?
504
名前:
デフォルトの名無しさん
:2005/07/14(木) 00:18:59
見張る
505
名前:
デフォルトの名無しさん
:2005/07/14(木) 00:24:36
PBT_APMQUERYSUSPEND属性のWM_POWERBROADCASTメッセージを受け取ったら、BROADCAST_QUERY_DENYを返す
506
名前:
デフォルトの名無しさん
:2005/07/14(木) 00:24:46
CreateProcessが成功しません。仕方ないのでsystem関数使ってますが、コマンドライン引数にディレクトリのパスを入れたりする場合、デスクトップ上で動かすと失敗するという欠点があります。(※パスに空白があるからパスが分断される)
似たような失敗した経験のある方はいませんか?いれば、アドバイスをお願いします。
507
名前:
デフォルトの名無しさん
:2005/07/14(木) 00:35:54
SDKですがダイアログアプリでボタンがあるときに
ダイアログでKEYイベントが回ってきません。
PreTranslateMessageで回避できるような記述を見かけたのですが、
これはMFCでないと使えないのでしょうか?
使えない場合、SDKではどうすればよいのでしょうか?
(ボタン無効化は無しで)
508
名前:
デフォルトの名無しさん
:2005/07/14(木) 01:14:53
>>506
パスを " で括ってる?
509
名前:
デフォルトの名無しさん
:2005/07/14(木) 03:26:14
>>506
ヘルプに書いてるやん
510
名前:
デフォルトの名無しさん
:2005/07/14(木) 03:53:56
ちと教えてください。
親ウィンドウのWM_CREATEでCreateDialogを呼び出して
ダイアログを親ウィンドウの子として表示させているのですが、
ダイアログ内のEditBoxでtabキーを押してもフォーカスが移動しません。
tabキーでフォーカスを移動できるようにするには、ウィンドウスタイルをどのように設定すればいいのでしょうか?
現在、
親ウィンドウには子になるダイアログとCreateWindowで作成した複数のStaticコントロールがあり、CreateWindowExで
WS_EX_WINDOWEDGE, WS_EX_CONTROLPARENT, WS_OVERLAPPEDWINDOWを設定してます。
ダイアログの方には複数のStaticとEditBoxがあり
WS_EX_CONTROLPARENT, DS_CONTROL, WS_CHILDを設定してます。
また、ダイアログ内のEditBoxにはすべてWS_TABSTOPを設定してます。
将来的には親ウィンドウ内にWS_TABSTOPを持つもう一つの子ウィンドウを作って、
子ウィンドウとダイアログ内のコントロール間をtabキーでフォーカスが行き来するようにしたいと考えてます。
Spyで似たような構成になっているウィンドウのスタイルを調べてみたけど、
フォーカスが移動しない原因がさっぱり分かりませんでしたorz
511
名前:
デフォルトの名無しさん
:2005/07/14(木) 04:28:01
>>510
IsDialogMessage?
512
名前:
デフォルトの名無しさん
:2005/07/14(木) 10:35:31
今、猫でもわかるプログラミングのSDK77章やっております。
その中に、win.iniの中にプリンタのドライバ名やデバイス名が書いてる、とあるのですが
どう探しても、そんなものは書いてありませんでした。
最近のパソコンは違うのでしょうか?(当方XP)
なんとか調べる方法を教えていただけませんか?
513
名前:
512
:2005/07/14(木) 10:47:25
申し訳ありません。
自己解決しました。
GetProfileString関数を使えば良かったんですね・・・。
どうもありがとうございました。
514
名前:
デフォルトの名無しさん
:2005/07/14(木) 10:55:55
>>512
MSDN
515
名前:
デフォルトの名無しさん
:2005/07/14(木) 11:26:46
リストボックスコントロールの項目名を変更する方法はありませんか?
LB_DELETESTRINGとLB_INSERTSTRINGを使うしかないのでしょうか。
516
名前:
デフォルトの名無しさん
:2005/07/14(木) 11:31:51
LVITEM構造体使った変更方法があったはず
LVM_SETITEM
517
名前:
デフォルトの名無しさん
:2005/07/14(木) 11:32:27
ってリストボックスか、スマソ
518
名前:
デフォルトの名無しさん
:2005/07/14(木) 11:38:05
SetWindowText()でできたら便利だと思うがどうかな
519
名前:
515
:2005/07/14(木) 11:50:34
>>518
選択されている項目のハンドルって取れますっけ?
取れればそれでいけそうな気が。
520
名前:
518
:2005/07/14(木) 12:12:19
無理でした・・
MFCのCListBoxでも文字列置換の関数がなかった
521
名前:
デフォルトの名無しさん
:2005/07/14(木) 13:57:50
こんにちは。
ListCtrlのカラム部分のタイトル文字列を変えたい場合は、どうすればいいのでしょうか?
522
名前:
515
:2005/07/14(木) 14:15:17
>>520
ありがとうございます。
別のコントロールで代用することにします。
523
名前:
510
:2005/07/14(木) 14:58:27
>>511
それでしたorz
こんな初歩的なミスくらい気付よ俺orz
524
名前:
デフォルトの名無しさん
:2005/07/14(木) 15:28:45
ツールバーの作り方を勉強しているのですが
TBBUTTON tbb[]={{0, IDM_MARU, TBSTATE_ENABLED, BTNS_BUTTON}};
のようにTBBUTTON構造体のfsStylオプションを
BTNS_BUTTONやBTNS_SEPに指定してビルドすると、
「error C2065: 'BTNS_BUTTON':定義されていない識別子です」
とエラーが出てしまいます
プログラム自体は初歩本のサンプルそのままですので、設定の問題だと思うのですが
どのように設定すればよいか教えていただけませんか?
comct32.libをリンクせよ、と書いてあったので、
プロジェクトの設定>リンク>オブジェクト/ライブラリモジュールの最後に
comct32.libを書き加えましたがダメでした
環境は VC++6.0、WINXPです、comct32.dllはHDD内を検索した所8個あり
c\WINDOWS\system32にバージョン5.82が1つ
c\WINDOWS\WINDOWS\WinSxS\〜〜〜 に6.0が2つ
C\WINDOWS\SoftwareDistribution\Download に5.82が2つ、6.0に5つあります
宜しくお願いします
525
名前:
524訂正
:2005/07/14(木) 15:31:01
C\WINDOWS\SoftwareDistribution\Download に5.82が2つ、6.0に5つあります
>C\WINDOWS\SoftwareDistribution\Download に5.82が2つ、6.0が3つあります
526
名前:
デフォルトの名無しさん
:2005/07/14(木) 15:32:51
>>524
コンパイルエラーが、
リンクにライブラリを追加して解決するわけがない
commctrl.hをインクルードすりゃいいと思うぞ
527
名前:
524
:2005/07/14(木) 15:42:41
526様、レスありがとうございます
ただ・・commctrl.hはインクルードしてますがダメでした・・・・
インクルードは
#include <windows.h>
#include <commctl.h>
#include "resource.h"
となっております
528
名前:
デフォルトの名無しさん
:2005/07/14(木) 15:46:39
Platform SDK
529
名前:
デフォルトの名無しさん
:2005/07/14(木) 15:58:55
>>527
定義くらい読め
#if (_WIN32_IE >= 0x0500)
#define BTNS_BUTTON TBSTYLE_BUTTON // 0x0000
530
名前:
デフォルトの名無しさん
:2005/07/14(木) 17:32:52
VC6付属のCommCtrl.hには、何万年探してもそんな部分は無い。
531
名前:
524
:2005/07/14(木) 17:43:38
レスありがとうございます
色々調べてみたのですが分からないので再度質問させてください
Platform SDK ですがインストールしてみましたが、ビルドできませんでした
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
のPSDK-amd64.exeとPSDK-ia64.exeは32ビット環境ではダメとメッセージが出たので
PSDK-x86.exeをダウンロード・インストールしました
CPUはペンティアムV800MHZですが、ダウンロードするのが違いましたでしょうか?
529様のレスについてですが
正直知識不足で、せっかくレスして頂いたのに申し訳ありませんが
どういう意味か全く理解できませんでした、ググって見て関係ありそうなのを探し
プログラムの最初に #define _WIN32_IE 0x〜〜〜を色々な数字で加えてみたのですが
ビルドできず、「定義されていない識別子です」エラーが増えるだけでした
お手数おかけしますが、もう少々詳しく教えていただけませんか?
宜しくお願いします
532
名前:
デフォルトの名無しさん
:2005/07/14(木) 18:24:45
MouseProcでWH_MOUSEをフックし、WM_MOUSEWHEELを
つかまえたのですが、wParamにWM_MOUSEWHEELが入っているため
デルタの値がわかりません。
ホイールのデルタ値はどうやったら取得出来ますか?
533
名前:
デフォルトの名無しさん
:2005/07/14(木) 18:44:02
>>524
まずは grep の使い方を覚えろ。
そして、問題の識別子を grep で検索汁。
534
名前:
デフォルトの名無しさん
:2005/07/14(木) 18:45:28
>>531
そのSDKは、VC6.0をサポートしてないと書いてあるやうな・・・
535
名前:
デフォルトの名無しさん
:2005/07/14(木) 18:46:42
>>532
WH_MOUSE_LL で Low Level mouse hook すれば、
MSLLHOOKSTRUCT::mouseData で取得できるっぽい
536
名前:
デフォルトの名無しさん
:2005/07/14(木) 19:13:19
>>534
げ、いつのまに…
537
名前:
デフォルトの名無しさん
:2005/07/14(木) 20:32:04
CreateWindow()を使って、子ウィンドウを親ウインドウ上に貼り付けて
主に描画用として使用しています。
プロシージャはそれぞれ独立させています。
子ウィンドウの上ではWM_KEYDOWNが反応しなかったり、
親ウィンドウはWM_LBUTTONDOWNが反応ないこと
が起こってしまいます。
こういう場合は親子間のウィンドウでメッセージ
をやり取りするしかないんでしょうか。
538
名前:
デフォルトの名無しさん
:2005/07/14(木) 20:33:46
GetClassInfoExが動きません。
自プロセスのウインドウなら動作するのですが、
FindWindowで見つけた他プロセスのウインドウでは全て失敗してしまいます。
MSDNに特に明記は無いのですが、こういうものなのでしょうか?
hWndTar=FindWindow("IEFrame",NULL); //IEの場合
TCHAR wclass[1024];
GetClassName(hWndTar,wclass,1024-1);
HINSTANCE hInstTar=(HINSTANCE)GetWindowLong(hWndTar,GWL_HINSTANCE);
WNDCLASSEX wcex;
ZeroMemory(&wcex,sizeof(WNDCLASSEX));
wcex.cbSize = sizeof(WNDCLASSEX);
if (GetClassInfoEx(hInstTar,wclass,&wcex)) {
} else {
GetLastErrorで"そのクラスはありません"と出る
}
ご存知の方ぜひご教授ください。宜しくお願いします。
539
名前:
デフォルトの名無しさん
:2005/07/14(木) 20:38:58
>>537
子ウインドウを親のクライアント領域いっぱいに貼り付けてるのか?
だったら、WM_LBUTTONDOWNは子ウインドウにいくし
WM_KEYDOWNは、(フォーカスを子ウインドウに設定しなければ)親に行く。
540
名前:
デフォルトの名無しさん
:2005/07/14(木) 21:24:40
>>538
各APIは成功してるか確認した?
541
名前:
416
:2005/07/14(木) 21:25:36
>499
なんだ、そうですか。
>>459
を見てから、
もうやらなくていいんだーと思って休憩してたので、
また色々と調べてみますね。
542
名前:
532
:2005/07/14(木) 21:34:08
>>535
LowLevelフックですか、ありがとうございます
やってみます
543
名前:
538
:2005/07/14(木) 22:24:49
>540
もちろん、GetClassInfoEx()以外はすべて成功しています。
544
名前:
デフォルトの名無しさん
:2005/07/14(木) 22:38:48
The Old New Thingには、
http://blogs.msdn.com/oldnewthing/archive/2005/04/18/409205.aspx
>Each process has its own window class list
とあるね。
545
名前:
デフォルトの名無しさん
:2005/07/14(木) 22:58:19
質問です
546
名前:
デフォルトの名無しさん
:2005/07/14(木) 22:59:54
>>545
何を__?
547
名前:
545
:2005/07/14(木) 23:02:08
自己解決しました
548
名前:
538
:2005/07/14(木) 23:17:25
>544
「プロセス毎にクラスリストをもっている」って事なんですかね???
すみません、英語苦手なんで明日会社で翻訳してみます。
ありがとうございました。
549
名前:
デフォルトの名無しさん
:2005/07/14(木) 23:37:31
ダイアログ作るためにリソーススクリプト書いて
BCCのBRC32コマンドでリンクしたら
Error ****.exe 1 5: Bad character in source input
とでます。
最初でたときは、「どこかで変な文字入れたかな」と思い、書き直したのですが
2度目もやっぱりでました。どうすればいいというんだ・・・orz
550
名前:
デフォルトの名無しさん
:2005/07/14(木) 23:42:20
>>549
問題が出たスクリプトを書かないとなんとも言えない。
エラーの内容からは変な文字入れたということしか判断つかない。
ま、ありがちなのは全角空白使ってるとかだな。
551
名前:
デフォルトの名無しさん
:2005/07/14(木) 23:48:44
>>550
IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 319, 600
STYLE WS_POPUP | WS_VISIBLE
EXSTYLE WS_EX_APPWINDOW
FONT 9, "MS Pゴシック"
BEGIN
END
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 319, 200
STYLE WS_POPUP | WS_VISIBLE
EXSTYLE WS_EX_APPWINDOW
FONT 9, "MS Pゴシック"
BEGIN
END
といった感じなのですが・・・
552
名前:
デフォルトの名無しさん
:2005/07/14(木) 23:55:42
漢字コードかな?
553
名前:
デフォルトの名無しさん
:2005/07/14(木) 23:58:13
>>549
ファイル名が***.exeってのはおかしいな。
コマンドラインの指定は合ってる?
554
名前:
デフォルトの名無しさん
:2005/07/14(木) 23:59:06
リストビューに関する質問です。
ENTERキーの入力を検出したくて
NM_RETURN通知メッセージを待つようにしたのですが、
なぜかENTERキーを押しても通知されません。
LVN_KEYDOWN通知メッセージでNMLVKEYDOWN構造体の
wVKeyメンバを調べる方法も試したのですが、
なぜかENTERキーだけが通知されませんでした。
ENTERキーの入力はどのようにして
検出すればよいのでしょうか?
555
名前:
デフォルトの名無しさん
:2005/07/15(金) 00:01:25
>>553
ごめん、それ実行ファイル名隠してるだけです
分かりづらかったっすね^^;
556
名前:
デフォルトの名無しさん
:2005/07/15(金) 00:02:21
>>536
ちなみに古いSDKは
>>5
にあるのでまだ落とせるうちに落としておくこと激しく推奨
557
名前:
デフォルトの名無しさん
:2005/07/15(金) 00:18:32
>>555
リソーススクリプトじゃなくてexeファイルが
入力になってるんじゃないかってこと。
ちなみにbrc32のコマンドラインは
brc32 [options] <filename>.RC [<filename>.EXE]
だが、EXEを先にしてみたら同じエラーが出たよ。
558
名前:
デフォルトの名無しさん
:2005/07/15(金) 00:22:02
>>557
やってみたらできた・・・orz
ありがとうございます。なんかもう、やってらんね('A`)
559
名前:
デフォルトの名無しさん
:2005/07/15(金) 06:05:54
CreateFileでテキストファイルを開き
ReadFileで一行づつテキストを読み込むにはどうしたらいいのか教えてください
ReadFileの引数には読み込みバイト数を渡せるのですが
一行の長さは決まっているわけではありませんし
どうしたらいいのか分かりません
宜しくお願いします
560
名前:
デフォルトの名無しさん
:2005/07/15(金) 06:10:33
MFCのCStdioFile::ReadStringのソースを参考にする
561
名前:
デフォルトの名無しさん
:2005/07/15(金) 06:43:06
一バイトずつ読み込んでCRやLFが出たらやめる
562
名前:
デフォルトの名無しさん
:2005/07/15(金) 07:23:15
>>559
ReadFileはバイト単位でしか読み込むサイズを指定できないから1行毎の読み込みには向いていない。
std::ifstreamとstd::getlineなんかを使うほうが楽。
563
名前:
デフォルトの名無しさん
:2005/07/15(金) 08:02:33
1バイトずつapi呼んでたら遅くてかなわんな
564
名前:
デフォルトの名無しさん
:2005/07/15(金) 08:14:03
>>559
バッファリングすれば?
何でもAPIでやれると思ってしまうのが最近の初学者の悪い癖。
WinAPIみたいな低レベル層では、APIで何をするかではなく、
APIで何を実装するか、を考えるべき。
565
名前:
デフォルトの名無しさん
:2005/07/15(金) 08:57:40
ファイルハンドルから、オープンしているファイルのパス名を取得する方法ってありませんか?
566
名前:
デフォルトの名無しさん
:2005/07/15(金) 09:07:38
ファイルのパス名知らないとオープンできないような気がするが
567
名前:
デフォルトの名無しさん
:2005/07/15(金) 09:11:40
そもそもそのオープンしているものがファイルだという保障が無いです。
568
名前:
538
:2005/07/15(金) 09:30:40
>544
「インスタンスハンドルとクラス名の組み合わせで判定してるので、クラス名が重なっても平気」
って事でしょうか。
やはりGetClassInfoExが動かない理由がいまいちよくわかりません。
569
名前:
デフォルトの名無しさん
:2005/07/15(金) 10:08:47
インスタンスハンドルって他プロセスでは使えなかった希ガス。
つまりGetWindowLongで取得したHINSTANCEは
そのウィンドウが所属するプロセスのみで有効な値ってこと。
570
名前:
デフォルトの名無しさん
:2005/07/15(金) 10:32:21
>>566-567
つまり不可能ってことですか?
(オープンしてるのが、HDDのファイルなのは間違いないんですが)
571
名前:
デフォルトの名無しさん
:2005/07/15(金) 10:36:45
実質的には
・HINSTANCE=HMODULEの値はモジュールがプロセスにマップされたアドレス
・.exeのHINSTANCEは常に固定
じゃなかったか?
572
名前:
デフォルトの名無しさん
:2005/07/15(金) 11:30:52
>>560-564
有難う御座います
APIだけだと一文字づつ読んでいくしかないようですね
std::ifstreamやfopenよりもWin32APIでファイル入出力した方が
安全というような話を聞いた事があったのでAPIでやりたかったのです
とりあえずReadFileで改行まで一文字づつ読むコードを書いてみて
速度的に問題が無いか検討してみます
573
名前:
デフォルトの名無しさん
:2005/07/15(金) 12:16:05
getosfhandle
みたいな名前のやつ
574
名前:
デフォルトの名無しさん
:2005/07/15(金) 12:42:14
>>572
fopenとかも、結局は中でAPI呼んでるだけ
妙ちきりんなコードを書くよりは安全だと思うなw
575
名前:
デフォルトの名無しさん
:2005/07/15(金) 12:44:32
何が安全なのか分かってない希ガス。
576
名前:
デフォルトの名無しさん
:2005/07/15(金) 12:44:38
>>572
>std::ifstreamやfopenよりもWin32APIでファイル入出力した方が
>安全というような話を聞いた事があったのでAPIでやりたかったのです
>
>とりあえずReadFileで改行まで一文字づつ読むコードを書いてみて
>速度的に問題が無いか検討してみます
どうしてもWin32APIだけで高速に処理したいならファイルマッピングを勧める。
そうじゃなくて単にバッファリングするなら、おとなしくifstream使った方が良いし。
577
名前:
デフォルトの名無しさん
:2005/07/15(金) 12:47:14
ウィンドウクラスやインスタンスハンドルは
プロセス毎に持っていることを考えれば
GetClassInfoEx で別プロセスのクラス情報取得
できないことぐらい分かるだろうに。
578
名前:
538
:2005/07/15(金) 13:53:07
>577
そうなんですか。ありがとうございます。
インスタンスハンドルやモジュールハンドルについて根本的に勉強する必要がありそうですね。
インスタンスハンドルとは一言で言うと何なんでしょうか?
ご教授よろしくお願いします。
また、これらについて詳しく書かれたサイト等ご存知ないでしょうか?
579
名前:
デフォルトの名無しさん
:2005/07/15(金) 13:55:30
>>577
SPY++ はどうやって抜き出してるのか気になるトコロ… (プロパティで WNDCLASS とれてるし)
HELPER あたりになにかあるんかな?
580
名前:
デフォルトの名無しさん
:2005/07/15(金) 14:42:41
フックじゃね?
581
名前:
デフォルトの名無しさん
:2005/07/15(金) 15:51:20
俺は過去に改行にぶち当たるまで1バイトずつReadFileするプログラムを作ったことがあるが速度的に全く気にならなかったぞ
582
名前:
デフォルトの名無しさん
:2005/07/15(金) 15:53:43
>>581
俺も似たようなことしたことがあるよ。
WinApiって思ったより動作速いよね、描画以外。
583
名前:
デフォルトの名無しさん
:2005/07/15(金) 16:14:26
API
584
名前:
デフォルトの名無しさん
:2005/07/15(金) 16:51:47
>>582
> WinApiって思ったより動作速いよね、描画以外。
( ゚д゚)ポカーン
585
名前:
554
:2005/07/15(金) 20:03:32
自己解決しますた
ttp://www.codeguru.com/forum/archive/index.php/t-126755.html
586
名前:
デフォルトの名無しさん
:2005/07/15(金) 20:20:58
>>572
常識的に、そういうケースではバッファリングという手法を使う。
これは、一度手元の一時保管領域(バッファ)に一気にデータを(ReadFile()で)取得しておき、
必要に応じて必要な分(今回のケースでは1バイト)づつデータを取りだして本来の作業を行う。
バッファの分を使い切ったら、また一気にバッファにデータを取得して作業・・・を繰り返す。
APIを呼ぶのはローカルの関数を呼ぶのよりコストがかかるので、API呼び出しを極力行わなわず、
ローカル関数の呼び出しで代替する、という高速化手法なわけ。
これを自動的に行ってくれるのが、Cのf〜ファイル関数や、C++のiostream等のライブラリ。
> Win32APIでファイル入出力した方が安全
なんてのは根拠無しで言うのはナンセンス。普通は素直に標準ライブラリを使うべき。
587
名前:
デフォルトの名無しさん
:2005/07/15(金) 21:03:10
CreateFileでFILE_FLAG_NO_BUFFERINGを指定しない限りはデフォルトでReadFileの内部のスタティック変数にバッファリングされてる。
1バイトずつ読む場合でもReadFileの内部では一回目で既にファイルの内容がいくらかメモリに読み込まれてしまってる。
つまりReadFileの二回目以降はしばらくメモリへのアクセスになると思われ。
588
名前:
デフォルトの名無しさん
:2005/07/15(金) 21:09:22
そんなんに頼るくらいなら最初から必要と思われるだけバッファリングした方がはるかにマシ
589
名前:
デフォルトの名無しさん
:2005/07/15(金) 21:14:37
ま、やりたきゃ自分でバッファリングI/O実装してみるのもいいんじゃないの?
BSDのfunopen()やfgetln()のような機能はstdioには無いし
読み取りのみ・seek()なし・scanf()なし
程度なら屁みたいなもんだ
590
名前:
デフォルトの名無しさん
:2005/07/15(金) 21:20:38
>>588
わざわざ最初から天下のWindows様が用意してくださってる機能を信用せず変な意地だけ張ってバグ発生率を上げるのですか?
591
名前:
デフォルトの名無しさん
:2005/07/15(金) 21:22:42
>>590
ReadFile()は曲がりなりにもAPIコールだからな
一文字入力とかだと、stdioのgetc()
(無論マクロのヤツだ)に比べて格段に遅いのは免れんだろ
getc()したいときはungetc()も欲しくなるケースが多いしな
592
名前:
デフォルトの名無しさん
:2005/07/15(金) 21:49:38
天下のWindows様が聞いてあきれる
593
名前:
デフォルトの名無しさん
:2005/07/15(金) 23:27:27
あきれるに一票。API の引数の設定など、だらだら並べたのがあるかと思うと
構造体使っているのもある。設計に統一性がないみたい。みんなで好き好きに
やっているを集めたのではと疑いたくなることがある。
594
名前:
デフォルトの名無しさん
:2005/07/15(金) 23:35:10
CreateFontとCreateFontIndirectみたいに選べるのもある。
595
名前:
デフォルトの名無しさん
:2005/07/15(金) 23:36:39
>>593
ヒント:互換性
596
名前:
デフォルトの名無しさん
:2005/07/15(金) 23:52:34
>>593
その通りだと思ってたけど。
AdvancedWindowsに書いてあった気が。_beginthreadのあたりかな。
597
名前:
デフォルトの名無しさん
:2005/07/15(金) 23:58:31
好き勝手っつーか、APIが出来た時期によって流行が違う感じがする
598
名前:
デフォルトの名無しさん
:2005/07/16(土) 02:32:04
そりゃ実装時期によってCPUパワーもメモリ量も、プログラミングのトレンドも違う。
STDCALL、COM、.netの差とか考えれば、引数の数なんて些細。
599
名前:
デフォルトの名無しさん
:2005/07/16(土) 05:46:11
プログラミングのトレンドも違う
プログラミングのトレンドも違う
プログラミングのトレンドも違う
プログラミングのトレンドも違う
プログラミングのトレンドも違う
プログラミングのトレンドも違う
トレンドなんぞに左右されるようじゃな・・・
600
名前:
デフォルトの名無しさん
:2005/07/16(土) 05:47:11
アドレス0x400000あたりを空ける方法ってあるんでしょうか?
ブログラムのリンク時にベースアドレスを別の場所に指定してもスタックやらシステムヒープやらで埋められてしまうんですが・・・
601
名前:
デフォルトの名無しさん
:2005/07/16(土) 06:42:52
?##
>>599
むしろトレンドを左右している気が。
602
名前:
デフォルトの名無しさん
:2005/07/16(土) 06:55:40
>>593
確かにWinAPIの関数はあまり統一性がない。
shlwapi.dllはバグも多いみたいだし。
でもそれはそれでM$社員の個性が出てていいじゃないか。
603
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:05:49
そんなとこに社員が個性出してるような企業製品なんて価値0
604
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:19:46
>>599
トレンドに左右されない硬直化したシステムなんざ使い物にならんよ。
いろいろあって今となっては当たり前の技術になったオブジェクト指向はおろか、
モジュール化手法や関数ですら、計算機技術の当初から存在したものじゃあないし、
技術的必然性だけで生き残ってるわけでもない。
Cだって最初から標準的言語だったわけじゃない。
今じゃマイナー言語でしかないPascalが標準言語になると信じられていた時代すらある。
(int PASCAL WinMain()とか若い人は知らないか)
第一、Win32APIですら成功したトレンドの1種にすぎない。
最近OS/2のサポート打ち切りが決まったらしいけど、
あるいはWindowsNTがその立場にあった可能性だってある。
近年はOSのシステムコールレベルでオブジェクト指向をサポートする方向に向かってる。
MSのCOMやWinFX(.net Framework)しかり、Mac OSのX Codeしかり。
(歴史を眺めれば、NeXTやBeOSなんてのもある)
要するに、トレンドは重要だってこと。良くも悪くもね。
605
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:23:30
WinAPIはほとんどstdcallだが中にはcdeclを使ってるものもあるのか?
606
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:30:09
>>605
wsprintfとか可変個引数をとるものはcdecl。
607
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:30:48
そもそもなんで呼び出し規約違うのが混在してんの?
UNIXみたいにさっぱりできんのか
608
名前:
269
:2005/07/16(土) 07:44:07
>>285
どうもありがとうございます。
CREATE_SUSPENDで実行を再開するのにはResumeThread()でできました。
次に、任意の場所で止めたくなりました。そこでDEBUG_PROCESSというオプションを使ってみたらCREATE_SUSPENDEDと同じように止まっているみたいです。
しかしこれはResumeThread()で再開できないみたいです。そして再開できたとしてもSuspendThread()では好きな場所で停止することはできません。
自由に止めたり動かしたりするにはどうしたらよいのでしょうか・・・
609
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:50:54
>>607
stdcallが速いからなのか・・・
x86の特権移行なんかはスタックも切り替わるから、機械語レベルでstdcallになってしまっている。
610
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:50:57
>>607
C標準ライブラリは当然Cの規約に従う必要があるけど、
WinAPIは別にCだけから呼び出すわけじゃないし。
UNIXはシステム記述するためだけにCを作ったくらいだから、
そのへんの統一はしやすかっただろうけどね。
611
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:54:10
C標準ライブラリだって別にCの規約に従う必要は別にないし、
C/C++の規格だって呼び出し規約については何も書いていない。
612
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:56:05
wsrpintf()やlstrlen()なんかはまんまCをモデルにしてるのに・・・
613
名前:
デフォルトの名無しさん
:2005/07/16(土) 07:58:37
>>604
うっは、すごいデムパ
614
名前:
277
:2005/07/16(土) 07:58:51
試したところ、ポート61hを叩いて使えるみたいなのですが、TSSを調査してI/O仮想化を調べたら、どういうタイミングでかはわからないけど、61hがマスクされたりされなかったりしているみたいです。
それにWindowsでじかにポートを叩くのは行儀が悪いと思うので・・・
正しい方法を教えて下さい。
615
名前:
デフォルトの名無しさん
:2005/07/16(土) 08:08:15
質問です
waveInOpenでコールバックスレッドを指定したとき、
スレッド内ではどのようにしてメッセージ(MM_WIM_DATA等)を受け取ればいいのでしょうか?
616
名前:
デフォルトの名無しさん
:2005/07/16(土) 09:10:29
普通にGetMessageでできますた orz
スレ汚しすまそ
617
名前:
デフォルトの名無しさん
:2005/07/16(土) 09:17:49
TSSを調査してって、TV局を調査すんのかと思った広島県民
618
名前:
デフォルトの名無しさん
:2005/07/16(土) 12:41:52
MFCでDoModalってありますよね。
それをWin32APIで実現したいのですが、
ただ、”ダイアログ”ではなくて、”ウィンドウ”で実現したいのです。
よき方法はありますでしょうか?
おそらく、表示されてるウィンドウ以外の親ウィンドウ領域のクリックを、その対象となるウィンドウが表示している間はイベント(クリック)を受け付けないようにすればいいと思うのですが。
619
名前:
デフォルトの名無しさん
:2005/07/16(土) 12:58:39
>>614
Beep()じゃ不満?
そこまで低レベルな方法でビープスピーカーを鳴らしたいの?
620
名前:
デフォルトの名無しさん
:2005/07/16(土) 13:01:57
>>618
Advanced WindowsにDialogBoxParamはEnableWindow(親, FALSE);を実行すると書いてあったような気がする。
621
名前:
デフォルトの名無しさん
:2005/07/16(土) 13:14:39
解凍・圧縮ソフトは、その実行中にプログレスバーで処理状況を表示しますが、
そのプログレスバーがあるダイアログには必ず「キャンセル」ボタンが表示されているソフトが多いと思います。
解凍・圧縮機能の機能処理中に「キャンセル」ボタンのClickを受け付けるというのは、プログラミングの側面でどのように記述すればいいのでしょうか?
処理アルゴリズム(ループ)の中に、イベントを拾うAPIを入れるのでしょうか?
622
名前:
デフォルトの名無しさん
:2005/07/16(土) 13:18:31
>>621
つスレッド
623
名前:
デフォルトの名無しさん
:2005/07/16(土) 13:31:04
>>621
Yes
プログレスバー更新のタイミングもいるでしょ。
624
名前:
デフォルトの名無しさん
:2005/07/16(土) 14:01:19
Modalという考えはダイアログにしかないのだが・・・
625
名前:
デフォルトの名無しさん
:2005/07/16(土) 14:31:19
パケットキャプチャツールとかはどうやってパケットを取得してるのでしょう?
ネットワークインターフェイスにたいしてトリガー設けるAPIがあるのですか?
626
名前:
デフォルトの名無しさん
:2005/07/16(土) 14:49:10
たいていはそういうことをするための、どこぞで公開されているライブラリを使用している
ツール自身が取ってきてることはほとんど無い
627
名前:
デフォルトの名無しさん
:2005/07/16(土) 16:02:18
>>625
ドライバ
628
名前:
デフォルトの名無しさん
:2005/07/16(土) 17:29:22
>>603
その個性の価値ではなく、製品価値が0ですか
なんでWinのスレにいんの?
629
名前:
デフォルトの名無しさん
:2005/07/16(土) 17:38:03
夏だから勘弁してやれ。
630
名前:
625
:2005/07/16(土) 19:17:31
ドライバ?もちょっと詳しく。
Cマガのバックナンバに特集のってるなあ。本屋いくか。
631
名前:
デフォルトの名無しさん
:2005/07/16(土) 19:20:07
ちったぁ足りない頭使いやがれ
あとAPI関係ねぇ
632
名前:
デフォルトの名無しさん
:2005/07/16(土) 19:25:10
Win○cap
一文字伏せてみました。
633
名前:
デフォルトの名無しさん
:2005/07/16(土) 19:57:03
Winぴーcap
ちゃんと音で伏せろよ。
634
名前:
デフォルトの名無しさん
:2005/07/16(土) 20:27:32
Winぴぃcap
音で伏せるならこうだろ
635
名前:
デフォルトの名無しさん
:2005/07/16(土) 20:43:36
>>633-634
おまいら、厨にもやさしいな。
636
名前:
デフォルトの名無しさん
:2005/07/16(土) 21:27:58
ソケットにRAWモードなかった?
637
名前:
デフォルトの名無しさん
:2005/07/16(土) 21:34:43
それはライブラリでしょ。得意そうに.。わからんやつは黙っとけば?
638
名前:
デフォルトの名無しさん
:2005/07/16(土) 22:28:38
お前がなww
639
名前:
デフォルトの名無しさん
:2005/07/16(土) 22:29:50
お前もなwwwうぇw
640
名前:
デフォルトの名無しさん
:2005/07/16(土) 22:36:38
急速にスレの質が低下してまいりました(ry
641
名前:
デフォルトの名無しさん
:2005/07/16(土) 22:48:44
すまん素人がいっちょまえの口きいてるからついカッとなった。
642
名前:
デフォルトの名無しさん
:2005/07/16(土) 22:52:10
つか今日はあちこちのスレで夏の香りが急に強まってるな
643
名前:
デフォルトの名無しさん
:2005/07/16(土) 22:55:40
同類にしか分からない臭いってのがあるんだねw
644
名前:
デフォルトの名無しさん
:2005/07/16(土) 23:12:38
スレッドがサスペンド状態か否かを調べるときってGetExitCodeThread(hThread , &dwParam);で出来るんですか?
その値はなんなんですか?
645
名前:
デフォルトの名無しさん
:2005/07/16(土) 23:20:04
できない
646
名前:
644
:2005/07/16(土) 23:22:10
スレッドがサスペンド状態か否かってどうやって調べるんですか?
647
名前:
デフォルトの名無しさん
:2005/07/16(土) 23:31:06
ResumeThreadを呼び出してみて再開したらサスペンド状態だった
とかいう無理やりな判定方法をどっかで見たな
648
名前:
デフォルトの名無しさん
:2005/07/16(土) 23:34:00
SuspendThread()の返り値が1以上だったら、サスペンド中。すぐに
ResumeThread()すれば元に戻る。
というか、ふつうスレッドをサスペンドなんてさせない。
649
名前:
644
:2005/07/16(土) 23:36:54
ありがとう
650
名前:
デフォルトの名無しさん
:2005/07/17(日) 01:27:36
複数のCD-ROMドライブがついているマシンで、
一番初めのCD-ROMドライブではないドライブにCDを入れたところ、
ゲームの音がなりませんでした。
Win9xでは「音楽CDを再生する規定のCD-ROMドライブ」を設定することで
どのドライブに入れても音を鳴らすことができるのですが、
Win2K(NT系?)にはこの設定項目がありません。
ドライブレターを変更するのが面倒なので、パッチを当てようと思うのですが、
「音楽CDを再生する規定のCD-ROMドライブ」の設定が影響するAPIが何か知りませんか?
651
名前:
デフォルトの名無しさん
:2005/07/17(日) 01:45:14
>>650
mciGetDeviceId("cdaudio") とか、mciSendCommand(..., MCI_OPEN,
...) とか mciSendString() とか。
652
名前:
デフォルトの名無しさん
:2005/07/17(日) 01:53:26
設定項目が無くなっただけでレジストリ直は有効だと言う話
653
名前:
デフォルトの名無しさん
:2005/07/17(日) 01:53:35
>>650
ディスクアドミニストレータでドライブレター変更するのそんなに面倒か?
654
名前:
デフォルトの名無しさん
:2005/07/17(日) 01:55:17
>>651
最初、mciSendStringかと思ったんですけど、
Dependency Walkerで調べたところ無かったんですよ。
WINMM.DLLを調べてみると使用しているmci〜系APIは一つもなかったんですけど、
良く調べてみると、MSVFW32.DLLにMCIWndCreateがあって
これでもCD鳴らせるようですね。多分これでしょう。
DirectSoundも使っているようなんですけど、
「音楽CDを再生する規定のCD-ROMドライブ」が関係するのはMCIだけで、
DirectSoundでは関係ないですよね?
あとあやしげな、WINMM.DLLのmmio〜系API。
これでは設定が関係ないどころかCDを再生できませんよね?
CDを再生するためのAPIはこれだけなんだろうか?
とりあえず、MCIWndCreateを弄くってみます。
655
名前:
デフォルトの名無しさん
:2005/07/17(日) 01:55:46
\HKLM\SYSTEM\CurrentControlSet\Control\MediaResources\mci\cdaudio\Default Drive
の予感。
656
名前:
デフォルトの名無しさん
:2005/07/17(日) 01:56:15
>>652
レジストリわかりますか?
>>653
はい。面倒です。
657
名前:
デフォルトの名無しさん
:2005/07/17(日) 02:06:03
>>655
そのキーないです。
データ型と値(どのドライブがどの値かも)わかりませんか?
一応、ここみてDWORD値かと思ってやったんですけど鳴らない。
http://forum.alcohol-soft.com/index.php?showtopic=15687
658
名前:
デフォルトの名無しさん
:2005/07/17(日) 11:54:55
'INITCOMMONCONTROLSEX' : 定義されていない識別子です。と出ますが、
何がたりないのでしょうか?
659
名前:
デフォルトの名無しさん
:2005/07/17(日) 11:55:56
頭
660
名前:
デフォルトの名無しさん
:2005/07/17(日) 12:14:56
>>658
SEXまで読んだ
661
名前:
デフォルトの名無しさん
:2005/07/17(日) 12:49:11
>>658
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrfInitCommonControlsEx157.asp
662
名前:
デフォルトの名無しさん
:2005/07/17(日) 21:55:07
当方初心者ですが質問です。(C++相談室 part41より誘導されました)
ファイルの一覧を取得したくて下記のfindfirstを使ったのですが引数の*filespecって絶対パスでなければ使用不可能なんでしょうか。
MSDNには「ターゲット ファイルの指定 (ワイルドカードも使えます)」なんて書いてあるんですが、
ためしに相対パスを使用したらEINVAL(Invalid argument)が返ってきちゃいました。
みなさんは相対パスで指定したいときってどうされていますか?
そもそも相対パスなんか使わずに、まず絶対パスを取得して、その後findfirstを使用するのが一般的なんでしょうか。
ご教授ください。
long _findfirst( char *filespec、struct _finddata_t *fileinfo );
663
名前:
デフォルトの名無しさん
:2005/07/17(日) 21:58:00
Win32APIならFindFirstFileだろ
664
名前:
デフォルトの名無しさん
:2005/07/17(日) 22:01:18
>>662
カレントディレクトリからの相対パスでOKなず。キミがどんなコードを
書いたのかを開示すべき。
665
名前:
デフォルトの名無しさん
:2005/07/17(日) 23:30:20
>>664
役立たずのコードを見たがるなんて、おまえ病気だよ。
666
名前:
デフォルトの名無しさん
:2005/07/18(月) 04:52:29
ディレクトリの \ をエスケープしわすれたんじゃないの?
667
名前:
デフォルトの名無しさん
:2005/07/18(月) 16:40:44
申し訳ありませんが、1つ質問させてください。
今、簡単なアドベンチャーを作っています。
PeekMessage関数を使って、メッセージがないときにはMainLoop関数を呼ぶようにしています。
しかし、これを実行すると、休むことなくMainLoopを繰り返すためか、
CPU使用率が100%になってしまいます。
そこで試しに、MainLoop関数の中にSleep(1)を入れてみると、
CPU使用率はかなり減少しました。
しかし、Sleep関数はPCをフリーズさせているのと同じだと聞いたことがあります。
MainLoop関数の中にSleepを入れてよいのでしょうか?
また、その他にいい方法があればお教えください。
668
名前:
デフォルトの名無しさん
:2005/07/18(月) 16:43:08
Win32APIというかWindowsのコントロールの質問なんだけど、
EditBoxのカレントのカーソル位置を知る方法ってありますか?
MFCを使ってないんでWM_GETTEXTやらと同じ方法で取得するんだと思うのだけど。
669
名前:
デフォルトの名無しさん
:2005/07/18(月) 16:58:27
>>667
それでもいいしタイマーとかスレッドとかゲ板とか
>Sleep関数はPCをフリーズ
むしろ逆
670
名前:
デフォルトの名無しさん
:2005/07/18(月) 17:00:29
>>667
読んでみた?
ttp://msdn.microsoft.com/library/en-us/dllproc/base/sleep.asp
671
名前:
デフォルトの名無しさん
:2005/07/18(月) 17:06:59
>それでもいいし
あほ?
672
名前:
デフォルトの名無しさん
:2005/07/18(月) 17:16:00
>>667
ビジーループ氏ね。
673
名前:
デフォルトの名無しさん
:2005/07/18(月) 17:23:06
Sleepは一応ある意味フリーズだろ。
メインスレッドでそれを使うのはナンセンスかと。
素直に他スレッド使え。
674
名前:
デフォルトの名無しさん
:2005/07/18(月) 17:25:58
長年の論争にけりを付けるため
誰かWindowsゲームで使える、完璧なフレームワーク書いてくれよ
675
名前:
デフォルトの名無しさん
:2005/07/18(月) 17:32:31
ゲームなら全画面表示でやれよ
676
名前:
デフォルトの名無しさん
:2005/07/18(月) 17:42:20
>>667
そういう用途ならSleep(0);で十分。
677
名前:
デフォルトの名無しさん
:2005/07/18(月) 17:49:33
>>675
何の話?
678
名前:
デフォルトの名無しさん
:2005/07/18(月) 18:09:36
>>668
EM_GETSET
>>677
他アプリ使えなきゃゲーム側で独占しても問題無いってことだろ
つーかそもそもPCゲーはそうやるもんだ
679
名前:
デフォルトの名無しさん
:2005/07/18(月) 18:14:56
久々に大物のヴァカ登場か
680
名前:
デフォルトの名無しさん
:2005/07/18(月) 18:19:07
>>678
あ、そういうことか
俺も全画面のみのゲームは好きじゃないが
DirectXでのフラグの旧名称が、「全画面」ではなく、「排他」な以上、そういう方向なんだろうな
681
名前:
667
:2005/07/18(月) 18:28:33
皆さん、ありがとうございます。
とても参考になりました。
682
名前:
デフォルトの名無しさん
:2005/07/18(月) 19:06:56
>>679
自虐乙
>>680
排他って言った方が理解しやすいしな
683
名前:
デフォルトの名無しさん
:2005/07/18(月) 20:19:36
マルチタスクOSたるWindowsの存在価値を否定する概念だよな、デバイスの排他利用って。
684
名前:
デフォルトの名無しさん
:2005/07/18(月) 20:23:28
キーボードだって排他的に利用してるじゃん。
685
名前:
デフォルトの名無しさん
:2005/07/18(月) 20:30:36
>>684
は?
キーボードは排他利用されていない。
本当に排他利用しているなら全角/半角キー入力による全角変換ウィンドウが出ない。
686
名前:
デフォルトの名無しさん
:2005/07/18(月) 20:42:12
1tくらいはありそうだな > 大物
687
名前:
デフォルトの名無しさん
:2005/07/18(月) 20:47:32
素人は回答を控えてください
688
名前:
デフォルトの名無しさん
:2005/07/18(月) 20:48:03
その大物ってのはなんだ?
>>676
か?
689
名前:
デフォルトの名無しさん
:2005/07/18(月) 20:52:38
なつかしいエロゲ板ネタだナ
690
名前:
デフォルトの名無しさん
:2005/07/18(月) 20:56:44
>>683
ゲーム中にマルチタスクも無いもんだ
691
名前:
デフォルトの名無しさん
:2005/07/18(月) 20:58:22
ゲーム作ってるやつらってのはこんなににもアフォばかりなのか…
692
名前:
デフォルトの名無しさん
:2005/07/18(月) 21:07:23
このループは以前葱板で見た気がする‥‥
693
名前:
デフォルトの名無しさん
:2005/07/18(月) 21:20:57
自分の考えに合わないものは全てアフォ扱い
さすが自称スーパープログラマはスバラシイですね
694
名前:
デフォルトの名無しさん
:2005/07/18(月) 21:24:31
そんな言い返ししかできないとはかわいそうなニート君でつね(プゲラ
695
名前:
デフォルトの名無しさん
:2005/07/18(月) 21:33:27
ものの考え方が明らかに変だな。
日本人じゃないかも知れないなあ。
696
名前:
デフォルトの名無しさん
:2005/07/18(月) 21:39:52
>>693-695
ここ逝け。
http://pc8.2ch.net/test/read.cgi/tech/1115830336/l50
697
名前:
デフォルトの名無しさん
:2005/07/18(月) 21:45:14
HSPの話なんてして無いじゃん。
アフォ?
698
名前:
デフォルトの名無しさん
:2005/07/18(月) 21:54:30
タイトルはHSPスレだが実際は基地外の雑談スレ
699
名前:
デフォルトの名無しさん
:2005/07/18(月) 22:00:42
>>690
オンライン状態でゲームをしている際に、
別プロセスのファイアウォールが通信許可を求めるダイアログを出す場合もある。
排他所有を当然と考える発想は、世間では通じない。
700
名前:
デフォルトの名無しさん
:2005/07/18(月) 22:15:47
>>689
これ?
http://pie.bbspink.com/test/read.cgi/erog/1055673723/l50
701
名前:
デフォルトの名無しさん
:2005/07/18(月) 22:22:49
>>699
FFなんて激しく排他ですよw
702
名前:
デフォルトの名無しさん
:2005/07/18(月) 22:28:05
>>700
報告だけじゃなくて、以前は議論っぽいことをやってた
Sleep(0)以外の方法はダメだと主張する御仁が暴れてた
実はWaitFor系のAPIを知らなかっただけらしい
703
名前:
デフォルトの名無しさん
:2005/07/18(月) 22:44:04
>>685
排他「的」って書いたんだが…
「A」って打ったときに2つのアプリに入力されることはないでしょ、て。
704
名前:
デフォルトの名無しさん
:2005/07/18(月) 22:48:47
>>703
フォーカス持ちのアプリとキーロガー
705
名前:
デフォルトの名無しさん
:2005/07/18(月) 22:56:39
>>703
・・・君なぁ。
出力デバイスであるスクリーンの排他の話をしてたのに、
入力デバイスに排他性があることを主張して自己正当化するのは苦しいだろ?
そもそも、複数のアプリに入力が通知されるように作ることは可能。
正規のAPIでキーボードフックを使えばいい。
任意のアプリの入力を別アプリで取得できる以上、排他ではない。
ホットキーも存在するでしょ。
706
名前:
デフォルトの名無しさん
:2005/07/18(月) 23:00:27
ちょっとお尋ねしたいのですが
CreateFileで既存のファイルを開く時、
開く作業自体はファイルサイズに影響されないんでしょうか?
ファイルサイズが大きいと時間かかるとか・・・
707
名前:
デフォルトの名無しさん
:2005/07/18(月) 23:13:10
ファイルサイズが大きいと時間がかかるのは当たり前じゃないの?
ファイルサイズが大きいと小さいのと比べて同じ量をバッファする時間がかかるってこと?
708
名前:
デフォルトの名無しさん
:2005/07/18(月) 23:17:29
ただ開くだけでも?
709
名前:
デフォルトの名無しさん
:2005/07/18(月) 23:29:59
計ってみろ。おれは同じな気がする。
710
名前:
707
:2005/07/18(月) 23:54:50
CreateFileか・・・Readじゃないのね・・・
俺も同じな気がする。
711
名前:
デフォルトの名無しさん
:2005/07/18(月) 23:59:29
デバイスによる気がする。
712
名前:
デフォルトの名無しさん
:2005/07/19(火) 00:08:53
ファイル開くだけで読まないならディレクトリエントリ読んでるだけだろ
713
名前:
デフォルトの名無しさん
:2005/07/19(火) 00:10:47
ファイルサイズよりもデバイスの種類に影響されそう。
714
名前:
デフォルトの名無しさん
:2005/07/19(火) 00:13:45
そんな当たり前のこと言われても
715
名前:
デフォルトの名無しさん
:2005/07/19(火) 00:23:44
NTFSならMFTも読みそうだけどやっぱりサイズは関係ないと思う
716
名前:
706
:2005/07/19(火) 00:33:00
ここの連中は本当に無能ですね。
〜気がする
〜だろう
〜されそう
〜と思う
アホさ加減に涙が出そうです。
マトモな返答をオネガイします。
717
名前:
デフォルトの名無しさん
:2005/07/19(火) 00:34:34
バレバレの騙り荒らし乙
718
名前:
デフォルトの名無しさん
:2005/07/19(火) 00:36:13
本人ではなさそうだな。
>>716
つーか、簡単に確認できることを人に聞くなと・・・
719
名前:
デフォルトの名無しさん
:2005/07/19(火) 01:11:56
日本語版MSDNでapi関数の検索ってどうやってやるの?
720
名前:
デフォルトの名無しさん
:2005/07/19(火) 01:14:27
つ[Google]
721
名前:
719
:2005/07/19(火) 01:17:00
おおほんとだありがとう。基本的なことですれ汚しごめんでした。
722
名前:
デフォルトの名無しさん
:2005/07/19(火) 01:42:50
つーかMSDNの検索機能使うよりぐぐったほうが早いというのがなんとも…
723
名前:
デフォルトの名無しさん
:2005/07/19(火) 01:59:21
error C2262: 壊せません。
ってエラーが出ます。
MSDN入れてないんでGoogleで探したんですが
情報みつけられません。
探し方OR回答おしえてくらさい。
724
名前:
デフォルトの名無しさん
:2005/07/19(火) 02:20:19
それは本当にAPIの問題なのだな?
725
名前:
デフォルトの名無しさん
:2005/07/19(火) 02:23:51
VC++のランタイムライブラリのエラーに見えるな
726
名前:
デフォルトの名無しさん
:2005/07/19(火) 02:26:21
適切なデストラクタが定義されましたが、アクセス可能でないため、オブジェクトをインスタンス化できません。
だって
727
名前:
デフォルトの名無しさん
:2005/07/19(火) 03:44:11
SYSTEMとHIDDENの設定されたファイルを削除したいのですが
DeleteFileで失敗、GetLastErrorで2(ファイルが見つからない)になります。
SetFileAttributesでFILE_ATTRIBUTE_NORMALも失敗します。
手順等判りましたら教えてください
728
名前:
デフォルトの名無しさん
:2005/07/19(火) 03:49:14
属性は関係ない
おおかた \ を二重にするのを忘れてるとかそんなとこだろ
729
名前:
デフォルトの名無しさん
:2005/07/19(火) 09:51:02
>>578-580
亀レスだが GetClassLongPtr で取れるだろ。
ウィンドウハンドルはグローバルで有効、インスタンスハンドルはプロセスローカル。
GetClassInfoEx では無理と書いたのはそういうこと。
他の人も書いてるがインスタンスハンドルはメモリにマップされた EXE や DLL の識別子で
具体的な値はマップされたメモリ番地(WinCE なんかじゃ違うらしい)で、API の内部では
EXE や DLL のヘッダを辿ってリソースや TLS 初期化子にアクセスしたりする。
メモリ空間はプロセス毎に分かれてるってのは聞いたことないかい?
メモリ空間が分かれてるってことはインスタンスハンドルもそのプロセス内でのみ有効に
なってしまうってこと。すなわちインスタンスハンドルだけでは「どのプロセスの」っていう
情報が抜けてるから別プロセスのウィンドウクラスを取得することが無理。
730
名前:
デフォルトの名無しさん
:2005/07/19(火) 10:14:35
補足すると WNDCLASS(EX) で hInstance を指定するのは EXE や DLL から情報をとるため
ではなく、インスタンスとウィンドウクラスを関連付けるため。
関連付けがなされるから GetClassInfoEx みたいな API が使えたり、プロシージャを含む
インスタンスを解放するとウィンドウが破棄される。
731
名前:
デフォルトの名無しさん
:2005/07/19(火) 10:26:33
☆沖川君の憂鬱について☆
http://yasushikondo.no-ip.info/prog/all/non-job/okikawa/index.html
☆沖川君の憂鬱について☆感想文掲示板
http://yasushikondo.no-ip.info/prog/all/non-job/okikawa_bbs/aska.cgi
732
名前:
デフォルトの名無しさん
:2005/07/19(火) 10:36:23
ログオンユーザが、ローカルユーザかドメインユーザかを判断するAPIってありますか?
ログオンしたユーザがadministratorsグループだったら処理を行わないようにしたいのですが、
netuser/netgroup/netlocalgroup と GetUserName の組み合わせだと、ローカルユーザとドメ
インユーザが同一名の場合うまく判断できません。
判断するAPI、もしくは上手な判断方法なのありましたら教えてください。
733
名前:
デフォルトの名無しさん
:2005/07/19(火) 11:44:17
>>729-730
部外者だがとてもためになった。ありがとう(´ー`)
734
名前:
デフォルトの名無しさん
:2005/07/19(火) 17:43:10
732
OpenProcessToken();
GetTokenInformation();
LookupAccountSid():
735
名前:
デフォルトの名無しさん
:2005/07/20(水) 01:12:39
かなり初歩的なことかと思うのですがご教授下さい
新たに作ったプロジェクトに過去に作ったソースをコピペしたのですが
DefWindowProcが呼ばれていないのか、ウィンドウの移動や×印を押しての終了ができません。
ソース以外の部分に問題があったりすることもあるんでしょうか?
プロシージャの最後で
return DefWindowProc(hWnd,msg,wParam,lParam);
と書くと移動や最小化等ができず
DefWindowProc(hWnd,msg,wParam,lParam);
return 0;
と書くとできます
以前に作ったプロジェクトはreturn DefWindowProc(hWnd,msg,wParam,lParam);で正しく動作していて
ソースは全く同じなのですが…
736
名前:
デフォルトの名無しさん
:2005/07/20(水) 06:48:11
ソースいじって変わる現象なら、ソースに問題があるんだろ
前に動いていたというのも疑わしいと考えて、見直した方がいいんじゃないか?
737
名前:
デフォルトの名無しさん
:2005/07/20(水) 09:18:43
俺はスタックオーバーフローしてるんだと予想。
前はデバッグ版で今回はリリース版だとか。
後、些細なことでスタックの alignment 変わったりするからね。
配列のサイズ2倍にするとかポインタ経由で書き込みしてたら本当に書き込みできるサイズのものかチェック汁。
738
名前:
732
:2005/07/20(水) 09:33:14
>734
レスありがとうございます。
OpenProcessToken でアクセストークン取得して
GetTokenInformation でグループ情報取得して
LookupAccountSid でSIDからユーザがドメインかローカルかを判断する
という流れですね。ありがとうございます、コレでやってみます。
739
名前:
デフォルトの名無しさん
:2005/07/20(水) 10:15:05
お初ですが、よろしくお願いします。
ウインドウに描画された内容をビットマップ化し扱うプログラムを作ろうとしています。
具体的には、HWNDからHBITMAPにもってこようとしてるのですが、知識が乏しくうまく行ってません。
よろしくお願いします。
740
名前:
デフォルトの名無しさん
:2005/07/20(水) 11:14:22
>>739
MSDN読んで知識を付けよう。
MSのインシデントを使って質問すると手取り足取り教えてくれる。
741
名前:
デフォルトの名無しさん
:2005/07/20(水) 11:14:59
>>739
ここで説明できるほど簡単ではない。
http://www.sm.rim.or.jp/~shishido/wincap.html
742
名前:
デフォルトの名無しさん
:2005/07/20(水) 12:21:16
>>739
ttp://forums.belution.com/ja/vc/000/315/83.shtml
マルチポストうざ
743
名前:
デフォルトの名無しさん
:2005/07/20(水) 13:44:41
SIDでドメインユーザかどうかなんてわかるの?
SIDからドメインとってプログラムが走ってるPCのドメインと比較するの?
でもそれはドメインかローカルを区別したことにはならんよね。
744
名前:
デフォルトの名無しさん
:2005/07/20(水) 16:15:44
>>743
LookupAccountSid()にドメイン名が入ってくるかどうかで判断できるんじゃね
745
名前:
デフォルトの名無しさん
:2005/07/20(水) 17:20:21
>>744
テストプログラム作ってローカルログインしたユーザで実行したらドメイン名にコンピュータ名が返ってきたよ。
>>734
はプログラムをドメインコントローラで実行するという前提なのかな?
NTの機能でAdminグループに実行権を付与するのが楽な気がするのだが。
746
名前:
デフォルトの名無しさん
:2005/07/20(水) 17:34:39
ReferencedDomainNameに入ってくるのが
ドメイン → ドメイン名
ローカル → ドメイン名にコンピュータ名
なら、コンピュータ名取っておいて比較すれば
>>745
の前提は関係なく切り分けられるのでは?
747
名前:
デフォルトの名無しさん
:2005/07/20(水) 18:15:54
CPUの負荷を%で取得するにはどうすればいいですか?
748
名前:
デフォルトの名無しさん
:2005/07/20(水) 19:06:58
Win32APIでPainは出来ないですか?
疑似しか無理ですかね?
749
名前:
デフォルトの名無しさん
:2005/07/20(水) 19:26:09
>>746
「ドメイン名にコンピュータ名」とは"ドメイン名\コンピュータ名"
ってこと?
単にコンピュータ名です。ローカルログインしてるんだかだからあたりまえだけど。
>GetTokenInformation でグループ情報取得して
>LookupAccountSid でSIDからユーザがドメインかローカルかを判断する
属してるグループ列挙してドメインコントローラのアドミンズグループに属してるか調べるってことかいな?
750
名前:
デフォルトの名無しさん
:2005/07/20(水) 19:26:43
APIで痛みを出すのは難しいから疑似にとどめておけ。
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.