Win32API質問箱 Build59at TECH
Win32API質問箱 Build59 - 暇つぶし2ch809:デフォルトの名無しさん
07/11/30 12:55:46
>>807
やはりそうなんですか
ありがとうございました

810:デフォルトの名無しさん
07/11/30 13:44:40
>>808
Platform SDKを良く読んだほうが良い

811:デフォルトの名無しさん
07/11/30 14:10:35
>>810
よく読むべきなのはお前な
BindImage
ReBaseImage
ImageLoad

> All ImageHlp functions, such as this one, are single threaded.
今時こんな設計の糞API揃いだが

812:デフォルトの名無しさん
07/11/30 14:15:58
>>811
なんだそれNT時代のAPIじゃないのか?w

813:デフォルトの名無しさん
07/11/30 14:47:24
そうはいうがな
Windows1.0時代からあるAPIだってUnicode対応・マルチスレッド対応だぞ

814:デフォルトの名無しさん
07/11/30 14:48:03
1.0は言い過ぎか?
今でも使われる古参のAPIってどのあたりからあるんだろ

815:デフォルトの名無しさん
07/11/30 16:24:22
>>813
それだって、最初からそうだったのではなく、
Win32化されたときからじゃないか。

>>814
Win16はわからないけど、CreateWindowとか有名な関数をMSDNライブラリで引くと、
大体Minimum operating systemsがWindows 95, Windows NT 3.1になっている。

816:デフォルトの名無しさん
07/11/30 18:33:37
>>815
CreateWindowはWin16時代からある

817:デフォルトの名無しさん
07/11/30 18:36:26
そりゃまあ、WinMainからRegisterClassしてCretateWindowしての
一連の基本のやつは昔からあるけどよー

818:デフォルトの名無しさん
07/11/30 19:02:10
マウスキャプチャ状態にある
コモンコントロールのマウスの移動を関知するには
どうすればいいのでしょうか?
タブをドラッグアンドドロップで移動させたいのですが
親にWM_MOUSEMOVEが飛んできません…

819:デフォルトの名無しさん
07/11/30 19:11:50
キャプチャしたウィンドウに飛んでこないか?

820:デフォルトの名無しさん
07/11/30 19:17:04
>>819
もしやサブクラス化意外に道はないのでしょうか?
通知メッセージを用意しといてくれてもいいのに…
ゲイツめぇ

821:デフォルトの名無しさん
07/11/30 19:24:10
だからぁ
SetCapture( hwnd );で
hwndに飛んでこないかと?

822:デフォルトの名無しさん
07/11/30 19:34:01
>>821
キャプチャ事態は自分で行っている訳ではなくて
コモンコントロールがNM_CLICKに併せて行ってくれているようで
離したときにくるNM_RELEASEDCAPTUREまでの間に
MOVEを拾えないかと思ったのです。

823:デフォルトの名無しさん
07/11/30 19:36:36
>>822
そりゃサブクラス化するべきなんじゃね?

824:デフォルトの名無しさん
07/11/30 19:38:55
タブコントロールがSetCaptureして、マウスキャプチャ状態にしてるんだけど、
その状態でWM_MOUSEMOVE相当のメッセージを親Windowで取得したい。

ってこと?


825:デフォルトの名無しさん
07/11/30 19:41:36
NM_CLICKでコモンコントロールはキャプチャしないだろ
それにSetCaptureすればいいだろが

826:デフォルトの名無しさん
07/11/30 19:46:00
spyで確認したけどキャプチャしてない
そもそもその手のドラッグアンドドロップは自分でマウスキャプチャして実装するもの

827:デフォルトの名無しさん
07/11/30 19:54:01
WM_LBUTTONDOWN
If the user is clicking a button, the control redraws the button to give a sunken appearance and captures the mouse.

ってMSDNに書いてあるから、ボタンの場合(TCS_BUTTONS style)はキャプチャしているんでしょ?

828:デフォルトの名無しさん
07/11/30 20:00:29
>>827
なるほど、だからキャプチャしてたんですね。
親で改めてキャプチャするかサブクラス化してみようと思います。
どうもありがとうございました。

829:デフォルトの名無しさん
07/11/30 20:01:37
TCS_BUTTONSスタイルまで確認してなかったわ

830:デフォルトの名無しさん
07/11/30 20:35:39
>>814
俺はWTERMの人が書いた本でWindowsプログラミングの勉強をしたが
それがたしかWindows1.0用の本で、ほとんどそのまま3.1で通用したよ。
3.1から95もAPIはほとんど一緒だから、GetMessageとかのAPIは
ずっと変わってないと思う。

