Win32API質問箱 Build ..
[2ch|▼Menu]
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

4231日前に更新/231 KB
担当:undef