毎日つけれるように頑張る
3 :
デフォルトの名無しさん:2006/10/12(木) 00:40:50
うんこ
抽出しやすいようにトリップつけた。
WH_GETMESSAGEでのフックで足掻いてみたけど
投げられたコントロールがどれかわからない事に気づいて諦めた。
今日のメモ
/* LPARAMに追加文字列 */
SendMessage(HWND, CB_ADDSTIRNG, 0L, String);
/* 戻り値がインデックスになる */
SendMessage(HWND, CB_GETCURSEL, 0L, 0L);
/* LPARAMにアイテムのインデックスを */
SendMessage(HWND, CB_SETCURSEL, 0L, index);
/* WPARAMにインデックスをLPARAMに格納文字列バッファを */
SendMessage(HWND, CB_GETLBTEXT, index, strBuffer);
/* ハンドルを指定するだけ */
SendMessage(HWND, CB_RESETCONTENT, 0L, 0L);
5 :
1 ◇ndPRHgSmvk:2006/10/12(木) 00:46:53
r;ァ'N;:::::::::::::,ィ/ >::::::::::ヽ
. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チラシの裏にでも書いてろ
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
いやいや、自分で立てたスレぐらいメモ帳代わりにさせてくれよぉ
そういや前に同じようなスレがあったな
たしかぺゾルト読んでます、みたいなスレ
定期的に立つ話題なのかね
9 :
デフォルトの名無しさん:2006/10/12(木) 23:36:02
今日の収穫
VOID SelectDuduction(LTG_HWND hControl)
{
CHAR chSort[3][256];
LRESULT index;
SHORT i, j;
/* コンボボックスリセット */
for(i = 0; i < 3; i++)
{
index = SendMessage(hControl->hSort[i], CB_GETCURSEL, 0L, 0L);
SendMessage(hControl->hSort[i], CB_GETLBTEXT, (WPARAM)index, (LPARAM)&chSort[i][0]);
SendMessage(hControl->hSort[i], CB_RESETCONTENT, 0L, 0L);
SendMessage(hControl->hSort[i], CB_ADDSTRING, 0L, (LPARAM)g_SortPull[0]);
}
/* コンボボックス再セット */
for(i = 0; i < 3; i++)
{
switch(i)
{
case 0:
for(j = 1; j < DFSORT_VAL; j++)
{
if(lstrcmp(g_SortPull[j], &chSort[1][0]) != 0 &&
lstrcmp(g_SortPull[j], &chSort[2][0]) != 0)
{
SendMessage(hControl->hSort[i], CB_ADDSTRING, 0L, (LPARAM)g_SortPull[j]);
}
}
break;
case 1:
for(j = 1; j < DFSORT_VAL; j++)
{
if(lstrcmp(g_SortPull[j], &chSort[0][0]) != 0 &&
lstrcmp(g_SortPull[j], &chSort[2][0]) != 0)
{
SendMessage(hControl->hSort[i], CB_ADDSTRING, 0L, (LPARAM)g_SortPull[j]);
}
}
break;
case 2:
for(j = 1; j < DFSORT_VAL; j++)
{
if(lstrcmp(g_SortPull[j], &chSort[0][0]) != 0 &&
lstrcmp(g_SortPull[j], &chSort[1][0]) != 0)
{
SendMessage(hControl->hSort[i], CB_ADDSTRING, 0L, (LPARAM)g_SortPull[j]);
}
}
break;
default:;
}
/* 選択文字列インデックス検索 */
index = SendMessage(hControl->hSort[i], CB_FINDSTRING, 0L, (LPARAM)&chSort[i][0]);
/* プルダウン項目セット */
SendMessage(hControl->hSort[i], CB_SETCURSEL, (WPARAM)index, 0L);
}
return;
}
の超下手糞なコードを何とかしようと必死になって
VOID SelectDuduction(LTG_HWND hControl)
{
CHAR chSort[3][256]; /* プルダウン選択項目一時格納バッファ */
LRESULT index; /* 選択項目インデックス */
SHORT i, j; /* ループカウンタ */
SHORT n, m; /* 配列の要素数 */
/* 初期化 */
n = 1;
m = 2;
/* コンボボックスリセット */
for(i = 0; i < DFLOOP_VAL; i++)
{
/* 選択されている項目のインデックスを取得 */
index = SendMessage(hControl->hSort[i], CB_GETCURSEL, 0L, 0L);
/* 選択されているプルダウンテキストをバッファに一時確保 */
SendMessage(hControl->hSort[i], CB_GETLBTEXT, (WPARAM)index, (LPARAM)&chSort[i][0]);
/* プルダウンオールリセット */
SendMessage(hControl->hSort[i], CB_RESETCONTENT, 0L, 0L);
/* 最初に"無し"だけプルダウンに追加 */
SendMessage(hControl->hSort[i], CB_ADDSTRING, 0L, (LPARAM)g_SortPull[0]);
}
/* コンボボックス再セット */
for(i = 0; i < DFLOOP_VAL; i++)
{
for(j = 1; j < DFSORT_VAL; j++)
{
/* n & iとm & iの意味は iの値とn、mの値が競合していた場合0になる */
if(lstrcmp(g_SortPull[j], &chSort[n & i ? 0 : n][0]) != 0 &&
lstrcmp(g_SortPull[j], &chSort[m & i ? 0 : m][0]) != 0)
{
/* j番目の項目をi番目のプルダウンリストに挿入 */
SendMessage(hControl->hSort[i], CB_ADDSTRING, 0L, (LPARAM)g_SortPull[j]);
}
}
/* 選択文字列インデックス検索 */
index = SendMessage(hControl->hSort[i], CB_FINDSTRING, 0L, (LPARAM)&chSort[i][0]);
/* プルダウン項目セット */
SendMessage(hControl->hSort[i], CB_SETCURSEL, (WPARAM)index, 0L);
}
}
少しだけスマートにする事に成功し喜びまくってた。
論理演算って魔術的な世界だなぁやっぱり。
因みのODBCAPIつかってDBにアクセスかけようとしてるけど
ODBCのサンプルってそんなに落ちてないから手探り状態。
まだまだ時間がかかりそうだ
自分のレスしか見えないようにフィルタリングしてるだろうから、もう何を言っても無視だろ。
無駄スペースを使わせたくないなら、議論のためのスレでないことは本人も宣言しているし、それを理由に削除依頼出すくらいだ。
>>20 残念ながらそんなフィルタリングはしてないんだよ明智君
言いたい事や質問があるならなんなりと。
答えるところは答えてあげるよ。
>>25 じゃあ質問!
なんでスレをチラ裏代わりにしてるんですか?
ローカルでWikiでも動かした方がいいんじゃないの?
Wikiなんて難しいものを動かしようがないから
レンタルのwikiなんていくらでも・・・
32 :
デフォルトの名無しさん:2006/10/13(金) 01:33:25
>>32 その通りでもある
人間打たれた数だけ成長するってどこかの誰かが言ってた気がする
さて、明日も仕事だからお前らもう寝ようぜ
35 :
デフォルトの名無しさん:2006/10/13(金) 03:13:36
と、永遠の眠りに就く1であった・・・
ただし屁は尻から出る
ODBC直接使うつもりなのか?
ODBCよりJDBCのほうが使いやすいよ
僕はwwwwwwww復活しまいたwwwwwwwwwww
41 :
1 ◆ndPRHgSmvk :2006/11/19(日) 19:47:41
ageておこうwwwwww
せめて上げるなよ……。
43 :
1 ◆ndPRHgSmvk :2006/11/22(水) 01:04:04
HANDLE hHeap;
LPSTR Buffer;
hHeap = GetProcessHeap;
Buffer = (LPSTR)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, size);
HeapFree(hHeap);
覚書
1000いってdat落ちしたらメモの内容はどうするんだい?
>>44 このスレが1000もいくわけねーだろ馬鹿があああああああああああ!
1000いかなくても落ちる時は落ちるんだが。
47 :
1 ◆ndPRHgSmvk :2006/11/23(木) 16:19:41
だから定期的に書き込むのさwwwwwwwwwww
48 :
デフォルトの名無しさん:2006/11/23(木) 16:27:32
ここ、バーボンにしてもいいですか?
49 :
1 ◆ndPRHgSmvk :2006/11/23(木) 16:57:32
やめてwwwwwwwwwくだwwwwwwwwwさいwwwwwwwwwwwww
マ板から飛ばされてきました><
おれのチラシ
ぬるぽ
ぽ?ぽめらにあん
あっ、んだorz
こういうスレは大事だよ
PC移行の際誤って全てのソースを削除してしまった
何年もかけて蓄積してきた全てのソースが
1からやり直しだぁ
>>55 何年にも渡ってバックアップを取っていない点と、
PC移行という重大なシステム変更に際してもバックアップがない点で、
十分起きることが予想されていた結果だ。
また、2ちゃんは個人のデータのバックアップスペースではない。
パブリックな領域に置きたいというのなら、
無料のwebスペースはいろいろあるんだから、それを使うのが筋。
57 :
1 ◆GqrOSDYjeQ :2007/01/14(日) 00:50:42
ちくしょう!!不覚にもコテハン忘れちまった
/* リストボックスのインデックス取得 */
SendMessage(ハンドル, LB_GETCURSEL, 0, 0L);
/* リストボックスの文字列取得 */
SendMessage(ハンドル, LB_GETTEXT, 対象インデックス, バッファのポインタ);
そしてお前ら。あけましてどんなもんじゃーい!!
リストボックスとか弄るならwindowsx.hのマクロ使えよ
59 :
1 ◆GqrOSDYjeQ :2007/01/15(月) 21:00:51
>>58 x.hは知ってるが俺は使わない派。人それぞれだろ
そんな事より聞いてくれよ
今朝電車の中でみた日能研の問題に答えがなくてさ
なんか「答えはwebで!」的な事が書いてあんの
ふざけんなよと
61 :
1 ◆GqrOSDYjeQ :2007/03/02(金) 00:56:54
こ・・・このままじゃ落ちてしまう!!!
62 :
1 ◆GqrOSDYjeQ :2007/03/26(月) 23:17:12
みんな上げてしまえ
63 :
デフォルトの名無しさん:2007/03/28(水) 03:43:03
1は何してんだ?
Win32SDKのおべんきょ?
64 :
1 ◆GqrOSDYjeQ :2007/03/28(水) 19:17:56
65 :
1 ◆GqrOSDYjeQ :2007/03/28(水) 19:18:30
僕に何でも質問してくれたまえ
67 :
1 ◆GqrOSDYjeQ :2007/03/29(木) 20:55:34
>>66 MFCは使わないね。基本的にWindowsSDKで窓ってる
68 :
デフォルトの名無しさん:2007/03/29(木) 22:24:56
何歳ですか?
69 :
1 ◆GqrOSDYjeQ :2007/03/29(木) 22:29:49
いくつに見える?
5才
15歳
72 :
1 ◆GqrOSDYjeQ :2007/03/29(木) 23:16:07
73 :
1 ◆GqrOSDYjeQ :2007/03/29(木) 23:17:04
そしてひけばいい
74 :
1 ◆GqrOSDYjeQ :2007/04/12(木) 21:37:22
仕事に最近疲れ気味だぜwwwwwwwwwwwwwwww
もう保守ばっかで開発できねーし転職しようかな
ほしゅっ♪
ってASPとかやってるん?windowsでじかにapi叩くような
仕事って少なそうだよね…なんとなく
76 :
1 ◆GqrOSDYjeQ :2007/04/13(金) 00:53:11
むしろMFCで皆開発してる
俺が唯一のWindowsSDKプログラミングできる奴だったりするし
それに皆俺のコード見て何の関数使ってるかわからないとか言うレベル
まあ逆に俺はMFCのクラスライブラリとかはあんましらないんだけどね
CFileとかCreateFile使えハゲがああああああとか思うたまに。
SDKも一長一短で開発効率はMFCの方がダントツにいいけどな
ただ、MFCはコアな事に対応できなかったりする。
CでSDK開発は、サンプルもあるし書物もそろっているから
そのままコピペすりゃいいんで、楽というか、あんまり勉強にならないよ。
勉強なら、C以外の言語で無理にSDK開発するといい。
といってもC以外でwindowsでネイテブコード吐けるのはDELPHIくらいだけど
なんかsdkで即効わかることばかりなんだが
79 :
1 ◆GqrOSDYjeQ :2007/04/15(日) 00:46:35
おまいらマルチでやる時_beginthread派?
それともCreateThread派?
因みに前提条件としてスレッド内部は全てAPI関数で記述する事の時を想定してる
80 :
1 ◆GqrOSDYjeQ :2007/04/15(日) 00:47:30
それともう一つ排他制御ではMutexでやるかCriticalSectionでやるのかも聞きたい
81 :
1 ◆GqrOSDYjeQ :2007/04/15(日) 00:50:55
因みに俺の場合
CreateThreadでやってる
排他制御はまともにやったことないからあれだけど
グローバルでのクリティカルセクション構造体使うよりOpenMutexでやったほうが
いいかもしれん。いやでも自動的に所有権が回ってくるまで待機してくれる
CriticalSectionのほうがいいかも。しるかボケwwwwwwwwwwwwwwwwww
83 :
1 ◆GqrOSDYjeQ :2007/04/19(木) 20:41:03
しばらくまったが俺のレベルに誰も付いて来れないみたいだぜwwwwwwww
自分はマルチスレッドを使わない派かな。
処理が2つ重なるような物はあまり作らないようにしているし、
必要な時は、自らコントロールして行ったり来たりさせる。
85 :
1 ◆GqrOSDYjeQ :2007/04/20(金) 22:01:21
>>84 だが、Sleepとか制御がしばらく戻らない処理とかでスレッド半殺しになると
メインウィンドウが固まるからなるだけ子スレッドに仕事任せた方がいい場合もある。
それ以外はシングルスレッドでいいと思うがね。
WNetAddConnection何か使って別端末の監視なんかする場合
端末死んでると中々制御戻ってこなかったりするし。
>>84 俺も昔はそういう考えだったけど、最近は積極的にマルチスレッドを使ってる。
方針を転向した理由としては次の二つ。
・近頃のコンピュータで時間がかかるのは主にファイルアクセスと通信
→別スレッドで処理するようにすればアプリがもっさりすることはない。
・近頃のCPUはマルチスレッドのほうが都合が効率よく動いてくれる。
特に前者の理由でシングルスレッドでやってた処理をマルチスレッドにすることで
劇的に処理速度を向上させることができた経験をしてからマルチスレッドを
積極的に使うようになった。
でも、なんだかんだでマルチスレッドにすればその分プログラムも複雑になるし
ヘマしちゃうと再現性の低い嫌なバグを生みやすくなるのも事実だけど。
87 :
84:2007/04/22(日) 00:09:09
例えば、今は将棋だと、コンピュータが読むとき、
タイマーを使ってメッセージを発生させて、
少し読んでOSに戻って、タイマーが発生したら
続きを少し読むみたいにしている。
OSに戻っている時に、読む以外の事、中断や終了処理をチェックする。
ウェイト関連はSleepは使わずに同じような感じで。
通信系はいろんな事をしないといけないから、
確かに自力で全てをやるのはしんどそう。
88 :
1 ◆GqrOSDYjeQ :2007/05/03(木) 22:23:10
ODBC使ってDBアクセスしようかと思ってるんだが俺にできるかなwwwwwwwwww
できるかな
じゃねぇよ
誰でもできるんだからやるんだよ
90 :
1 ◆GqrOSDYjeQ :2007/05/04(金) 00:53:11
>>79 _beginthreadex派はないですか
>>81 1プロセス内だけのことだったらなるべくクリティカルセクションにしている。
ミューテックスはカーネルオブジェクトだからコストが高くつくと聞いたもんで。
92 :
1 ◆GqrOSDYjeQ :2007/05/05(土) 01:15:18
>>91 ミューテックスはコスト高いのか。それは知らなかったな
ex系も_beginthreadと同じとして扱ってる。要はランタイム使うかAPI使うか
>>92 そして_beginthread使おうが_beginthreadex使おうが、
特殊なケースではやっぱりリークするのな。
マルチスレッド使うなら素直にDLL版のCRT使うべきだと思う。
>>91 そういう時こそメータード セクションですよ。
…いや、使ったことないんだけど。
95 :
1 ◆GqrOSDYjeQ :2007/05/10(木) 20:58:11
96 :
1 ◆GqrOSDYjeQ :2007/05/10(木) 21:04:25
因みに
>>95はテストプログラムなんだが実際バグが発覚したのは
SQLDecribeColとその後のSQLFetchの為の領域確保後の解放時。
pp = (char **)LocalAlloc(LPTR, sizeof(char*) * DF_ADDR_SIZE);
よーわからんがじゃないといけないとか?
98 :
1 ◆GqrOSDYjeQ :2007/05/10(木) 22:16:34
正解ポインタだから
8ビットCPUならいいんだが。
99 :
1 ◆GqrOSDYjeQ :2007/05/10(木) 22:19:18
これを発見した時、俺は自分をバカと思った同時に
この発見に狂喜乱舞していたwwwwww
なんか、味のあるスレだな…
101 :
1 ◆GqrOSDYjeQ :2007/05/15(火) 01:11:18
ODBC接続のDLL作ってみたんだが評価してみてくれ
会社にソースおいてきて今手元にないから明日公開するぜwwwwwwwww
了解
103 :
1 ◆GqrOSDYjeQ :2007/05/16(水) 00:55:40
やべえw
忘れてたwwwwwwwwwwwwwwwwwww
104 :
1 ◆GqrOSDYjeQ :2007/05/16(水) 00:56:44
もう寝るから明日な
何だこのスレ。記念カキコ
106 :
1 ◆GqrOSDYjeQ :2007/05/16(水) 01:08:34
俺の自演スレだ
107 :
1 ◆GqrOSDYjeQ :2007/05/16(水) 21:22:40
108 :
1 ◆GqrOSDYjeQ :2007/05/17(木) 00:12:04
誰も返事くれないwwwwwwwwwwwちょっと悲しいwwwwwwwwwww
109 :
1 ◆GqrOSDYjeQ :2007/05/17(木) 00:18:08
寝る
「読み方」 っ て な ん だ よ
ソースは悪くないんじゃネーの。
今時ODBCという根本の話を置けば。
113 :
1 ◆GqrOSDYjeQ :2007/05/17(木) 23:41:55
>>111 そこかよwwwwwwwwwwwww
>>112 今時のODBCについて教えてくれ。
手探りでの状態で作ったからコアな部分はわからん
114 :
1 ◆GqrOSDYjeQ :2007/06/04(月) 20:33:07
うおおおおおおおおおお
115 :
1 ◆GqrOSDYjeQ :2007/06/04(月) 20:43:18
!?
やっと書き込めたぜwwwwwwwwwwwwwww
これだから○○は規制がよくかかる。
ところで最近マルチスレッドに目覚めた俺は必死こいて勉強してるんだが
同期が想像以上に難しくて四苦八苦してる。
例えばスレッドAがとある関数内処理で変数に値を代入し、
その変数を別スレッドBに渡す。そのスレッドBは渡された
変数の値をエディットボックスやら(まあなんでもいいが)で
使用したりするんだが、使用する前にスレッドAが処理してる関数が
終了してしまうと渡した変数の値も破棄されてしまい結果的におかしな値に
なってしまうというシングルスレッドじゃ普通ありえない現象が起こってしまう。
結果的に変数を静的にして対処するかWaitForSingleObject辺りで対処するかなんだが
後者を使用するとスレッドにした恩恵が余り得られないので結果的に静的変数に
してるんだが、他に対処法とかないのか誰か教えてくれwwwwwwwwww
よび出し側でnewして、呼び出された側でdeleteすれば。
117 :
1 ◆GqrOSDYjeQ :2007/06/04(月) 20:52:06
>>116 動的確保でいけるか?
関数内のみでの変数って関数抜けるとスタックやらなんやら
低レベルなことは詳しくないが、その時点で破棄されるんじゃなかったっけ
正直そこまで俺様詳しくないんだwwwwwwwww
118 :
1 ◆GqrOSDYjeQ :2007/06/04(月) 20:54:01
あー、動的だと新しくアドレス確保するから解放するまで残るんだっけか
どうせ書くならDFSORT_VALとか定数使わないで、関数の形でおいたほうが
後々役に立つんじゃね?
基本的にマルチスレッドでも、リソース一つだけならそのまま処理していい。
だから、ポインタもセマファ代わりに使う事が出来る。
静的に確保したポインタ変数がヌルかどうかを利用すればいい。
タスクAでメモリを確保して、確保した結果にデータを用意した後
最後にポインタがヌルなら書き込む
タスクBでは処理が終わったらポインタを見て、ヌルポインタで無ければポインタを読み
処理して、最後にFreeした後、ヌルを書き込む
これで2つはうまく協調出来る
121 :
1 ◆GqrOSDYjeQ :2007/06/05(火) 21:09:02
>>120 タスクAはB処理でポインタをNULLにするまで待機って事か?
待機してもいいし、この回のデータを捨ててもいい。
123 :
1 ◆GqrOSDYjeQ :2007/06/05(火) 23:56:25
>>122 まて、それで言うとメモリじゃなくてイベント使った方がよくないか?
それらのタスクの仲介するタスクをあらかじめ作るようにしてそいつをサーバーにして
タスクA,Bをクライアントにするようなクライアントサーバーモデルにすればどうでしょう?
でスレッド間を横断するようなオブジェクトはサーバー経由でアクセスするようにすれば
ちょっとは考える問題減るかもしれない
125 :
1 ◆GqrOSDYjeQ :2007/06/06(水) 00:10:34
>>124 貴様!この俺様にそんな技術があると思うのかこのクソ野郎が!!!!!!!
>>123 他に処理すべき事が無ければイベントにすればいい。
AがBの為のデータを作る以外にもやる仕事があるならそっちをさせればいい
127 :
1 ◆GqrOSDYjeQ :2007/06/13(水) 21:30:44
俺って最近学ぶ事がなくなったんだよな強すぎて
128 :
1 ◆GqrOSDYjeQ :2007/06/18(月) 21:12:31
今日食堂での事。
午前中とあるロジックのやり方で頭を抱えて悩みながら
一つのやり方を考案した。もっといいやり方はないかなと思い昼休みに
食堂で会社の同僚や後輩達に話を振ってみたんだ。
愕然とした。彼らは俺の話をロクに聞かずに小バカにしたような批判を言ってきた。
いや、批判が悪いわけじゃないし悪いところを指摘してくれるのは全然構わない。
問題は俺の話をまともに聞ききもせず「簡単じゃないか。ループでまわせばいいだろ」
と一言言ってきた。ループでまわせばできるとかそんな基本的な事はとっくの昔にわかってる
俺がいいたいのは処理の最適化だ。式一つでできるならループでまわすよりそっちの方が
断然早いし実際速度が重要だと思った箇所だからこそ、そういうロジックを考えてたわけで
だけど彼らは腐ったような目でニヤニヤしながら軽く俺の話をあしらってた。
昔からの知り合いは「自分で考えもせず人に答えを求めるなよw」とか言う始末。
俺はただ参考として他人の意見を聞きたかっただけなのにな。正直技術者として寂しかった。
技術者って言うのはこうやって他人を批判しながら腐っていくんだなと何となく思ってしまった。
批判されるのはやはり恥ずかしいが聞く事の恥なんて1年目で散々かいたし、だからこそ今の
自分がいるわけで、俺は今日のことを心に刻む。腐らないために向上心は絶対捨ててたまるか。
それにしてもニートだった知り合いに今の職場紹介してやったんだが、少し後悔してる。
なまじ俺がいるから周りに溶け込みやすかったんだろう。それが仇を成したか知らんが
今日のあのニヤケ顔と目を見て思わず「ああ、お前もか・・・」と思ってしまった。
後はあいつ次第何だが友人としてこれ以上酷くならない事を祈るw
129 :
デフォルトの名無しさん:2007/06/19(火) 12:52:19
どうした?
130 :
ひろみつ:2007/06/19(火) 13:38:54
気にするな。俺もにーとだ。そんな職場に派遣されないように慎重に仕事をえらんでいる
ということにして、サボっている。
131 :
1 ◆GqrOSDYjeQ :2007/06/22(金) 02:15:39
俺様最近コミュニケーション能力の重要さに気がついたwwwwwwwwwww
どうやったらコミュニケーション能力上がるのかなwwwwwwwwwwwwww
ビリーズブートキャンプやれば上がるよ
133 :
デフォルトの名無しさん:2007/06/22(金) 08:43:38
>>128 逆に向こうはお前を仕事以外の時間に仕事の話を振るなんて空気読めない奴と思っているかもしれないぞ
135 :
1 ◆GqrOSDYjeQ :2007/06/24(日) 10:44:35
>>134 悪いが俺的にプログラムのロジックの事に関しては”仕事”ではなく”趣味”だから。
たまたま仕事も同じような事をしてるだけ。
まあ、プログラム好きな奴じゃないと理解できないだろうけどなwwwwwwwwwwww
全くだ
そういうやつと一緒に仕事をしていることを嘆くしかないよ
137 :
デフォルトの名無しさん:2007/06/24(日) 17:15:03
一般にまじわれない俺最強っていう感じがただよってる
仕事≒趣味とかいうのはかなり特殊だよ
プログラマってそういうの多いから仲間はすぐみつかるとおもうよ
1はGoogleとか冒険企業むきなのかな〜とおもったりする
138 :
デフォルトの名無しさん:2007/06/24(日) 17:18:44
139 :
デフォルトの名無しさん:2007/06/25(月) 08:03:54
1は俺最強厨?
140 :
デフォルトの名無しさん:2007/06/25(月) 08:13:21
SetWindowHookExでとれるHHOOKをとりなおすGetWindowsHookExみたいなのってないですか。
スレッド自身が自分にどんなフックがかかっているのか知りたいんです。
あればAPI名のヒントください。
141 :
デフォルトの名無しさん:2007/06/25(月) 08:28:23
140です。
ごめん、まちがえてしまいました。
無視してください。
142 :
1 ◆GqrOSDYjeQ :2007/06/26(火) 01:53:38
>>140 APIフック使ってSetWindowHookEx自体を自作Hook_SetWindowHookExで別にHHOOK格納すればいけるんじゃね?
143 :
1 ◆GqrOSDYjeQ :2007/06/26(火) 01:58:31
144 :
1 ◆GqrOSDYjeQ :2007/06/26(火) 02:02:50
違うなCallNextHookExをAPIフックしたほうがいい
145 :
デフォルトの名無しさん:2007/06/26(火) 08:26:18
わざわざ回答してくれるなんてありがとう。
>>142のほうほうだとすでにかかっているフックがとれなくて悩んでました。
>>144の方法だとCallNextHookExを呼び出さないタイプのフックがある場合に捕まえられないんですよね。
146 :
1 ◆GqrOSDYjeQ :2007/06/26(火) 23:44:04
147 :
1 ◆GqrOSDYjeQ :2007/06/26(火) 23:48:40
その前にフックプロシージャを使用しないフックのやり方って他に何があるんだ?
148 :
1 ◆GqrOSDYjeQ :2007/06/26(火) 23:52:06
>>145 お前さんも質問箱の住民か307だろwwwwwwwwww
149 :
デフォルトの名無しさん:2007/06/27(水) 08:46:21
そうです。双方とも正解です。
間違えてこちらに書いてしまったのですが、解答してくれてありがとうございました。
150 :
1 ◆GqrOSDYjeQ :2007/07/04(水) 01:09:37
仕事でVB始めた俺様は必死に勉強しているwwwwwwwww
覚えた機能メモ書き
Val
文字列を数値に変えてくれるという稀代の名作
Mid
文字列をある特定の位置から取り出してくれるというC言語を馬鹿にした仕様
Format
sprintfで十分だろ猿がああああああああああ
EOF
引数にファイルインデックス指定してファイルが終端かどうか判定するらしい
EOFがまるでゴミのようだ
FreeFile
ファイルインデックス(ファイルハンドル的なもの?)を返してくれるらしい1から511までだっけか。
App.Path
自モジュールのパスらしい。便利な世の中になったもんだね
Open
ファイルパスとファイルインデックスと後色々パラメータあった気がするようなしないような
DateSerial
DateをVariant型にする?詳しくは知らん
DateAdd
日付の計算をしてくれる舐めた機能
151 :
1 ◆GqrOSDYjeQ :2007/07/09(月) 20:53:52
クソSQLを解析して挫折
解析なんてしない方が吉。黙って飲み込め、って感じ
153 :
1 ◆GqrOSDYjeQ :2007/08/05(日) 22:09:57
VBマスター俺
おめ
アイドルマスター俺
age俺
157 :
デフォルトの名無しさん:2007/10/25(木) 03:41:30
保守
>>152 1じゃないけど実装の解析というのも悪くない。
SQLの例であればDBがただのデータ列、インデックスがB木だったりと
中身の実体が判ってくると、それぞれが何の為に存在してるかも判ってくる。
「DBの検索速度を上げるためにインデクス(索引)を設定します」
なんていわれても、それがなんで検索速度に影響するのか理屈の
説明になってないし、なんでインデクスが大切なのかも判らない。
「データ列の検索速度を上げるためにB木に写像します」
の方が判りやすいかもしれない
159 :
1 ◆GqrOSDYjeQ :2007/11/12(月) 23:56:10
俺様が戻ってきましたよ
おれつええええええええええええええええええええええええ
160 :
1 ◆GqrOSDYjeQ :2007/11/12(月) 23:57:31
!?
やばい感激だ。
俺去年の10月12日にスレ立ててたんだな。
ちょうど1年と1ヶ月か・・・まだ生き残ってるとは思ってなかったよお前らwwwwwwwwwwwwww
161 :
デフォルトの名無しさん:2007/11/13(火) 01:17:37
仕事でやってるVBって.net? それともvb6?
162 :
1 ◆GqrOSDYjeQ :2007/11/13(火) 21:35:18
>>161 VBでの案件はとっくに終わったぜ
因みにVB6だった
STLは、やらねーの?
164 :
デフォルトの名無しさん:2007/11/13(火) 23:44:36
ageちゃう
165 :
1 ◆GqrOSDYjeQ :2007/11/13(火) 23:52:37
>>163 何でいきなりVBからC++なんだwwwww
STLって聞いたことはあったけど詳しく知らなくてちょっと調べてみたんだが
色々な共通クラスが提供されてて覚えれば開発速度が上がりそうな印象、
但し、これは覚える(慣れる)のが大変だなwwwwwwwww
基本的に言語は選ばないがあくまでベースはC言語だから機会がないと
STLはやらないね。個人的に習得しようと思うならSTLの基礎となるC++覚える
166 :
163:2007/11/14(水) 23:38:47
>>165 やってるのはC++だとおもってた。
STL、おれはコンテナしかやってないけど、
C++の文法だけ覚えれば、慣れるのはそんなに時間かからないと思う。
んじゃあ、通信系は? ソケットとか。
ただの興味本位だから無視してくれてもおk。
167 :
1 ◆GqrOSDYjeQ :2007/11/15(木) 00:06:51
>>166 ネットワーク関連でやった事といえばrecv、send、WSARecv、WSASendを
APIフックかましてターゲットプロセスが使用してるパケット強制取得とかそういうのかな。
ただ、俺はネットワーク系に関してほぼ無知なんだwwwwwwww
無知だが興味はあるから今後勉強してもいいなw
一応猫でもわかるネットワークプログラミングは買ってたりするんだが
SMTP辺りでうまくいかなくてイライラしてそのまま放置してた気がするwwwwwwww
俺もC++とSDK勉強中だけど、STLはまじおすすめだよ
まだvectorとstring(wstring)しか使えてないけど超楽になった。
文字列定義するだけなのに、
最大サイズ決めるか、領域伸張、解放完璧にするか
の選択を迫られる生活にはもう戻れん。
iostreamなんかよりstring(wstring)先にやれよ
STLで3日遊んだらBoost入れよう。
メモリ管理や文字列処理が更に簡単になる。
・・・会社じゃ使えないとこのが多いがw
まぁ現行のSTLのfunctionalは腐ってるから早めにboostに移行するのもいいだろうね
>>167 なんか似てる。 興味あるけど放置してるあたり。
んじゃ、今
>>1のなかで一番頭を占めてるのは?
UIとかファイルシステムとか、ざっくりしたかてごりでおねがい。
おれは(すさまじくいまさらだけど)COM。
毎晩ちょろちょろと本見たりネットで調べたりしてるんだけど、
ちーーともわかんね。
IUnknownとか、それはこっちのセリフだカス。 みたいな。
172 :
1 ◆GqrOSDYjeQ :2007/11/16(金) 00:53:12
>>171 リバースエンジニアリングだな。
といってもこれに関してはかなり自分の利得の為だけに
やってる事だからとても褒められた事じゃないけどなwwwwwwww
休日とかよくOLLYDBGでアタッチかましてシコシコやってたりする
まあ、アセンブリに関しては基本的な命令を斜め読みできるぐらいで
昨日(
>>167)と似たような事言うが「アセンブリ言語の教科書」なるものを
購入して勉強してたんだが79ページの算術シフトでイライラしはじめて
放置してるわけだがwwwwwwwwwww
173 :
1 ◆GqrOSDYjeQ :2007/11/16(金) 00:58:04
でも、それも2年前(新人)の頃の俺はできなかったろうな
何で俺こんなに頑張れたんだろうwwwwwwwwwwwww
>>172 79ページとか言われてもわからねーちゅーのww
そしてまた放置かよwwwww
てんで”何”頑張ってんのかわかんなかったけど、でもまあガンバレ。
俺はちょっと諦めの気配。 いや放置はしない放置は。
あの子が俺に振り向いてくれる頃には、きっと。。 いけね、ここ板違う。
175 :
1 ◆GqrOSDYjeQ :2007/11/25(日) 21:39:00
_,,:-ー''" ̄ ̄ ̄ `ヽ、
,r'" `ヽ.
__,,::r'7" ::. ヽ_
゙l | :: ゙) 7
| ヽ`l :: /ノ )
.| ヾミ,l _;;-==ェ;、 ,,,,,,,,,,,,,,,_ ヒ-彡|
〉"l,_l "-ー:ェェヮ;::) f';;_-ェェ-ニ ゙レr-{ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ヽ"::::''  ̄´.::;i, i `'' ̄ r';' } | 久々にAPI
. ゙N l ::. ....:;イ;:' l 、 ,l,フ ノ |
. |_i"ヽ;:...:::/ ゙'''=-='''´`ヽ. /i l" <
.| ::゙l ::´~===' '===''` ,il" .|'". |
.{ ::| 、 :: `::=====::" , il | \________
/ト、 :|. ゙l;: ,i' ,l' ノト、
/ .| \ゝ、゙l;: ,,/;;,ノ;r'" :| \
'" | `''-、`'ー--─'";;-'''" ,| \_
176 :
1 ◆GqrOSDYjeQ :2007/11/25(日) 21:46:57
この3連休で久々にAPIを触った。
CreateRemoteThreadによるDLLインジェクションなんだが。
それをやった上での疑問があったから知ってる奴は教えてほしい
@CreateRemoteThreadが返すスレッドハンドルの扱いについて
これはスレッドハンドルを取得してWaitForSingleObject辺りで
シグナル状態を確認した後CloseHandleを行うべきなんだろうか。
個人的な結論としてだが対象のプロセスに対するLoadLibraryA又はWの
処理を生成したスレッドが終えたわけだからやっていいんだよな?な?
自信がない僕はどうすればいいんだwwwwwwwwwwwwwwwwwwwww
AVirtualAllocExでの対象プロセスに対するメモリ領域確保について
対象プロセスハンドルを用いて、ロードするDLLの文字列を格納する領域を
生成するわけだがこれもLoadLibraryを行うスレッドが処理を終えた後に
確保した領域はこちら側で解放してあげるべきなのか。
これも個人的な結論でロードが終わったんならその文字列領域無駄じゃね?
っていう結論なんだが解放してやっていいんだよな?な?
これも自信ないから僕はどうすればいいんだwwwwwwwwwwwwwwww
他力本願な俺はお前らに大いに期待を寄せているwwwwwwwwwwwwww
スレッドハンドル(に限らないが)は、
シグナル状態でなくても閉じて平気。
178 :
1 ◆GqrOSDYjeQ :2007/11/25(日) 23:16:15
>>177 そうなのかwwwwwwwww
まあ、いずれにしろFindFirst使ってPluginフォルダに入ってるDLLを
全てインジェクションしてるかつ共通のメモリ領域にDLLのフルパスいれて
CreateRemoteThreadのパラメータに渡してるからシグナル状態(LoadLibrary完了)
にさせてから次のDLLインジェクションさせないとWriteProcessMemoryで共通メモリに
別DLLのパス書き込んじまうからな。
ついでにもう1個知りたい事があるんだが。
例えば0x00500000のアドレスにJMP命令(4byte)があったとして、
そいつは0x00100000のアドレスにジャンプするんだが
機械語だとE9 FFBFFFFBになるんだ。
探した参考サイトとかで算出方法?みたいなのが乗ってて
「ジャンプアドレス-命令アドレス-0x05」ってなってたんだが
最後の0x05の意味は何なんだろうと俺はここ2日頭をかかえて
悩んでるんだが誰か知ってる奴いない?
後、逃げ道としていっておくけど俺は低レベルな知識は
全然詳しく無いんでできれば優しく教えて欲しいwwwwwwwwww
179 :
1 ◆GqrOSDYjeQ :2007/11/25(日) 23:24:03
後書き忘れた事があって
上記の
>>176,178で何がやりたかったのかというと
0x00400000 JMP AAAAAAAAっていう命令を自作DLLを介入させて
0x00400000で本来JMPするはずのAAAAAAAAの前にBBBBBBBB
という自作関数を走らせてからAAAAAAAAの処理をさせるって言う
いかにも胡散臭い目的を主としたものを作ってたんだ。
ジャンプ先の命令はこんな感じ
VOID __declspec(naked) hoge(VOID)
{
__asm call B
__asm jmp A
}
それをやる上で
>>177に記したジャンプアドレスの書き換えと本来通るべき
アドレスの算出を探して見つけたのはいいけど理解できずに喉につかえた
感じで終わりたくなくて探してるんだが。見つからずwwwwwwwwww
180 :
1 ◆GqrOSDYjeQ :2007/11/25(日) 23:31:34
>>178 その5はE9 FFBFFFFBの5バイト
E9 FFBFFFFBの次の命令は0x00500005に置かれることになる。
E9の相対JMPはそこを基準に何バイト前or先へジャンプするという指定なので。
仮にE9 00000000とすれば、
全く進みも戻りもしない
= 次の命令に進む
= 50000005(次の命令のありか)へジャンプするということになる。
182 :
1 ◆GqrOSDYjeQ :2007/11/25(日) 23:42:22
>>181 あー、そういうことか
いや、微妙に困惑気味だがとりあえずヒントをありがとうwwwwwwwww
お前何かSUGEEEEEEEEEEEEEなwwwwwwwwwwwwwwww
明日仕事だから今日は寝て時間あるときその文面を自分なりに分析するぜwwwwwwww
Cど素人の俺はこのスレのレベルの高さに惚れました。
俺もあなた達と語れるくらいのレベルまで到達したい。
だけど、そこまで行くには具体的にどうしたらいいのかわからない。
教えて下さい!!!!!!!!!!!!
184 :
1 ◆GqrOSDYjeQ :2007/11/28(水) 00:21:00
>>183 やる気よりも根気強くコツコツ本を読み進める事が
できるスキルがあればいけるんじゃないかな?
俺が18(専門学校)〜21(現在)の過程を辿っていくとこんな感じだった
【専門学生時代】
ネトゲ三昧でどうしようもなかった。一応プログラミングなんかする専門学校
だったし興味はあったんだがあまり打ち込んでなくて出された課題を
こなす程度だった。そのまま2年生になって就職活動したが
全然採用されず途方にくれてたwwwwwwwww
そもそも俺は一般教養中学生レベルもままならないレベルだったんだw
それで3,4社ぐらい受けて4社目(今勤めてる小さな会社)で採用された。
後で聞いた話だが俺の採用試験の点数は40点だったらしいwwwwww
俺を採ったのは面接での印象がよかったんだとさ。
で、この時点での俺のプログラミング(C言語)の知識は
ほんとに簡単なコンソールプログラムと基本的な構文のみしか覚えてなくて
fopenとかのファイルストリームの使い方もほとんど使えなかった(一応授業では習ってた)
【就職決まった後から研修まで】
学生卒業するギリギリまでネトゲ三昧wwwwww
研修期間(2週間程度だったが)に社長にボコられまくった。
この時二度と研修やりたくないと思ったwwwwwwwwwwww
4月(2006年)に入り配属先(うちは協力会社)に移ったんだが
ものすごく放置されてたwwwwwwwwwwwwwwww
暇だからとりあえずGUI覚えようと思って「猫でもわかるWinプログラム」の
本を購入してしばらくGUIの勉強し始めた。色々やってるうちに6月になって
学生時代やってたネトゲツールを作ってみた。(フックを使った簡単なもの)
そんな事してるうちに最初は意味がわからなくて見真似で作ってた
ウィンドウプロシージャの概念がわかり始めて今度は自分で試行錯誤
しながら色々な機能を実装し始めた。
185 :
1 ◆GqrOSDYjeQ :2007/11/28(水) 00:26:14
【2006年10月辺り〜現在まで】
確かその時遊びでこのスレを建てた気がするw
この辺りから自作DLLで色々な俺様共通関数を作り初めて
今年の2〜4月辺りにマルチスレッドに興味持ち始めて
いくつか仕事用の自作ツールをスレッド使って作ってみた。
7月ぐらいから仕事が忙しくなり始めてあんまり自分の時間できなくなったけど
休日あたりの暇を見てネトゲのクライアント解析なんか少しずつ
やりだしたりして今に至るって感じだな。
寝る前に適当に書いたから文面汚いかも知れないけど
要はツール作らないと実現できない事に関する動機がを見出せば
いつの間にか知識がついてくるって感じじゃないかwwwwwwwww
個人的にでかかったのは2006年の4月から1年ぐらい
放任でやらせてもらった環境だったかもな。
だから根気さえ続けば1年ぐらいで俺程度にはなれるんじゃないかw
186 :
1 ◆GqrOSDYjeQ :2007/11/28(水) 00:29:08
後金に出し惜しみせず技術本買いまくったことぐらいか
そうなんですか。
私も最近ですが、猫でもわかるWindowsプログラミングの本を買いました。
ですが、今悩んでいます。
Cの基礎をほとんど学ばずGUIプログラミングから入ってしまった私は、
ポインタとか列挙体とかまるでわからなくて困っています。
C言語に関する質問スレを見ても難しいコードが質問されてたりするのを見るたびに自分の低スキルさを実感します。
明解C言語という本を買ったんですが、これまた難しく、文字列処理なんかで非常に困っている状況です。
やるからには、いいコードを書きたい、
だが、自分の書いてるコードは間違いだらけなんじゃないのか…
全く工夫のこらされていない糞コードなんじゃないのか…
いいコードを見たこともないのに、こういう考えばかりが先行してしまっている状況です。
やはり、地道に書いていくしかないんですかね?
そうさね、まず2ちゃんねらーは3行までしか読まないというオルメタを理解するといいよ。
189 :
1 ◆GqrOSDYjeQ :2007/11/29(木) 02:21:34
>>187 俺が初めて買ったプログラミングの本は
「Cの絵本―C言語が好きになる9つの扉」
とかいう本だった専門学校入ってから買った本だな。
「いいコード」か。それは人それぞれ考え方があるから
あれだけど俺はトリッキーで奇抜な処理よりも冗長な、
でも人が見てわかりやすいコードが「いいコード」だと思うな。
後はコメントが無いソースはゴミだと思うしC言語で言うなら
極端にgoto嫌う人が作ったソースも見づらい気がする。
俺も聞いたけど学校で講師がgoto使うなとか言うから悪いのかもな。
参考までにgoto使ったケースのソースと使わないソースを下記に記載
190 :
1 ◆GqrOSDYjeQ :2007/11/29(木) 02:22:49
int main(void)
{
char chBuffer[256];
FILE *fpRead;
FILE *fpWrite;
fpRead = NULL;
fpWrite = NULL;
fpRead = fopen("ReadMe.txt", "rb");
if(fpRead == NULL)
{
return 1;
}
if(fread(&chBuffer[0], sizeof(chBuffer), 1, fpRead) != 1)
{
fclose(fpRead);
return 1;
}
fpWrite = fopen("WriteMe.txt", "wb");
if(fpWrite == NULL)
{
fclose(fpRead);
return 1;
}
191 :
1 ◆GqrOSDYjeQ :2007/11/29(木) 02:23:24
if(fwrite(&chBuffer[0], sizeof(chBuffer), 1, fpWrite) != 1)
{
fclose(fpRead);
fclose(fpWrite);
return 1;
}
fclose(fpRead);
fclose(fpRead);
return 0;
}
192 :
1 ◆GqrOSDYjeQ :2007/11/29(木) 02:25:01
int main(void)
{
char chBuffer[256]; /* 読み書き領域バッファ */
FILE *fpRead; /* データ読込ファイルポインタ */
FILE *fpWrite; /* データ書き出しファイルポインタ */
int nResult; /* 戻り値 */
/* 変数初期化 */
fpRead = NULL;
fpWrite = NULL;
nResult = 1;
/* データ読込ファイルオープン */
fpRead = fopen("ReadMe.txt", "rb");
if(fpRead == NULL)
{
/* ファイルオープンに失敗した場合処理終了 */
goto FUNC_END;
}
/* データをバッファサイズ分読込 */
if(fread(&chBuffer[0], sizeof(chBuffer), 1, fpRead) != 1)
{
/* データ読込に失敗した場合処理終了 */
goto FUNC_END;
}
193 :
1 ◆GqrOSDYjeQ :2007/11/29(木) 02:25:43
/* 書き出しファイル生成 */
fpWrite = fopen("WriteMe.txt", "wb");
if(fpWrite == NULL)
{
/* ファイル生成に失敗した場合処理終了 */
goto FUNC_END;
}
/* ファイルにバッファ領域データ書き出し */
if(fwrite(&chBuffer[0], sizeof(chBuffer), 1, fpWrite) != 1)
{
/* 書き出しに失敗した場合処理終了 */
goto FUNC_END;
}
/* この時点で正常終了 */
nResult = 0;
194 :
1 ◆GqrOSDYjeQ :2007/11/29(木) 22:52:58
昨日書き込んでたら「バイバイさるさん」になって書き込めなくなったwwwwwwwwwww
何かやる気なくなったけど続き(うろ覚えだがw)
FUNC_END:
/* リードファイルをオープンしていた場合 */
if(fpRead != NULL)
{
fclose(fpRead);
}
/* ライトファイルをオープンしていた場合 */
if(fpWrite != NULL)
{
fclose(fpWrite);
}
return nResult;
}
まあ何か1日経過して説明するのだるいから
こういう書き方もありますよ的な感じで見てくれるといいwwwwwwwww
これはひどいwwww
196 :
1 ◆GqrOSDYjeQ :2007/12/03(月) 01:42:45
0x01,0x00,0x00,0x00という4バイトのバイナリデータが
char型のポインタpchAddressに入っているとする。
それをwsprintf&chBuffer[0], TEXT("int = %d\r\n"), *((INT *)pchAddress));
ってやれば値取得できるって知らなかった俺に乾杯wwwwwwwwwwwwww
なるほど一度INT型のポインタにキャストすることで4バイト管理となり
その4バイトに対する中身を「*」で参照する事ができるようになるんだな
よく考えてれば当たり前の事だったw
そんな俺様はこれに気づく前までこんな事してた
INT inOretue_;
inOretue_ = *(pchAddress);
inOretue_ = inOretue_ + *(pchAddress + 1) * 256;
inOretue_ = inOretue_ + *(pchAddress + 2) * 4096;
inOretue_ = inOretue_ + *(pchAddress + 3) * 65536;
まさに鬼才現るwwwwwwwwwwwwwwwwwwwwww
RGBマクロも似たようなことしてる
198 :
1 ◆GqrOSDYjeQ :2007/12/03(月) 23:09:03
昨日夜寝る前に気づいて絶対突っ込まれるなと思いながら
寝たんだが奇跡的に突っ込まれてなかったwwwwwwwwwwww
inOretue_ = inOretue_ + *(pchAddress + 2) * 4096;
inOretue_ = inOretue_ + *(pchAddress + 3) * 65536;
は間違いwwwwwwwwww
inOretue_ = inOretue_ + *(pchAddress + 2) * 65536;
inOretue_ = inOretue_ + *(pchAddress + 3) * 16777216;
が正解
何やってんだ俺はwwwwwwwwwww
<< 使おうよ
200 :
1 ◆GqrOSDYjeQ :2007/12/04(火) 00:22:35
俺は研修時にシフト使うなって散々叩き込まれてるから
よほどの事がない限り使わないようになってるw
やってることは同じ事だし好みの問題じゃないか?
MULとSFTは同じじゃないと思うけど
>>198 こんな書き方絶対しないけど、
やるなら
* 256
* (256 * 256)
* (256 * 256 * 256);
にする。
それ以前に、アドレスをcharで扱う状況が想像できない。
204 :
1 ◆GqrOSDYjeQ :2007/12/05(水) 01:28:23
>>202 なるほどwwwwwwww
そういう書き方もあるな
>>203 俺普通にcharでアドレス使ってるwwwwwwwwwwwwwwwwww
205 :
1 ◆GqrOSDYjeQ :2007/12/05(水) 01:29:53
>>203 因みにアドレスは何型で使ってるんだ?void *か?
>>203 アドレスは何型でも関係ないぞ?
ちゃんとわかって言ってるのか
すまん。意味がわかってなかった。
*((INT *)pchAddress) を
*((INT)pchAddress) と読みちがえた。
プロセスメモリエディタみたいなのを作ってるのかと想像した。
208 :
1 ◆GqrOSDYjeQ :2007/12/05(水) 22:12:25
>>207 (INT)でキャストした時点でアドレスじゃなくなるから
そこでアドレス演算子を使うと普通にエラーになると思うんだ
209 :
1 ◆GqrOSDYjeQ :2007/12/05(水) 22:37:47
>>209 わろた
SDKやってたけど、今日はもういいや!
211 :
1 ◆GqrOSDYjeQ :2007/12/13(木) 14:36:22
夜勤しんどい。
ところでSDKとは関係ないが最強の俺様はexternの関数
について正直完全に理解しきれていない。
そもそもプロトタイプ定義でexternが必要なのか?
static関数の場合そのソース内のみでしか有効ではないが、
extern関数の場合はどこかに定義されているからそれ使えって
意味なんだろう?だとするとexternをつけないプロトタイプ定義と
同義なんじゃないだろうか?一応ざっくりテストPG作って検証してみたが
externをつけるのとつけないのでの違いはなかった気がする
どうなんだお前らwwwwwwwwwwwwwwwwwwwwwwww
extern関数?
どんなテストプログラム作ったんだ?
externが必要な場合externなかったらコンパイル通らないだろ。
extern した 関数か。
色々試した結果こうなった。
a.h
#include <stdio.h>
extern void aaa();
void aaa();
a,cpp
#include "a.h"
void aaa(){
printf("a.cpp::aaa()\n");
}
b.cpp
#include "a.h"
void aaa(){
printf("b.cpp::aaa()\n");
}
void main(){
aaa();
}
b.cppをコンパイルし実行
>b.cpp::aaa()
a.cppをコンパイルしb.exeに結合
>a.cpp::aaa()
なんでそーなるかは知らん。
214 :
1 ◆GqrOSDYjeQ :2007/12/13(木) 22:30:47
カラオケでアクエリオン歌ってきたwwwwwwwwwwwww
友達に大爆笑されたが
>>213 それはexternは”外部参照”だからa.cppの方が
優先されるんじゃないか?すごい適当に答えてるがw
逆にa.hの
extern void aaa();
void aaa();
を
void aaa();
extern void aaa();
に変えて実行してみたらどうなるか試してみるか。
215 :
1 ◆GqrOSDYjeQ :2007/12/13(木) 22:42:36
結論からいうとプロトタイプ定義って
void aaa();
のみで定義した場合でも自動的に
extern void aaa();
ってなるんじゃないのかなwwwwwwwwwwwwwwww
216 :
1 ◆GqrOSDYjeQ :2007/12/13(木) 22:46:29
217 :
デフォルトの名無しさん:2007/12/13(木) 23:50:44
>>216 「デバッガによるx86プログラム解析入門」は、プログラミング未経験者にも役立つように、
丁寧に解説しているから、挫折はしないはず。
内容が面白かったから、自然に読み進めていけるって感じだった。
それにしても、解析本の中で一番まともな本を見つけたのはラッキーだったね。
このジャンルには、救いようも無い大ハズレな本もあるから・・・
>>216 自分も1週間前に買った。忙しくてまだ全然読んでないけど。
>>215 プロトタイプ定義じゃなくてプロトタイプ宣言じゃないか
ソース外部に公開するという意味ではprivateとかstaticとか書かなければ、デフォルトでそうなる
ただし、変数の場合は
int a;
とやってしまうと、宣言+定義になってしまうので、複数回コンパイラに処理されると多重定義になってしまう。
宣言だけをするために、
extern int a;
と書く。
関数の場合は、プロトタイプ宣言の書き方で宣言だけになるので、externは必要ない
正確でないと思うので誰か突っ込んでくれ
なんだ、スレタイは「俺の開発日記帳」って意味だったのか。
てっきり「俺の開発環境はWindowsのメモ帳」って意味かと思った。
221 :
1 ◆GqrOSDYjeQ :2008/01/01(火) 02:05:22
あけましておめでとう。
規制食らってた俺様が戻ってきましたよwwwwwwwwwww
いい加減プロバ変えようかと思ってるけどめんどくさい事を
やらないのが俺のクオリティ。
さっそくだけど生成したスレッドに対してPostThreadMessageを
使用して独自メッセージ処理をさせてるプログラムで
その独自メッセージの処理がまたスレッドを生成させているんだが
独自メッセージをポストさせまくった場合たまにそのプロセスが
フリーズしちまうんだがこれやっぱりどっかで競合起こしてるんだよな。
マルチスレッドはそんなに組んだ事なくて経験が浅いからいまいち
ピンとこない。一応これも勉強のためと思って色々試してたりするんだが
中々わからない。というか難しいwwwwwwwwwwwwww
ポストさせまくってといっても、セマフォ使って一度に生成できる
スレッドの数を制限してるんだが、多分その辺のセマフォカウント
あたりが怪しいんじゃないかと思う。
以下コード↓
if(WaitForSingleObject(hThreadSemaphore, 0) != WAIT_OBJECT_0)
{
break;
}
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&test, (LPVOID)msg.lParam, 0, &dwThreadId);
以下コード↑
222 :
1 ◆GqrOSDYjeQ :2008/01/01(火) 02:11:19
実装は上記のような形でWaitForSingleObjectでセマフォがシグナルか
そうじゃないかの状態を取得してシグナルだった場合スレッドを生成する。
セマフォが非シグナルじゃない場合は今回ポストされた独自メッセージは
そのままスルーされるという処理にしてる。
フリーズする原因としては多分この辺なんじゃないカナとか思ってたり。
ただ、確証がまったく持てない俺様なんだけどwwwwwwwwwwwww
例えば下記の様に
以下コード↓
if(WaitForSingleObject(hThreadSemaphore, 0) != WAIT_OBJECT_0)
{
break;
}
/* 0.1秒寝る */
Sleep(100);
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&test, (LPVOID)msg.lParam, 0, &dwThreadId);
以下コード↑
スレッド生成させる前に0.1秒ぐらい寝かせれば起こらなくなるのかな?
とか思ってやってみたら起こらなくなった気がするんだけど。
つまりこれはどういうことなんだろうwwwwwwwwwwwww
事象がほんと稀で起こったり起こらなかったりだからほんと性質が悪いぜ。
223 :
デフォルトの名無しさん:2008/01/01(火) 03:49:33
if(WaitForSingnalObject("link"=1, "which"=0) != WAIT_OBJECT_0)
{
break;
}
/* 私はlinkをしているんだ */
Sleep[i](またか?);
hThread = CreateThread(Text, 0, (PRINT_START_EXIT)&test, (何度云えば判るんだ?);
224 :
1 ◆GqrOSDYjeQ :2008/01/01(火) 10:54:37
>>223 よくわからないがすごいコードだということはわかったwwwwwwwwwww
225 :
1 ◆GqrOSDYjeQ :2008/01/03(木) 22:05:39
あくまで個人的な見解で自惚れかもしれないが、
ここ2年ほどwindowsプログラムを触り始めて
ある程度の知識、テクニックを身に付けてきたと思うんだ。
最近は何か作るにしても過去にやった事を応用した
処理実装ばかりになってきている感じ。
そろそろ、1から新しい事をやり始めるいい機会かもしれない。
選択肢としては
「ソケットプログラミング」
「データベースプログラミング」
の2つぐらいだと考えてるんだけどどれを先にやろうか迷うぜw
226 :
1 ◆GqrOSDYjeQ :2008/01/03(木) 22:10:44
俺様は書き込んだ後、5秒で結論が出たwwwwwwwwwwww
データベースプログラミングにしようwwwwwwww
それに当たって何か書籍買うか。
でも、DBプログラミングって難易度高そうなイメージが付きまとう
まずはDB構築とSQL取得か。後者は多少経験あるが
ほとんどわからないのが現状、前者に至っては全然わからねええええ
うはwwwwwwwwww絶望的wwwwwwwwwwwww
つ .NET
SQLiteとかやってみては
230 :
1 ◆GqrOSDYjeQ :2008/01/22(火) 00:08:02
久々に登場wwwwwwwwwwwwwwwwww
近況報告。
転職支援サービスに申し込みをしたw
今年で3年目だけど今の会社じゃ今後これ以上の
成長できないと判断したので転職しようかと思う。
なんていうか人間関係はこれ以上にないって言うぐらい
良くて後ろ髪引かれる思いが多々あるんだけども、
自分の中で考えた結果やっぱり今に甘んじるよりも
技術が欲しいと結論を出した感じw
若い内にしかできない事もあるからね。
次就職する先は自社内開発を積極的にやってるところを探したい。
けど、その前に俺は一般教養がほんとダメダメだから
一般常識問題が出ると100%落ちると思うんだけど、
どうしたらいいと思うお前らwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
後、DBプログラミングは全然やってないんだスマンw
一般教養は俺も無いけど、一般的な仕事上の会話が可能で、
目指す会社が欲するプログラミング能力があれば問題なんじゃないかな?
目指す会社が採用してくれるといいな。
233 :
1 ◆GqrOSDYjeQ :2008/02/04(月) 19:44:16
>>232 おう、ありがとう。
先週の土曜日転職支援サービスの担当者と面談してきたよ。
とりあえずそこで良さそうな3社にエントリーしてきたんだけど、
仮に書類選考が通ってきて面接となった場合に俺面接いけるのかなwwww
うちの会社暗黙の了解で有給とっちゃいけないとかいうのがあって
その事話したら転職支援サービスの担当者が
「面接は基本平日のみだからその辺はその時になって相談しましょう」とか
言われてものすごく不安だ。
最悪、仮病使って休むしかないのかなぁ。
勤務先が勤務先なだけに都心部に夜7時といわれてもかなりきつい状況だから
これはもう絶望的かもしれないwwwwwwwww
特に2次、3次の役員級面接になると平気で
平日の昼間を指定してくるらしいし。
234 :
1 ◆GqrOSDYjeQ :2008/02/05(火) 22:08:18
俺死亡フラグwwwwwwwwwwww
応募した企業の書類選考は通ったらしい。
ただ、筆記試験が「国語、英語、数学、作文」(45分)
おいwwwwwwwどういうことだwwwwwwww
上記の筆記試験は俺に死ねと言ってるようなもんだろwwwwwwww
まじやべえええええええええおれやべえええええええええ
後、面接が最高でも平日の18時スタートらしいんだ。
どうみても無理なんだw
落ちるの目に見えてるから断ろうかな。。。
でも、応募して1日で書類選考通してくれるような企業を
面接の時間と一般教養がないからといって断るのは申し訳ないし。
俺転職無理かも知れないw
絶望してきたwwwwwwwwwwwwwww
さて、話し変わるんだけどここ2日ぐらいリストビューの
サブアイテムの編集を行う機能を実装しようとして必死になってた。
SDKでの実装資料の少なさに悪戦苦闘して不完全ながらも
何とか指定セルに対する入力編集ができるようになった事に
俺様仕事中トイレで大喜びしてたwwwwwww
後はエディットボックスの位置を変えてあげるのが残ってるんだけど
調べたところそれは対象エディットのサブクラス化で実装できそうだ。
これは比較的簡単かもしれない。(まだやってないけど)
手探りで実装したから汚くて意味不明なソースになってるけど見たい人はどうぞ。
後もっと活気的なやり方あるなら俺様に教えるべきだwwwwwwwwwwww
http://www-2ch.net:8080/up/download/1202216820706741.8QWr7y
235 :
1 ◆GqrOSDYjeQ :2008/02/05(火) 22:28:09
因みに処理の入りはこんな感じ
case WM_NOTIFY:
/* リストビュー特殊通知処理 */
if(wParam == IDC_LISTV_SEARCHRES)
{
/* リストビュー特殊処理 */
ListViewSpecialProcessing(lParam);
}
break;
技術的なつっこみはありがたいが先述した通り手探り実装で
「作り」よりも「動き」を重視してコーディングしたから、
使ってない変数がどうとかコメントの書き方がどうとか
そういうレベルの話は無しで頼むぜ。
>>234 どのくらい前からなら有給申請できるの?
それ正直に話して試験の日にちを遅らせてもらえば?
そのくらいの融通は利きそうなもんだけど。 逆に面接に融通は利きそうも無いけど。
237 :
1 ◆GqrOSDYjeQ :2008/02/06(水) 23:25:58
>>236 うちは有給とっちゃいけないという暗黙のルールがあってだな。。。
有給取るのはほぼ不可能なんだ。
半休を貰う事はできるからそれで調整するが
何度も使えるわけじゃないからいざという時のために温存しておきたい。
というか転職活動舐めすぎてた。仕事しながらは非常にシビアだw
>>234-235の続き。
一応機能的には完成したけど。
見た目的に微妙なのとラベル編集のエディットボックスを移動した時に
元の親アイテム文字列が消える現象があるからそれを
何とかしないといけないけどやり方がよくわからねえw
それとWM_USERで独自メッセージを定義(WM_USER_SETPOS)して
エディットボックスの位置を固定させる点座標値やらを初期化させてるんだが
それ以外にやり方を知ってる人いたら是非俺に教えてくれ!!
(グローバル変数を使うやり方以外でw)
下記はソース。見たい奴はどうぞ
http://www-2ch.net:8080/up/download/1202307308607876.yHVWdm
>237
必殺ずるやすみ
いったいどこの会社だ?
240 :
デフォルトの名無しさん:2008/02/15(金) 05:44:47
方向音痴な初心者です
特に意味は無いのですが…
誰の「俺のSDKメモ帳」ですか?
オレオレ
アリアリ
243 :
1 ◆GqrOSDYjeQ :2008/02/17(日) 23:48:27
この前、面接いってきた。
人事担当者と技術担当者各一名ずつの構成で行った。
基本的に人事の人が企業の説明と質疑応答をやって、
技術担当者とはほんの少ししか会話できなかったが、
話の中でWM_CREATEとかGetWindowLongとか
その辺の話をしてきたのでSDK関連の知識はあるのかなと思った。
今勤めてるところは俺以外SDK知らない(関心無い)人ばかりで
一度も話が通じた事無いから多少期待がもてるんだろうかw
ほとんど話しができない状態だったから何ともいえない。
まあ、現在の俺は選ぶんじゃなくて選ばれる立場にあるから
偉そうな事はいえないんだけどwwwwwwwwwwww
>>231 亀レスだがそのリンク先の企業まだ採用してるなら応募してみようかな
Ajax開発ツールでのGUI的なアプリケーション開発の
内部実装に関してはかなり興味をそそる。
Ajaxの概念的にはシンプルで実装自体もさほど難しくなさそうだなと
勝手に思い込んでるんだが、シンプル故に作りこみが楽しそう。
244 :
デフォルトの名無しさん:2008/02/21(木) 18:17:40
死んでからというもの最近レーガンの名前をさっぱり聞かなくなった
SDKでプログラミング万歳あげ
246 :
1 ◆GqrOSDYjeQ :2008/02/24(日) 14:15:52
この前受けた面接で
「面接官にC言語ではGUIアプリケーションは作れない」と言われた
続けて「VC++でならGUI作れるけどね」ともいっていた
俺はどうしようかと思った
因みにその人はVBしかやったことがないらしい
それより問題は俺のコミュニケーション能力の低さ
前々から自覚はしていたが面接やってみて痛感。
質問に対して回答に窮する事が多々あったorz
「これは致命的だな」と危機感を持ち、たまらずそういった
本購入してみたけど本読んだだけじゃ身に付くものでもないよなぁ。
今までを振り返ってみると「技術技術」で技術ばかりを追い求めて
そういった対話スキルなんて何の興味もなかったけど、
将来を見据えるとどうみても必須スキルだw
コミュニケーション能力向上の講座とかあるなら参加してみるかー
おまいらにも同じ悩み又は昔抱えてた奴とかいる?
「C言語ではGUIアプリケーションは作れない」
なに言ってんだそいつ。
いやソコは聞き流すところだろ
むしろテンプレ
249 :
デフォルトの名無しさん:2008/04/25(金) 15:07:30
ほす
250 :
デフォルトの名無しさん:2008/04/26(土) 08:00:11
草をはやすようになった1にがっかりだ
初心を思い出せ
>「面接官にC言語ではGUIアプリケーションは作れない」
ああ、面接官自身が自分には作れないよ、と言ってるのか。
252 :
1 ◆GqrOSDYjeQ :2008/05/07(水) 23:55:12
アクセス規制かかっててずっと書き込めなかったんだ
>>250 すいません。初心を思い出します。
そして転職活動。
思うように決まらない。
俺はどうしたらいいんだorz
まあ、この辺はボチボチやっていこう。
さて、初心を思い出そうという事で最近やっててしかも
かなり頭を抱えて悩んでた馬鹿らしい技術的な話。
APIフック使って、とあるネトゲーのパケットを
イジイジしようかと思って頑張ってた。
recv、send、WSARecv、WSASendの各パケットAPIの
横取りは完了したのだが、sendの弄りはうまくいくのに
recvの弄りは何故かうまくいかない。
ナズェダ!ダディャーナザァン!とマジで3週間ぐらいそれで悩んでた。
作ったフック関数の作りはこうだ!!
int WSAAPI hkRecv(SOCKET s, char FAR * buf, int len, int flags)
{
/* recvパケット処理 */
EvaPacket((LPBYTE)&buf[0]);
/* オリジナル関数でパケット情報を取得 */
return ((PRECV)tgHook.pRecv)(s, buf, len, flags);
}
どうみてもrecvでパケットを受信する前に弄り処理を行おうとしています。
本当にありがとうございました。
253 :
1 ◆GqrOSDYjeQ :2008/05/08(木) 00:19:02
【転職活動について】
やはりというべきなのかわからないけど筆記で落とされる俺。
この前受けた最終面接の不採用通知で筆記試験が芳しくないといわれて
今回も某企業の最終面接まではいけたんだけど、WEBテストってのがあって
ついさっき受けてきた。詳細はいえないけど言語分野。非言語分野だったんだ。
うん。僕は死んだ。特に非言語分野orz
自分が不甲斐なくて泣けてくるけどこればかりは学生時代
勉強なんてしなかった付けが回ってきたのかなと思うんだw
ただ、一次面接自体は結果はともかく楽しくて、
純粋に技術的な話や俺の知らない事も教えてくれた。
何より俺の話をよく聞いてくれた事が印象的だった。
ともかく、今日やったテストの事は早めに忘れる事にして
今度ある最終面接でぶち当たって砕けてくる!!
前回が前回なだけに非常に楽しみだ。
おお、いなくなったかと思っていた。
255 :
1 ◆GqrOSDYjeQ :2008/05/08(木) 00:25:20
>>254 たまに書き込もうとしてたんだけど
nifty永久規制かかってて書き込めなかったw
●買って専ブラに設定すれば、規制かからなくなるよ。
257 :
1 ◆GqrOSDYjeQ :2008/05/28(水) 01:26:26
>>253の最終面接、実はド○ンゴに応募してて
この前面接してきたんだけど結果は不採用だったよorz
見送り理由は「論理的思考力や説明力」という点で
求めるレベルと合致しなかったらしい。
そうなんだよなー。俺説明下手なんだorz
でも、不採用の理由がWEBテストの結果が思わしくなかった
というのじゃなかったのがせめてもの救いで、
学力じゃなくてそういった人物に対しての思考能力とかで
推し量ってもらったのが俺的に納得。
え?WEBテストの予想結果が聞きたいって?
多分0点か2点ぐらいだと思うんだ!!(解いたのが2問)
中学レベルの試験だったと思うけど俺勉強嫌いで
中学時代授業中普通に寝てたりしてたから。。。
筆記は働く上で必要ない事もないけどあまり重要性を
感じないのでいいとして、いままで就業してきた中で
一番重要だと思える能力が説明能力なんだよね。
これが欠けてる俺は何とか克服しないと先に進めない気がする。
という事で↓に参加する事に決めて今応募してきたw
http://www.isoroot.jp/muryou1/index.htm なんというポジティブな俺。
-- 反省会終了 --
258 :
1 ◆GqrOSDYjeQ :2008/05/28(水) 01:30:22
259 :
1 ◆GqrOSDYjeQ :2008/05/28(水) 01:32:26
>>256 因みに専ブラはJane使ってるんだ。
それに死ぬほど規制に困るってわけじゃないからw
260 :
1 ◆GqrOSDYjeQ :2008/05/30(金) 00:58:05
「明日またくる」と言っててすっかり忘れてた
そして前回うpした奴まだ動作確認してなくて適当に作ったツールで
動作確認してみたら案の定、細かいバグがあったので修正
↓
ttp://www-2ch.net:8080/up/download/1212075920884631.SEMXyk ツリー形式のデータ管理が強力な機能だったという事に今更気づいて
仕事の昼休み飯食いながら心の中で狂喜乱舞。
今まで何か敷居が高い気がして実装を避けてたのが馬鹿みたいだ。
これ使えばツリービューでのデータ管理が高速かつ相当楽になりそう。
※今まで逐次データを確保して出力させるという無駄で素敵な実装してたwwwww
自己参照構造体以外に便利なデータ管理ってないのか今度探してみよう
261 :
1 ◆GqrOSDYjeQ :2008/05/30(金) 01:05:06
因みに一部のプロセスのモジュール列挙しようとすると
CreateToolhelp32Snapshotでアクセス拒否されるんだが、
これの対処法って何かあるのかな?
やり方としてVirtualProtectExでアクセス権取得すれば
できるような気がしないでもないけど。
誰か知ってる奴いない?
ドワンゴの面接官
「君、独り言気持ち悪いからアクセス拒否するわw」
263 :
1 ◆GqrOSDYjeQ :2008/05/31(土) 12:28:24
>>262 独り言みたいですいません
でもここは俺のメモ帳だから仕方ないんですwwww
264 :
デフォルトの名無しさん:2008/05/31(土) 22:31:17
今作ってるプログラムのソースコードが1000行越えた当たりからイライラしてきた……
265 :
1 ◆GqrOSDYjeQ :2008/05/31(土) 23:26:52
>>264 その気持ちは良くわかるぜ!
簡単にできる方法があるけど後々のこと考えて
凝った作りにしようとしてイライラするとかもよくある。
その他にはロジックの全体像は見えてるけど、
見えきってしまってコーディングがめんどくさくなるとかなw
イライラするのはフォントがでかくて視認範囲が狭いから。
267 :
1 ◆GqrOSDYjeQ :2008/05/31(土) 23:32:48
>>266 なるほど。確かに環境は大事かも。
俺のフォント環境はTerminalの10に設定してるな。
秀丸はMSゴシックだったかもしれんがVSはTerminalのはず
268 :
1 ◆GqrOSDYjeQ :2008/06/01(日) 23:52:40
今日の成果
↓
ttp://www-2ch.net:8080/up/download/1212330876167085.q2hTnN 着目して欲しいのはHOGEフォルダにある「BinToStr.c」。
概要を説明すると例えば0x12, 0x34, 0x56という3バイトの
バイナリデータがあるとする。
上記のデータが格納されているバッファをBitToStrに投げると
"123456\0"という文字列に変換してくれるという代物。
何故これを作ったのかというと例えばINIファイルに
[BIN]
Binary=00123456
とかいうKEY定義を読み込んだのはいいけど
実際読み込んだものは文字列となっているから
その後バイナリ変換しなきゃいけないから。
実は当初、StrToIntExのSTIF_SUPPORT_HEX使ってたんだけど
あれ4バイトまでしか対応してない事に気づき「クソがああああああ!!」と
喚き散らしながら自作で作った。
用途は少ないけどWriteProcessMemoryの指定バッファの中身は
バイナリじゃなきゃダメだから、そういう時役に立つと思う。
やっぱ可変長対応がいい。
269 :
1 ◆GqrOSDYjeQ :2008/06/02(月) 00:00:34
続き。
/* アス */
BinToStrA(LPBYTE lpData, DWORD dwSize);
/* ウニ */
BinToStrW(LPWORD lpData, DWORD dwSize);
lpDataに変換バイナリデータ
dwSizeに変換するバイトサイズ
という仕様なんだけど、実はこれlpDataのバッファサイズが
文字列変換後のバッファサイズを満たしてないと
オーバーフロー起こすというミラクルな仕様。
バッファサイズチェックする仕様にするべきなんだろうけど
面倒だったので修正しないまま公開してるから突っ込まないでくれw
戻り値を変換後のデータサイズにしてるんだけど、これは引数を
もう一つ設けてそっちに格納させて戻り値をFALSE or FALSE以外に
させたの方がいいんだろうかと迷い気味。
270 :
1 ◆GqrOSDYjeQ :2008/06/02(月) 00:09:49
すまない。
別関数のStrToBinのこといってた
BinToStrは逆でReadProcessMemoryとかの用途で使用
バイナ、リ? え、文字列をintとかdoubleに変換するってこと?
どうでもいいか。 どうでもいいついでに、C++とかjavaとかC#やんねーの?
272 :
1 ◆GqrOSDYjeQ :2008/06/02(月) 01:47:04
>>271 こういう場合、バイナリって表現は間違ってたか
パックとかそういった表現の方が正しいのかな。
まあ、あまり気にしないでくれw
C++とC#はやった事ないけどJavaは学生時代やった事あるよ
もう覚えてないけどListener使って簡単なアプレットまでやった気がする。
その当時わからなかったけど今思うとあれはウィンドウプロシージャ
みたいなものだったんだなぁ。
JavaもC#もそうだけどガベージコレクション機能はメモリ管理気にしなくて
すごく便利だけど、俺が組むと多分変な組み方してオブジェクト参照させたままで
リークさせたりとかガベージコレクションの罠にはまりそうだw
>>272 ああ、あんま気にしてねー。 俺の認識が一般的でない可能性も無視できないくらい大きいから。
まぁ、後でちゃんと具ぐる。 たぶん。 ぐぐってもわかんねーか?
いや大丈夫だ! なんとなくそんな気がする。 < 酔ってる。
C++とかjavaってのは、OOPな意味でかいた。 そのほうが直感的な気がしたから。
あ、あと、pureC だけよりは、転職有利な気がしたから。 < 後付
スレが建ってから1年と半年以上が経っているというのにまだこのレベルか・・・
まぁ分からない事や調べたい事があったら何でも訊くと良いよ。
275 :
1 ◆GqrOSDYjeQ :2008/06/02(月) 22:02:57
>>273 そうか酔ってるのかw
そういえば本格的にオブジェクト指向プログラミングに
挑戦した事ないなぁ。
Cに固執してるわけじゃないんだけどCをもっと深く理解したいと
思っていて、でも"どこまで"が自分にとって納得できるのかと
聞かれると"どこまでも"という答えにたどり着くんだよね。
どの辺りで別言語に移るかという見極めは難しいw
俺だけかもしれない
>>274 まだこのレベルなんだ。
でも、スレ建てた当時より1歩ぐらいは進んでると思うんだwwww
それにしてもスレ立てて1年半でたった300レスぐらいしか
進んでないのと俺が未だにココに住み着いてる事が驚きだ。
276 :
1 ◆GqrOSDYjeQ :2008/06/02(月) 22:39:08
今日、MakeSureDirectoryPathExistsを使って
ディレクトリ自動作成する関数作ってたんだが、
UNICODE対応関数がなかったんでしょうがなく
WideCharToMultiByteを使ってUNICODE→ASCIIに変換かけていた。
実装してる最中に一つ疑問があった。
パラメータのCP_ACPやCP_THREAD_ACPのフラグがあったんだが
それがいまいち理解できない。
とりあえず調べてみてCP_THREAD_ACPがよさげ的な事を
かかれていたからそれ使ってるんだが。。。
今度改めて調べてみるかー。
>>257の最後に記したURLのコンサルに参加してきた
話をしたり聞かせてもらったりで、普段そういうビジネスとかを
観点とした会話は中々する機会がないからそれなりに有意義な
時間を過ごせたんじゃないかと思う。
(少なくとも休日一日中コード書いてるよりはアクティブだw)
コンサルの中で
「その年齢でこういう所に来る人は非常に珍しいですね」
と聞かれて俺が
「今の現状で果たして1年後、自分がどうなっているのか不安だからです」
と答えると相手は
「不安と思うのは不満があるからだと思います」
という考えを聞かせてくれたのが一番印象に残ってる。
その現状というのは職場という意味だったんだけど、
あえて職場という単語を出さなかった。
いわれて再認識したけどやはりそういう事なんだなと思うw
ただ、最近の転職活動に関しても疑問がでつつあるので
いったん活動をやめて自分を見つめなおす為に
色々なセミナーに参加して色々な人の話とか聞いてみたい
と思っていたり。
そしてまたコテハン忘れてしまったwwww
ぬふぅ
279 :
デフォルトの名無しさん:2009/03/12(木) 10:38:04
あげ
スルー推奨