831:デフォルトの名無しさん
07/11/30 22:22:09
だってある意味winプログラムの原点だからGetMessageの概念は

832:デフォルトの名無しさん
07/11/30 22:58:06
イベントドリブンはナムコが考えました

833:デフォルトの名無しさん
07/11/30 22:58:18
友達がいなくて
携帯メールがGetMessageできない漏れをどうにかしてください

WinSockムズカシス

834:デフォルトの名無しさん
07/11/30 23:07:00
GlobalAllocで確保されるメモリって、自プロセス内のスタック領域?とかいうところから拾ってきてるの?
ファイル読み込みで、何度かGlobalReAllocを繰り返し呼び出して、再確保を繰り返しやると
18000Byte超えたあたりで、メモリの再確保に失敗する
なんでだろう

835:デフォルトの名無しさん
07/11/30 23:09:28
>>833
自分で自分のアドレスにPostMessageする

836:デフォルトの名無しさん
07/11/30 23:10:48
>>834
MSDN嫁よ禿

837:デフォルトの名無しさん
07/11/30 23:14:37
>>836
英語だからミリだよ

838:デフォルトの名無しさん
07/11/30 23:19:22
たしかにな

839:デフォルトの名無しさん
07/11/30 23:28:12
>>837
英語勉強しろよ禿

840:デフォルトの名無しさん
07/11/30 23:31:14
「Windowsプログラミングの極意」あるいはThe Old New Thingで
いってたけど、今は、メモリ共有のために仕組みがある以外は、
ローカルヒープとあんましかわらない、みたい。

841:デフォルトの名無しさん
07/11/30 23:42:12
WinXP SP2だと、1Kから1バイトずつ伸ばしても全然失敗しないな……
フラグの指定がおかしいんじゃね?

ちなみに可変長のGlobalヒープが欲しい時は、
CreateStreamOnHGlobal + GetHGlobalFromStream がお勧めだ。

842:デフォルトの名無しさん
07/11/30 23:43:23
16KBのメモリチャンク云々って話をどっかで見た気がするが忘れた。

843:デフォルトの名無しさん
07/12/01 00:08:13
同じくWinXP SP2、初期サイズ1KB、増加サイズ1KBずつだと4KBで失敗。GetLastErrorは8。
増加サイズが変わると失敗するサイズも変わる。法則は謎。
GMEM_MOVEABLEすればもちろん失敗しないけど。

844:デフォルトの名無しさん
07/12/01 00:28:01
ちょっとコード晒せ

845:デフォルトの名無しさん
07/12/01 00:47:55
>>816
ゲンミツに言うとCreateWindowEx呼んでるだけだったような気もするけど

846:デフォルトの名無しさん
07/12/01 00:56:31
HeapAlloc/HeapReAllocだとどうなる?

847:デフォルトの名無しさん
07/12/01 01:38:24
>>845
手元のWin16APIヘルプだと
CreateWindow(2.x)
CreateWindowEx(3.0)
って書いてあった。

848:デフォルトの名無しさん
07/12/01 02:33:48
取り込んだ画像を任意の角度に回転させるAPIってありますか?

849:デフォルトの名無しさん
07/12/01 03:11:05
GDI+

850:デフォルトの名無しさん
07/12/01 06:48:51
>>813
NTの最初のバージョンは3.1だが?
NTじゃないWindows 1.0がマルチスレッドやUnicodeに対応しているわけないし

851:デフォルトの名無しさん
07/12/01 10:12:50
GlobalReAllocで固定メモリの領域拡大に失敗するのか
まさか単に断片化しているだけというオチじゃなかろうな

852:デフォルトの名無しさん
07/12/01 10:13:53
また随分とバックパスなw

>>850
>>813は1.0時代のAPIだって今はUnicode版があるって言ってる
当たり前といえば当たり前

853:デフォルトの名無しさん
07/12/01 10:27:48
GlobalAlloc懐かしいな。

854:デフォルトの名無しさん
07/12/01 11:37:40
>>851
それが原因な気がするけどなー
toolhlpとかプロセスメモリエディタで覗いてみたら良いんでは

855:デフォルトの名無しさん
07/12/01 11:50:50
そもそもGlobalAllocなんてクリップボードとOLEドラッグ以外に使うべきでは無い
どうせ猫でも見て変な知識付けたのだろうが

856:デフォルトの名無しさん
07/12/01 12:16:36
HeapAlloc(malloc)か、サイズが数MB超えるならVirtualAlloc使えよ。



857:デフォルトの名無しさん
07/12/01 13:06:37
そういう話は>>836で終わってる。

858:デフォルトの名無しさん
07/12/01 13:35:10
英語が読めないので>>837で再開

859:デフォルトの名無しさん
07/12/01 15:22:23
1.xの遺物 AnyPopup();

860:デフォルトの名無しさん
07/12/01 15:33:01
WS_CHILDで子コントロールとして貼り付けられたダイアログって
親ウインドウが破棄されると自動的に破棄されますよね?

861:デフォルトの名無しさん
07/12/01 15:49:13
いいえ

862:デフォルトの名無しさん
07/12/01 15:51:44
DestroyWindowの解説に書いてある

863:デフォルトの名無しさん
07/12/01 15:53:45
はい

864:デフォルトの名無しさん
07/12/01 16:07:53
>>852
そりゃWin32で代わりがないAPIについてだろ。
_lcreatとかOpenFileとかにUnicode版はない

865:デフォルトの名無しさん
07/12/01 18:27:11
PIDLがデスクトップを指してるかどうかって、
ILGetSizeを使って2byteかどうかで判定していい?

866:デフォルトの名無しさん
07/12/01 18:45:29
>>865
SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP) + ILIsEqual()で判断するのが安牌

867:デフォルトの名無しさん
07/12/01 19:36:01
CreatePrivateObjectSecurityWithMultipleInheritance
nagasugi warota

868:デフォルトの名無しさん
07/12/01 20:19:00
>>866
ども。そうだよね

869:834
07/12/01 21:48:40
こんなに大勢が答えてくれるなんてありがてぇありがてぇ

コードはこうなってるが、素人なんで汚いだろうけど
#define CHUNK_SIZE 1024
bySrc = GlobalAlloc(GPTR, 1);
iCount = 0;
dwTotal = 0;
do{
ZeroMemory(byTemp, CHUNK_SIZE + 1);
if(InternetReadFile(hUrl, byTemp, CHUNK_SIZE, &dwRead) == FALSE){ //失敗したら
  MessageBox(hwnd, TEXT("読み込みに失敗しました。"), TEXT("InternetReadFile Failure"), MB_OK | MB_ICONWARNING);
return -1;
}
dwTotal += dwRead;
bySrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE);
if(bySrc == NULL){
wsprintf(szBuffer, TEXT("%d 回目の読み込みで、計%dByte(新たに%dByte)の確保に失敗しました。"), iCount + 1, dwTotal, dwRead);
MessageBox(hwnd, szBuffer, TEXT("GlobaReAlloc Failure"), MB_OK | MB_ICONWARNING);

GlobalFree(bySrc);
return -1;
}

memcpy(bySrc + (CHUNK_SIZE * iCount), byTemp, dwRead);
iCount++;
}while(dwRead);

で、そのまま強制終了になったり、運がよければ「("20回目の読み込みで、計19984dByte(新たに1024Byte)の確保に失敗しました。」みたいな感じのエラーが表示される
なんでかわからん



870:デフォルトの名無しさん
07/12/01 21:57:04
>bySrc + (CHUNK_SIZE * iCount)

とりあえずこれがだめなんじゃない?
毎回CHUNK_SIZEずつ読めてるとは限らないんだし

871:デフォルトの名無しさん
07/12/01 22:12:30
>>869
だからそういう目的ならmalloc/realloc使えと言ってるだろうが

872:デフォルトの名無しさん
07/12/01 22:21:29
>>869
>bySrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE);
同じ変数で結果を受け取ると、NULLが返ってきたときに元の領域を解放する手段が
なくなってしまってメモリリークする。reallocを使った場合も同様なので注意。

873:デフォルトの名無しさん
07/12/01 22:46:57
>>870
もろにセキュリティホールだよね。

874:デフォルトの名無しさん
07/12/01 23:14:54
> ZeroMemory(byTemp, CHUNK_SIZE + 1);
これは大丈夫なのか?byTempの宣言が書いてないから分からんが

875:デフォルトの名無しさん
07/12/02 00:01:49
            祝

 ☆ 国 取 り 1 6 0 人 到 達 ☆ 



876:デフォルトの名無しさん
07/12/02 00:04:05
何?

877:デフォルトの名無しさん
07/12/02 01:15:57
桂蚕糸?

878:デフォルトの名無しさん
07/12/02 05:24:18
XNResourceEditorって境界線の無いダイアログ作れないのかな
ちゃんと設定してもどうしても境界線が残るんだが

879:834
07/12/02 07:46:48
おまいらなんでこんなに優しいん?
普段ボロクソ言われてるってのに(涙

一応宣言はこうなってる
BYTE byTemp[CHUNK_SIZE + 1];
static BYTE *bySrc;

それから >同じ変数で結果を受け取ると、NULLが返ってきたときに元の領域を解放する手段が
なくなってしまってメモリリークする の部分を改善してみた
bySrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE);
if(bySrc == NULL){
wsprintf(szBuffer, TEXT("%d 回目の読み込みで、計%dByte(新たに%dByte)の確保に失敗しました。"), iCount + 1, dwTotal, dwRead);
MessageBox(hwnd, szBuffer, TEXT("GlobaReAlloc Failure"), MB_OK | MB_ICONWARNING);

GlobalFree(bySrc);
bySrc = NULL;
return -1;
}

あと、>bySrc + (CHUNK_SIZE * iCount) の部分

memcpy(bySrc + dwTotal - dwRead, byTemp, dwRead);
としたら、すべてうまくいきました!!!!!!!!!!!!!!!うれしいっす!!!

芋くさいコードだけど、晒してよかった・・
ひとつ問題が解決すると、ほんとに気持ちがいいな
ありがとうな。お前ら



880:デフォルトの名無しさん
07/12/02 07:55:50
FillMemoryの4バイト版ってあったりしますか

881:デフォルトの名無しさん
07/12/02 08:16:45
>>879
>static BYTE *bySrc;
使い方から見てstaticで宣言する意味なくね?

>bySrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE);
改善されてないじゃん。こうだろ。
BYTE *byNewSrc;
byNewSrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE);
if (byNewSrc) {
bySrc = byNewSrc;
} else {
wsprintf.....略
}

882:デフォルトの名無しさん
07/12/02 09:21:06
>>880
無いです
そのくらい自分で書け

883:デフォルトの名無しさん
07/12/02 12:25:26
memset(buf,0,4);
FillMemory(buf,4,0);

884:デフォルトの名無しさん
07/12/02 12:58:49
それちゃうやろw

885:デフォルトの名無しさん
07/12/02 13:04:22
#if defined(RtlFillMemory)
#undef RtlFillMemory
EXTERN_C VOID WINAPI RtlFillMemory(
IN VOID UNALIGNED *Destination,
IN SIZE_T Length,
IN UCHAR Fill);
#endif
こうしておかないとダメってことか


886:デフォルトの名無しさん
07/12/02 15:03:34
>>880
rep stosd

887:デフォルトの名無しさん
07/12/02 17:24:48
教えてください。
自分自信のウィンドウハンドルを取得するには
FindWindowとEnumWindowを使わず取得する方法ってありますか?

888:デフォルトの名無しさん
07/12/02 17:26:54
自分自身のウィンドウハンドルは自分で作ったんだからわざわざ取得しなくても最初から知ってるはずでは

889:デフォルトの名無しさん
07/12/02 17:27:17
>>887
WM_CREATEで保存しとけ

890:887
07/12/02 18:41:21
>>888,889
そういうのではなくてDLLでロードされたタイミングでそのDLLが
マップされたプロセスのウィンドウハンドルを取得するという作りなので
WM_CREATEとかでは無理なのです。

GetCurrentProcessId+EnumWindowsで取得という手もあるんですけど
他にやり方がないのかなと思ってレスしてみました。
因みにGetForegroundWindow、FindWindow以外のやり方でお願いします。

891:デフォルトの名無しさん
07/12/02 18:42:04
ねーよ

892:デフォルトの名無しさん
07/12/02 18:44:21
質問です
このスレに女性はいますか?

893:デフォルトの名無しさん
07/12/02 18:50:17
>>890
ファイルマッピング

894:デフォルトの名無しさん
07/12/02 18:51:33
たまに書く程度の女性なら、います。

895:デフォルトの名無しさん
07/12/02 19:52:56
>>890
プロセスにウィンドウが複数存在したらどうする?

メインプログラムで「渡したいハンドル」を保管し、
DLLの初期化ロジックに渡した方が簡単だし、確実。


896:デフォルトの名無しさん
07/12/02 19:53:55
>>890
おれらエスパーじゃないんだから、前の書き込みで「DLLで」とかわかるわけないだろ?
あほかw


897:デフォルトの名無しさん
07/12/02 19:56:39
エスパーじゃない人には聞いていません

898:デフォルトの名無しさん
07/12/02 20:09:05
じゃあここで待ってるといいよ

エスパーが質問に答えるスレ
スレリンク(tech板)

899:デフォルトの名無しさん
07/12/02 21:30:18
ム板にもエスパースレあったのか

900:887
07/12/02 23:00:42
>>893
その線ちょっと調べてみる。

>>895
インジェクションなんでそれはちょっと無理ぽ

>>896
正直スマンカッタ

901:デフォルトの名無しさん
07/12/02 23:16:43
注入されたプロセスのすべてのスレッドにメッセージフック仕掛ければ、大抵のHWNDはもらえる
相手によってはがむしゃらな量(種類)のHWNDが飛んでくるけどな
ところでメインウィンドウって定義はあるのけ?

902:デフォルトの名無しさん
07/12/02 23:20:12
>ところでメインウィンドウって定義はあるのけ?
だれもそんなこと言ってねえよ orz 野球終わったし寝る

903:デフォルトの名無しさん
07/12/02 23:40:52
DLLインジェクションっていわゆるフックとかだろ?
対象ウィンドウ(ハンドル)が分かってない状態でのそれ、ってどういう設計なんだ?

904:デフォルトの名無しさん
07/12/02 23:51:26
>>896-898
ワロタwww

905:デフォルトの名無しさん
07/12/03 00:30:41
そんなに面白くはないとおもう

906:デフォルトの名無しさん
07/12/03 00:36:58
まあ笑いのツボは人それぞれだしな。

907:デフォルトの名無しさん
07/12/03 00:41:10
何が面白いのかさっぱり分からない

908:デフォルトの名無しさん
07/12/03 00:44:51
面白くないと思う

909:デフォルトの名無しさん
07/12/03 00:45:53
笑うなとは言わないよ。
ただ、あまりにも世間とずれているようなので、心配になっただけです。

910:デフォルトの名無しさん
07/12/03 00:59:14
それはお節介w

911:デフォルトの名無しさん
07/12/03 01:01:05
また笑ってる

912:デフォルトの名無しさん
07/12/03 01:39:13
掲示板とかでつまらんつまらんって連呼してる奴は
営業とか人付き合いの下手な人

913:デフォルトの名無しさん
07/12/03 01:41:23
???

914:デフォルトの名無しさん
07/12/03 03:04:46
>>912
私つまらんって連呼する人だけど、
このスレの主旨を考えると、正直別に笑いなんかいらんと思う。
というか害悪。

915:デフォルトの名無しさん
07/12/03 17:00:01
IDも出ない板で人に嫌われたって、
自分の一秒後の生活にすら何の影響も及ぼさないからな。

916:デフォルトの名無しさん
07/12/03 17:02:33
人に嫌われることに慣れてる人の意見だな

917:デフォルトの名無しさん
07/12/03 17:06:26
で  、  こ  の  ス  レ  と  何  の  関  係  が  ?

918:デフォルトの名無しさん
07/12/03 17:07:36
>>915
おまえをみなみけの千秋だと思って萌えてやろう

919:デフォルトの名無しさん
07/12/03 17:16:33
それは私が至らなかったねえ

920:デフォルトの名無しさん
07/12/03 18:37:51
スレ違いにもほどがある。






鮫の話しようぜ

921:デフォルトの名無しさん
07/12/03 19:18:01
>>920
前野乙

922:デフォルトの名無しさん
07/12/03 19:35:39
英単語一つでできてるAPI名ってSleepとGDIの描画関数いくつかの他にある?

923:デフォルトの名無しさん
07/12/03 19:40:01
Beep

924:デフォルトの名無しさん
07/12/03 20:15:18
BS_OWNERDRAWを使って外観を変えたいと思っているのですけど、
BS_RADIOBUTTONやBS_CHECKBOXと組み合わせて使えますか?

BS_OWNERDRAWを使って描画を独自に実装した場合は、
ラジオボタンやチェックボックスの動作も独自に実装しなければならないのでしょうか?

925:デフォルトの名無しさん
07/12/03 20:18:09
AUTOならかってにやってくれるんじゃない?

926:デフォルトの名無しさん
07/12/03 22:06:05
>>894
女性プログラマカッコヨス


927:デフォルトの名無しさん
07/12/03 22:07:04
>>924
BS_PUSHBUTTON~BS_OWNERDRAWは同時に一つしか指定できないから

>ラジオボタンやチェックボックスの動作も独自に実装しなければならないのでしょうか?
これが正解

928:デフォルトの名無しさん
07/12/04 00:28:49
ここにいる奴は良くも悪くも貪欲で物好きな奴ばかりだよな
仕事と割り切ってるマのほうが圧倒的。

929:デフォルトの名無しさん
07/12/04 00:36:45
HttpQueryInfoってどこから情報をとってくるの?
WEBページのサイズを取得しようとしてるんだけど、HTTP_QUERY_CONTENT_LENGTHつけてもテキストの部分のサイズしかとれない
0が返ってくるページも多いしね

930:デフォルトの名無しさん
07/12/04 03:51:59
HttpSendRequestしてないとかTransfar-Encodingがchunkedになってるかどちらか

レスポンスの大きさを知るものであってWeb上のファイルの大きさを知るものではない

931:デフォルトの名無しさん
07/12/04 09:55:47
そもそも画像データや外部スクリプト、外部スタイルシートはhtml解析して別途リクエストを投げる訳で‥‥

932:デフォルトの名無しさん
07/12/04 19:37:01
つか、仕事だとWin32はほとんどないような気がするんだが
Javaとかの案件のほうが圧倒的に多くないか?


933:デフォルトの名無しさん
07/12/04 19:41:46
当たり前じゃん。

934:デフォルトの名無しさん
07/12/04 19:53:43
SetLayeredWindowAttributesで半透明にしたウインドウを別のウインドウの上に置いて、
その上でマウスを動かすとものすごくカクカクするんですが、
考えられる原因は何でしょうか?

935:デフォルトの名無しさん
07/12/04 20:02:30
>>934
1.PCがしょぼい

936:デフォルトの名無しさん
07/12/04 20:04:51
>>935
半透明ではない可視ウインドウにするとカクカクしないんですよ。

937:デフォルトの名無しさん
07/12/04 20:11:22
半透明は処理時間食いまくりんぐwwwwwww

938:デフォルトの名無しさん
07/12/04 20:19:41
特にWindows2000は無茶遅い

939:デフォルトの名無しさん
07/12/04 20:23:43
ソフトウェアカーソルだとそんなことなりそうだな
今時オンボでもそんなのあるのか怪しいけど

940:デフォルトの名無しさん
07/12/04 20:27:01
>>934
ちなみにスペックは?

941:デフォルトの名無しさん
07/12/04 21:01:10
>>940
CPU: PentiumD920
MEM: DDR2 2GB
Graphic: Radeon7400HD
です。

942:デフォルトの名無しさん
07/12/04 21:33:30
>>941
>>935でFA

943:デフォルトの名無しさん
07/12/04 21:40:50
マウスの影が半透明だから、
半透明に半透明を重ねようとして
大変な話になったとか?

944:デフォルトの名無しさん
07/12/04 21:45:46
初心者すぎる質問ですが、Win32API で作ったアプリケーションは、
Windowsでしか動かないのですか?

945:デフォルトの名無しさん
07/12/04 21:50:12
WindowsCEでも動かない
Lindowsなら動くかもしれない


946:デフォルトの名無しさん
07/12/04 22:00:45
>>945
ありがとうございました。

947:デフォルトの名無しさん
07/12/04 22:05:34
スプライト処理をしたいのですが画像の枚数が多いので
動的にマスクを作ったりBitBltを多用したりで力業状態なんですが
もっと効率よく画像を重ねていく方法はありますか?

948:デフォルトの名無しさん
07/12/04 22:07:57
DirectDraw
DirectGraphic

949:デフォルトの名無しさん
07/12/04 23:02:42
directXですか
これ以上はすれちになりそうなので初心者スレ行ってきます

ありがとうございました

950:デフォルトの名無しさん
07/12/04 23:33:53
Windows と C++ Windows Template Library 8.0
URLリンク(msdn.microsoft.com)

まあGUIプログラミングとか一切しないわけだが

951:デフォルトの名無しさん
07/12/04 23:48:56
>>950
スレ違い

ATL/WTL Part5
スレリンク(tech板)

952:デフォルトの名無しさん
07/12/05 01:01:55
>>945
リンドウス?ってリナクスにウインドウズっぽいGUIかぶせたライブドアが絡んでたOSだっけ?
Win32APIと互換性あるのかあれ

953:デフォルトの名無しさん
07/12/05 01:05:33
というか、キモはWINEじゃねーの。

954:デフォルトの名無しさん
07/12/05 02:23:49
AlphaBlend関数(だけ?)を除いて、GDIには32bppのαチャンネルなんていう概念はないですか?

955:デフォルトの名無しさん
07/12/05 03:39:43
レイヤーウィンドウ作る時もアルファチャンネルあるし、XP以上だとアルファチャンネルつきアイコンも出てくる。
というか、質問の意味がわからない。

956:デフォルトの名無しさん
07/12/05 03:41:04
BITMAPV4HEADER::bV4AlphaMask

957:デフォルトの名無しさん
07/12/05 03:51:00
AlphaBlendていう関数がありますがなにか

958:デフォルトの名無しさん
07/12/05 04:58:37
>>957
人の話を聞けとよく言われるだろ

959:デフォルトの名無しさん
07/12/05 08:03:21
>>957-958
warota(bo-yomi

960:shinnichi
07/12/05 11:18:58
winsockで1対多のチャットプログラムを作ろうとしているのですが、上手くいかず困っています。
とりあえず以下のプログラムを作成して実験してみたのですが、

struct sockaddr_in addr1,addr2;
struct sockaddr_in client1,client2;
int len;
SOCKET sock1,sock2;

// 1
sock1 = socket( AF_INET , SOCK_STREAM , 0 );
addr1.sin_family = AF_INET;
addr1.sin_port = htons( 12345 );
addr1.sin_addr.S_un.S_addr = INADDR_ANY;
bind( sock1 , ( struct sockaddr * )&addr1 , sizeof( addr1 ) );
listen( sock1 , 1 );
len = sizeof( client1 );
sock1 = accept( sock1 , ( struct sockaddr * )&client1 , &len );

// 2
sock2 = socket( AF_INET , SOCK_STREAM , 0 );
addr2.sin_family = AF_INET;
addr2.sin_port = htons( 12345 );
addr2.sin_addr.S_un.S_addr = INADDR_ANY;
bind( sock2 , ( struct sockaddr * )&addr2 , sizeof( addr2 ) );
listen( sock2 , 1 );
len = sizeof( client2 );
sock2 = accept( sock2 , ( struct sockaddr * )&client2 , &len );

// 1 のときにはacceptで待機し、クライアントからコネクションすると接続され // 2 が実行されるのですが、// 2のacceptでは待機してくれません(クライアントからコネクションしなくても流れていってしまう)。
理由が分からず困っています。
どなたか解る人がいましたらご教授願います。


961:デフォルトの名無しさん
07/12/05 11:22:05
戻り値でどこでどんなエラーが出てるか調べてみ?

962:デフォルトの名無しさん
07/12/05 11:22:35
listenポート同じだからじゃ・・

963:デフォルトの名無しさん
07/12/05 11:23:55
>>960
エラーコードを確認しましょう。つーか、Winsockはネットワークプログラミングスレのほうが無難じゃないかな?
# 尤も、基礎を勉強してから出直せって言われそうではあるが。

964:shinnichi
07/12/05 11:35:22
回答有難うございます。
戻り値ではINVALID_SOCKETが返ってきています。
なぜだかわかりませんか?

965:デフォルトの名無しさん
07/12/05 11:38:45
最後だけチェックしてる?
エラーはもっと前で起きてるんじゃない?

966:shinnichi
07/12/05 11:54:13
回答有難うございます。
エラーですがbindのところで起きていました。
>>962の指摘どおりポートが同じだからエラーが起きていると思われます。
エラーの原因わかりましたので、あとは、色々試してみようと思います。
ご意見有難うございました。

967:デフォルトの名無しさん
07/12/05 12:12:07
内容はスレ違いだけど平和でよかた

968:デフォルトの名無しさん
07/12/05 12:21:57
winsockはWin32APIの一部だと思うが

969:デフォルトの名無しさん
07/12/05 12:23:52
>>968
>963はより適切なスレに誘導しただけだ。一部であることを否定しているわけではない。

970:デフォルトの名無しさん
07/12/05 12:25:05
いや、>>967に対しての話でしょ

971:デフォルトの名無しさん
07/12/05 14:34:36
→↓↘+P

972:デフォルトの名無しさん
07/12/05 14:52:25
しょぉ~~(ry

973:デフォルトの名無しさん
07/12/05 15:04:55
vc++が初めてむかついたとき:
#define WIN32_LEAN_AND_MEANがなんでデフォでテンプレにはいってんだよ!!
これのせいで3時間なやんじまったじゃねーか!!!!

974:デフォルトの名無しさん
07/12/05 17:33:45
WIN32_LEAN_AND_MEANって何を省略してるんだぜメーン?

975:デフォルトの名無しさん
07/12/05 17:39:11
>>974
PNOTIFYICONDATA

976:デフォルトの名無しさん
07/12/05 18:44:47
>>974
windows.hをWIN32_LEAN_AND_MEANで検索すれば分かる事を聞くな低脳

977:デフォルトの名無しさん
07/12/05 18:56:38
IEコンポーネントで簡単なブラウザを作ったのですが、ブラウザ側からHTMLに変化をもたせるような命令を実行した後、
うまく変化が現れません。HTMLを表示しているウィンドウにマウスカーソルを当てた時に初めて変化が起こるのですが、
これを特にマウスをウィンドウ上で移動させる事なく変更を反映させるにはどうすればいいのでしょうか?

978:デフォルトの名無しさん
07/12/05 21:01:57
>>976
こういう人はなんかなぁ...

979:デフォルトの名無しさん
07/12/05 21:04:51
↓次スレよろ

980:デフォルトの名無しさん
07/12/06 01:13:47
書き順ソフトをつくりたいと思ってるんですが、TrueTypeフォントを序々になぞっていくようなことってどうやって実装すればいいんでしょう?
習字で筆がこう、字を書いていくような

981:デフォルトの名無しさん
07/12/06 01:24:41
質問ですが、
windows用の帯域制御ソフトの仕組みがどういう風になっているのか、
大まかに教えていただけませんか?

982:デフォルトの名無しさん
07/12/06 01:31:53
>>980
まず、書き順データを用意することから始めるんだ。 そしたら次はスレ立てだ。

983:デフォルトの名無しさん
07/12/06 02:15:48
>>982
立てただよ

TrueTypeってどの線をどういう順番で描くのか情報持ってないの?

984:デフォルトの名無しさん
07/12/06 02:18:05
>>983
氏ね

985:デフォルトの名無しさん
07/12/06 02:40:51
「上書きしますか?」とか「終了しますか?」とかの、よく使う文章のメッセージボックスを表示させるAPIはあるんですか?
いくつかの外国製の英語のソフトウェアでは、そこだけ日本語で出てくるので、気になりました。

986:デフォルトの名無しさん
07/12/06 03:12:36
ファイル移動にShellのAPI使ってるんじゃね?
終了しますか?はしらね

987:デフォルトの名無しさん
07/12/06 03:53:29
ウィンドウハンドルからそのウィンドウを所有しているプロセスのフルパスを取得するには、
どのようなAPIを使えば良いでしょうか?

988:デフォルトの名無しさん
07/12/06 03:56:24
>>985
MFCだよ

989:デフォルトの名無しさん
07/12/06 06:26:56
>>987
GetModuleFileNameではダメ?

990:デフォルトの名無しさん
07/12/06 10:08:30
バックアップは・・・昨日の・・・朝9時か・・・
はぁ・・・

991:デフォルトの名無しさん
07/12/06 10:09:43
誤爆↑

992:デフォルトの名無しさん
07/12/06 10:29:34
GetWindowModuleFileName かな

993:デフォルトの名無しさん
07/12/06 14:59:43
     ____
   /__.))ノヽ
   .|ミ.l _  ._ i.)
  (^'ミ/.´・ .〈・ リ  
  .しi   r、_) |   この子もわしJAPAN入りや。わしが育てたる
    |  `ニニ' /   
   ノ `ー―i´

994:デフォルトの名無しさん
07/12/06 15:39:13
>>989
>>992

レスありがとうです

家に帰ったら試して見ます

995:デフォルトの名無しさん
07/12/06 17:53:57


996:デフォルトの名無しさん
07/12/06 17:54:00


997:デフォルトの名無しさん
07/12/06 17:54:02


998:デフォルトの名無しさん
07/12/06 17:54:05


999:デフォルトの名無しさん
07/12/06 17:54:08


1000:デフォルトの名無しさん
07/12/06 17:54:23
なんですと?!

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch