Win32API質問箱 Build18
レス数が1000を超えています。これ以上書き込みはできません。
0001 ◆Manna2uCLg
NGNGやさしいオジサマ達が、熱く暑く答えてくれよう。
でも最低限、最新スレくらいは質問する前に検索を。
過去スレ・参考は>>2-5くらいを参照するッス!
0002 ◆Manna2uCLg
NGNGBuild17:http://pc5.2ch.net/test/read.cgi/tech/1077470361/
Build16:http://pc2.2ch.net/test/read.cgi/tech/1073830065/ ★
Build15:http://pc2.2ch.net/test/read.cgi/tech/1069339866/ ★
Build14:http://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
Build13:http://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
Build12:http://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
Build11:http://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
Build10:http://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
Build9:http://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
Build8:http://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
Build7:http://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
Build6:http://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
Build5:http://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
Build4:http://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
Build3:http://pc.2ch.net/tech/kako/1017/10170/1017072275.html
Build2:http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Build1:http://pc.2ch.net/tech/kako/991/991576947.html
(★は「いやー ごめんなさい。」に巻き込まれた模様)
- MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/index.html
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
http://www.google.com
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGこのエラーコードって簡単に調べる方法ないですか?
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGVisual C++ エラールックアップ
00085
NGNGヘッダーファイルとかに定義されては無いんでつか?
0009デフォルトの名無しさん
NGNGLPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // 既定の言語
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// lpMsgBuf 内のすべての挿入シーケンスを処理する。
// ...
// 文字列を表示する。
MessageBox(NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION);
// バッファを解放する。
LocalFree(lpMsgBuf);
0010デフォルトの名無しさん
NGNG00115
NGNG”#define ERROR_INVALID_HANDLE 6L” でいいや
でもCreateFileは、うまくいってみたいだしぃー
ハンドルも返ってきてるし渡してるしぃ・・・ブツブツ・・・
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGエラーコードを取得しているに1票
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG例えば、画面左端にマウスカーソルがある時に、さらに左に
動かしてもその移動量が取りたいのです。
DirectPlayならできるのはわかったんですが、それだけの為に
DirectX必須にするのも考え物なので…。
0017デフォルトの名無しさん
NGNGDim hFile As Long
Dim udtProcInfo As PROCESS_INFORMATION
hFile = CreateFile( _
"OUTPUT.txt", _
GENERIC_WRITE + GENERIC_READ, _
FILE_SHARE_READ, 0,CREATE_ALWAYS, _
FILE_ATTRIBUTE_NORMAL + FILE_FLAG_OVERLAPPED, 0)
ZeroMemory si LenB(si)
si.cb = LenB(si)
si.hStdOutput = hFile
si.hStdError = hFile
si.dwFlags = STARTF_USESTDHANDLES
rc = CreateProcess( _
0, "printf.exe", 0, 0, 1, 0, 0, 0, _
udtStartInfo,udtProcInfo)
OUTPUT.txtは出来ました。
CreateProcessも一応通ります。
printf.exeは main(){printf("\nhelle world");}です。
でもOUTPUT.txtは、空のままです。
CreateProcessの5番目のパラメータを0にして
notepad.exeならうまく行きます。
なんでじゃい!?
0018デフォルトの名無しさん
NGNGフラグセットを+演算子で記述するのは始めて見た。
最上位ビットがおかしくなるかもしれない。
ま、最上位ビットまで使うフラグはあまりないけど。
0019デフォルトの名無しさん
NGNGMFCのDLLを作成しているのですが
OnIdleイベントが発生しないんです。このメンバ関数って
もしかしてEXE(アプリケーション)のみ有効なメッセージ制御なのでしょうか?
DLLの場合 これに変わる処理ってどれにあたるかご存知ありませんか?
要はInitInstanceで構築したビューにメッセージキューがない場合
(ユーザーが何も命令を送らない間)
常に発生させたいです
0020デフォルトの名無しさん
NGNG前にも見たことあるんだけど、例えば WS_CAPTION + WS_BORDER だけでもバグるよな。
0021デフォルトの名無しさん
NGNGOnIdle()は、メッセージキューがなくなる度に一回だけ呼ばれるって意味。
WM_TIMERなどの定期的なメッセージ処理があれば、
OnIdle()もそれに従って呼び出される。
また、逆にWM_TIMERでのOnIdle()呼び出しを避ける手法もMSDNに掲載されてる。
0022デフォルトの名無しさん
NGNGあえて「+」を使うことがあるみたい
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGメイドロボだし
0027デフォルトの名無しさん
NGNGMENUITEM "abc", 101, CHECKED
と書くと「v」みたいな印が abc の隣に表示されます
IEのメニューでも表示→ツールバー以下のメニューで
いくつかの項目のON/OFFを選択できますが、
この部分の仕組みに似ていると思いました
で肝心の質問なのですが、この CHECKED を付けても
ただ単に印がつくだけのようですが、ラジオボタンのように
いくつかの項目がグループになっていてどれかを選択すると
自動的に印が移動してただひとつだけが選択されている、とか
チェックボックスのように、選択するたびにON/OFFが切り替わる、とか
そういった自動機能をリソーススクリプトで書くにはどうしたら
いいのでしょうか?
もしかしたら、ないのでしょうか?
自分で GetMenuState() とか CheckMenuItem() とかを
プログラム内で使うのでしょうか?
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNGMSDN libraryのラスタオペレーションPATINVERTとかの説明に
「指定したパターン」
とあるのですが、そのパターンはどうやって指定するんでしょうか?
0030デフォルトの名無しさん
NGNG指定したHDCに関連づいてるブラシを利用するはず。
どんな風にパターン作るかは、MSDNのCreateBrushIndirect()あたりでも見てくれ
0031デフォルトの名無しさん
NGNGそんな自動でやってくれる機能なんて多分無い。
APIにもそういった関数はないし。
だから、全部自前でやることになると思う。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGGUI周りで楽をしたきゃ、素直にMFCに移行した方がええで。
0034デフォルトの名無しさん
NGNGMFCに移行してもしょうがないだろ。
0035デフォルトの名無しさん
NGNG(`・ω・´)っ[ TMenuItem::RadioItem ]
0036デフォルトの名無しさん
NGNGレスありがとうございます。
ということはDLLであってもフレームウインドウ等のMN_TIMER
をメッセージとして追加する事で
OnIdleを有効にすることが可能となるのでしょうか?
希望となるヒントをいただき感謝しております。
003729
NGNGレスありがとうございます。
>指定したHDCに関連づいてるブラシを利用するはず。
そのHDCはどうやって指定するのでしょうか?
下記のようにやってみましたが真っ黒になりました。
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
HDC hdc2 = CreateCompatibleDC(hdc);
HBRUSH hbr = CreateSolidBrush(RGB(255, 255, 0));
SelectObject(hdc2, hbr); // 黄色ベタ塗り
// 青と黄色の模様が描かれたビットマップ(80 x 40)
HBITMAP hbmp = LoadBitmap(hInst, "MYBMP");
SelectObject(hdc, hbmp);
// 青はそのままで黄色→黒になる?
// 「黄色いビットマップ使ってSRCINVERT」と同じ?
BitBlt(hdc, 0, 0, 80, 40, hdc2, 0, 0, PATINVERT);
0038デフォルトの名無しさん
NGNGいくつか間違いを犯しているわけだが…
まず、画面のHDCにHBITMAPのSelectObjectはできない。
戻り値を確認しましょう。
次に、パターンを指定するのは描画先に指定する。
つまりBLACKNESS等と同様に6〜8番目引数は使わない。
最後に、成功したとしても青はそのままじゃなくて白になる。
0039デフォルトの名無しさん
NGNG初回から押しっぱなしの取得をするにはどの様にすればよいのでしょうか。
case WM_KEYDOWN:
int key_code = (int)wPlam
上記の方法ですと、最初のときだけ押しっぱなしにしている扱いにならず困っているのですが。
どうかご教授お願いします。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGGetAsyncKeyState
0042デフォルトの名無しさん
NGNGこういうのも
static BOOL key_code[256];
case WM_KEYDOWN: key_code[wParam]=TRUE; break;
case WM_KEYUP: key_code[wParam]=FALSE; break
//使う時
if(key_code[VK_○○]) 処理;
メモリがもったいなきゃ32バイト確保して各ビットごとに割り当てるとか
004339
NGNG>>42
レスありがとうございます。
GetAsyncKeyStateや、
WM_KEYUPを併せて使用する方法も検討したんですが、
ここまで簡素にできるとは思いませんでした。
両方とも試してみます。
004437
NGNGありがとうございます。
>まず、画面のHDCにHBITMAPのSelectObjectはできない。
>戻り値を確認しましょう。
はい。確かに戻り値は0でした。
>次に、パターンを指定するのは描画先に指定する。
>つまりBLACKNESS等と同様に6〜8番目引数は使わない。
要するに、PAT〜を指定したときには
・ビットマップなんて関係ない
・矩形をハッチ等指定したブラシで埋め尽くす
・ってことはPatBlt()と同じ
ということで間違いありませんか?
0045デフォルトの名無しさん
NGNGって、ペゾルト本のパクリ?
0046デフォルトの名無しさん
NGNG> ってことはPatBlt()と同じ
ほぼ正解。
ほぼというのは、PATPAINTだけはコピー元が必要だから
それだけはPatBltじゃ無理。まぁ、見落としてるだけだと思うが。
0048デフォルトの名無しさん
NGNGwin32apiはまだまだ使えるのでしょうか?
0049デフォルトの名無しさん
NGNG使える。Windows 95 のときも 3.1 のアプリ動いたでしょ。
0050デフォルトの名無しさん
NGNGキーダウン中にマウス操作でkillFocusしてキーを放すとフラグがクリアされません。
0051デフォルトの名無しさん
NGNGMS謹製のIntelliPoint4.1でもそのバグがあったね(w
0052デフォルトの名無しさん
NGNGそもそもどうやってステレスにしてんのか原理が分からんし
悪いソフトをつくろうとしてるわけじあqwせdrftgyふじこl
0053デフォルトの名無しさん
NGNGCreateWindowEx
0054デフォルトの名無しさん
NGNGHDCで描画したいのですが、画像ファイルを読込むのに便利なAPIはないでしょうか?
LoadImageは、BMP形式しか読込めないので却下です。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNGOleLoadPicture
0057デフォルトの名無しさん
NGNGSusie Plugin
0058デフォルトの名無しさん
NGNGGDI+
WIN32APIと言えるかどうかは知らぬ
ttp://www.kumei.ne.jp/c_lang/sdk4/sdk_336.htm
0059デフォルトの名無しさん
NGNGどうやればよいの?
その「取り除きたい」と思うタイミングにおいて、そのメッセージはそれ以上来ないという状況です。
つまり取り除き処理直後に飛んできた、ということはないです。
0060デフォルトの名無しさん
NGNGPeekMessage
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGありがと♪
006350
NGNGNUMLOCKをDOWN
NUMLOCKをUP
テンキーの"1"をUP ---> WM_KEYUP VK_END
0064デフォルトの名無しさん
NGNGint main(void)
{
MSG msg;
GetMessageSuper(&msg);//☆
printf("%c\n",msg.wParam);
return 0;
}
//☆みたいにウィンドウズメッセージを戻り値かポインタ引数で
得ることが出来るAPIはないでしょうか。
何も無いときはそこ(OS)でとどまっています。
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
これのコールバックを経由しなくてもいいバージョンです。
0065デフォルトの名無しさん
NGNGで、Get/Translate/Disptachをセットにして呼べばどうにかなるんじゃない?
ただ、その後でメッセージを処理してもWindowProc内と同じことにはならないと思うぞ。
006664
NGNGありがとうございます。今調べていますが、難しいです。
後、>>64に追加で、いままでは以下のような感じで、
MSGの残骸を利用してやっていました。
void hoge(HWND hwnd)
{
MSG msg;
while(1)
{
GetMessageSuper(&msg);
if(msg. ...) ;
}
}
void GetMessageSuper(MSG*msg)
{
if(!GetMessage(*(&msg),NULL,0,0))exit((*msg).wParam);
TranslateMessage(*(&msg));
DispatchMessage(*(&msg));
}
0067デフォルトの名無しさん
NGNGあれは
(WNDPROC)GetWindowLongPtr(msg.hwnd, GWLP_WNDPROC)(msg.hwnd, msg.message, msg.wParam, msg.lParam);
を呼んでるだけだから。
006948
NGNGレスありがとうございます。
今学ぶなら.netの方がいいのでしょうか?
少しですがwin32apiが使える状態です。
基本的にジャンルが違う気もしますが
0070デフォルトの名無しさん
NGNGLPARAMの30bit目じゃダメなのか?
0071デフォルトの名無しさん
NGNGんーその質問は答えるのが難しいねぇ。おいらの場合は業務で
使う or 使いたい言語を学習するし。
ただまぁあれだ、.NET Frameworkは国際化対応を結構真面目に
考慮してる辺りが、おいらの業務にドンピシャなので、次回のプロ
ジェクトでは.NET Frameworkで進めようと画策中。
それに必要であれば.NET Frameworkでの開発でもWin32APIを
叩けるしね。
0072デフォルトの名無しさん
NGNG初歩的な事で申し訳ないのですが
(だからこそ載ってなくてわからないんだけど)
兄弟ウィンドウ同士が重なり合った場合
その前後を決めるものは一体何なのでしょうか
作りたいのは
メインウィンドウ
┣子ウィンドウA
┗子ウィンドウB(スタティックスタイル)
┗ボタンやエディット
という状態のときに(本当はもっとごちゃごちゃしてるんですが)
この子ウィンドウAを常に最前面に出しておきたいのです が
SetWindowPosでHWND_TOPMOSTを指定しても
子ウィンドウBの下に表示されてしまうので
兄弟ウィンドウの間では
Zオーダーがどうとかアクティブがどうとか
そういう問題ではなくなるのか??と思ったんですが
HWND_TOPを指定すると
ちゃんとウィンドウAがとりあえずは最前面に表示されましたので
コレは一体どういうことなんだろうって感じになってます
超初心者の質問ですいません おねがいします
0073デフォルトの名無しさん
NGNG音量を制御したいです。
具体的には
WAVEを聴きながらMIDIの音量(dB?)を監視していて
検知したらWAVEの音量を下げるという感じです。
だいたいは実現方法がわかったのですが、
MIDIの音量の監視が出来ません。
MIDI音源のOUTを取得しそのまま出力するにはどうすればいいのでしょうか?
具体的な関数名を教えていただければうれしいです。
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG仮想midiドライバ書いて、実際のドライバにリダイレクトさせたら?
007673
NGNGレスありがとうございます。
wave再生は割と簡単に出来たのでもう少しがんばれば
できるかと思いましたが、仮想midiドライバとなると
難しそうですね。
よく分からないのですが、
どのような感じになるのでしょうか?
007772
NGNGありゃー やっぱ僕
基本がわかってないみたいですね
となると兄弟ウィンドウの前後関係(?)を決める要因は
なんなんでしょうか
それとも兄弟関係に前後も何も存在しないという
考え方なのでしょうか
HWND_TOPは使えてHWND_TOPMOSTが使えない理由は
どういうことなんでしょうか
0078デフォルトの名無しさん
NGNGGetDlgItemText(hDlg, IDTXT, test1, (int)sizeof(test1));
GetDlgItemText(hDlg, IDTXT, test2, (int)sizeof(test2));
MessageBox(hDlg, test1, "test1", MB_OK);
MessageBox(hDlg, test2, "test2", MB_OK);
こうするとメッセージボックスにtest1は表示されるのですがtest2の方は何も表示されません。
何が異なるのでしょうか?
また、test2の宣言で表示させる方法はあるのでしょうか?
0079デフォルトの名無しさん
NGNGLocalFreeも忘れるなよ、約束だ!
0080デフォルトの名無しさん
NGNGGetDlgItemText(hDlg, IDTXT, test2, (int)sizeof(test2));
を
GetDlgItemText(hDlg, IDTXT, test2, 128 );
にするのも忘れずにな!
0081デフォルトの名無しさん
NGNGAPI以前の問題で
char test1[128];
と
char* test2;
の違いを理解していないのではないかと思われる。
0082デフォルトの名無しさん
NGNGWin32APIのlstr〜系の関数は使い分ける必要があるんですか?
0083デフォルトの名無しさん
NGNG基本的には Zオーダー順になる。ただし、WS_CLIPSIBLINGS が付いている場合には、
Zオーダーとは関わり無く兄弟ウィンドウによってクリップされてしまうので、
普通に重ね合わせたような表示にはならない。
WS_TRANSPARENT とかの有無によっても再描画時の見かけは変わってくるし。
これでOK?
0084デフォルトの名無しさん
NGNGlstr〜、wsprintf 等の Win32 側の関数は、引数が TCHAR を基本としているので、
ユニコードでビルド可能。
0085デフォルトの名無しさん
NGNGそれを言うなら CreateDIBSection() だろ。
0086デフォルトの名無しさん
NGNGしかしwsprintfは標準ライブラリのsprintfに比べて貧弱だったりするので注意。(BCB6の場合。VC++は知らん)
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGDIBは素人にはお勧めできない。
使い方間違えると、あっという間にメモリリークさせてOSぶっ飛ばす諸刃の剣。
0091デフォルトの名無しさん
NGNGどこをどう読めばそういう結論が出るのか小一時間(ry
0092デフォルトの名無しさん
NGNGじゃなくて、BCBのsprintfが、wsprintfより貧弱かもっつーことだろ。
0093デフォルトの名無しさん
NGNG逆だろ
0094デフォルトの名無しさん
NGNGメモリーリークするってMSDNに書いてあるのでwsprintfとlstr系に統一した
ランタイム使いたい人は_bigenThreadExとかつかえばいいんだけどね
009582
NGNGありがとうございます。
ユニコードの環境ではプログラミングしたことがないので知りませんでした。
Windowsでの文字列絡みのプログラミングでは
できるだけWin32APIを利用した方が良いということですね。
0096デフォルトの名無しさん
NGNG_bigenThreadExって(藁
どうせ、なかでCreateThread呼んでるんだし、
最初っから_beginthreadex呼んでいいと思うんだけどね
0098デフォルトの名無しさん
NGNGそうでもないよ
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGbigen早染めw
0102デフォルトの名無しさん
NGNGどっちでもいいけど、とにかくsprintfもwsprintfも仕様が決まってるだろ。
BCBはこれらに対して仕様外な何か特別なことしてるのか?
0103デフォルトの名無しさん
NGNGwin32のlstrcpyと標準Cライブラリのstrcpyですが
これはどう使い分けるのでしょうか?
0104デフォルトの名無しさん
NGNGそういうことなんじゃねーの?
>貧弱
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNGwsprintfはそこまでも機能が無いということだろ。
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG>>86だと、BCB6のwsprintfとVC++のwsprintf、
またはBCB6のsprintfとVC++のsprintfがあたかも別物のような書き方だから。
wsprintfもsprintfもそれぞれWin32APIとCで仕様が決まってるんだから、
「BCB6の場合。VC++は知らん」なんて、二つのコンパイラを区別する必要ないじゃん?と。
0112デフォルトの名無しさん
NGNG86 は VC++ のことは知らんから、「VC++ は知らん」って言ってるだけでは?
漏れは逆に VC++ 使いだから、BCB6 の sprintf が ANSI 準拠かどうか知らんし。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG持って無くてもそれくらいはわかるだろう・・・
何十年も前に発売されたものじゃないんだから・・・
0115デフォルトの名無しさん
NGNG「それ」って具体的に何?sprintfのこと?VCやBCのsprintfはANSIのより機能が豊富なの?
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG初めの方をペゾルド本と見比べてみたけど
特にパクった文章は見当たらないんだが。
0118デフォルトの名無しさん
NGNGWS_CLIPSIBLINGSって難しいね
挙動が理解できない
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGパクりかは知らないが、俺はあれでw32apiプログラミングを学んだ。猫より記述が正確、構造がマシ(猫の破綻しきった
論理構造よりはマシという意味)で変数の命名規則もそれほど腐ってなかったから。
0121デフォルトの名無しさん
NGNG【漏れは】猫でもわかる質問スレ【猫以下です】
http://pc5.2ch.net/test/read.cgi/tech/1054813207/
でもレバーの指摘はちょっと笑った。
0122デフォルトの名無しさん
NGNGなんつーか、出てくる項目とその並びがほとんどペゾルト本なんだよな。
いきなりUnicode対応のための項があったり、最後にちょこっとWinSockの項があったり。
とか言いながら、俺も結構勉強させてもらったが。
0123デフォルトの名無しさん
NGNGWinXPvb6sp5の環境だとZip32.dllのところでオーバーフローしてしまいます。
これって直せるんでしょうか?ちなみにこんな感じです。
Dim FN As String
Dim SendStr As String
Dim Ret As String * 255
SendStr = "-r9 " & """" & FN & ".zip" & """" & " " & """" & pasu & "\" & """" & " " & """" & FN & ".bmp" & """"
Zip Me.hWnd, SendStr, Ret, 255
Retの数上げても意味ありませんでした。
VBのスレでも聞いてるんですが荒れてて答えかえって来そうに無いので
お願いします
0124123
NGNGそちらは98もXPも問題なく動いてます。
0125デフォルトの名無しさん
NGNGあぁ、それは確かに。ビットマップの項目が長いところとかね。
0126デフォルトの名無しさん
NGNG鳥肌が立つほど気持ち悪かった
0127123
NGNG誤作動するんですよ、もっといい書き方ありそうですけど、、
初心者で申し訳ないです
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGzip32.dllはよくしらんが、-r9の後にスペースっていらんの?
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNGすれ違いだが...
Private Function DQ(Str As String) As String
DQ = """" & Str & """"
End Function
SendStr = "-r9 " & DQ(FN & ".zip") & " " DQ(pasu & "\") & " " & DQ(FN & ".bmp")
とかするのは、どうだろうか ?
0132デフォルトの名無しさん
NGNGその指摘したの漏れだ・・・。思うに猫の中の人はBASICで論理構造がガチガチに固まってるんじゃないかと。
0133デフォルトの名無しさん
NGNG0134123
NGNG-9rの後にスペースありますし98だと正常に動きます。
>>131
なるほど〜
すれ違いな事にも気づきませんでした、すみません
>>133
passとかaddとかつけたいけどなんかだめな気がするんで、、
すれ違いなようなので去ります。
ご迷惑おかけしました
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG> passとか
... pasu の方がましかも...。
0137デフォルトの名無しさん
NGNGpathのことかorz
0138デフォルトの名無しさん
NGNG013972
NGNG遅レスごめんなさい
クリップっていうのはどういうことなんですか?
前々からWS_CLIPSIBLINGSの説明とかでもでてきたのですが
検索して調べても本文と照らし合わせて納得のいく
説明がしてあるのは見つかりませんでした・・
そしてこの
メインウィンドウ
┣子ウィンドウA
┗子ウィンドウB(スタティックスタイル)
┗ボタンやエディット
子ウィンドウ二つにはWS_CLIPSIBLINGSが設定してあります。
コレはただ 設定してないで同じ位置に配置した場合
一方の子ウィンドウ他方の子ウィンドウに描画を行ってしまうから
と 勝手に推測して設定したものでありますが
よくはわかってないで使ってます
ウィンドウ Zオーダー 色々な概念を
正確にイメージできていないような気がします・・
0140デフォルトの名無しさん
NGNG> Dim Ret As String * 255
> Zip Me.hWnd, SendStr, Ret, 255
Retも怪しいんですが。
本当はByte型のテーブルにして、実行後にSJIS→UNICODE(String)コンバートするんじゃないかと。
0141デフォルトの名無しさん
NGNGそのタイマをKillTimerしても問題ありませんか?
0142デフォルトの名無しさん
NGNG問題ありません。
つか、よくやることでしょう。
014378
NGNGありがとうございます。
81さんのまったく仰るとおりなんでググって出直してきます。。。
動的に長さが変化する文字列の取得がしたかったんですが
string使うのかな・・・
てか↓逝きですなorz
http://pc5.2ch.net/test/read.cgi/tech/1054813207/l50
0144デフォルトの名無しさん
NGNGその辺の変換はVBがやってくれるよ。
0145デフォルトの名無しさん
NGNG文字列の長さを取得するwin32apiはlstrlen
勉強してらノシ
0146デフォルトの名無しさん
NGNGこの場合はGetWindowTextLength(GetDlgItem(hDlg, IDTXT))だと思うが。
0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNGUCS-2/UTF-16
0150デフォルトの名無しさん
NGNGサンクスコ
ついでにWideCharToMultiByte関数は現在のロケールのコードページに基づくMBCSに変換すんのかな?
コードページってキャラクタセットと同じ?
0151デフォルトの名無しさん
NGNGぐぐれ。つかMSDNの説明読んだ上でそんな質問してるのか?
0152デフォルトの名無しさん
NGNG日本語( Shift_JIS ) は コードページ 932 だ。
WideCharToMultiByte( 932, (以下略) ); と指定するのだぞ。
0153デフォルトの名無しさん
NGNGそれではまずい場合は
WideCharToMultiByte( CP_ACP, (以下略) );
まあMSDNを見れば一目瞭然なわけだが
0154デフォルトの名無しさん
NGNGまず、全ての標準コントロール (static を含む。NT系列では Comboを除く) は、CS_PARENTDC クラススタイルを
持っているので、描画は親ウィンドウのデバイスコンテキストにを用いて行われます。つまり描画について考える際には、
クリッピング領域とWM_PAINTの発行順だけを考慮すればOKです。デバイスコンテキストは共通だから。
次に、WS_CLIPSIBLINGS は単に全ての兄弟ウィンドウ(の矩形)への描画が行われないように描画範囲をクリップ
するって感じの属性で、Z-Orderは考慮されません。片方を他方の前に持ってきたからといって、前のほうが見える
ようになるわけではありません。
・・・具体的に何がしたいのかを書いてもらった方がもうちょっと実のある返事を書けるような気がする。
0155139
NGNGレスありがとうございます。理解した・・と思いましたが
できませんでした。
わかっていないのか・・_| ̄|○
具体的に作りたいのは自分が何問、何ページ、どの問題集を解いたかを
その日付ごとに教科単位で分けた子ウィンドウBに
(実際には構造体型配列に)記録しておけるプログラムです。
国数理社英
4/11□□□□□
4/13□□□□□
4/14□□□□□ □=子ウィンドウB
こんな感じになります。
この子ウィンドウBにはさらにプッシュボタンを持つ
ボタン子ウィンドウやらエディットやらがつまっています。
そしてもうひとつ、常にメインウィンドウの右下の最前面に存在し
スクロールバーをスクロールしても
メインウィンドウ上での位置を変化させない子ウィンドウAを作り
ここに正解確率やら、こなしたページの数やらを計算して
表示させたいのですが・・
この常に最前面に表示させるという方法がわかりません。
0156139
NGNGWS_CLIPSIBLINGSを外してAにSetWindowPosのHWND_TOPMOSTを使うと
子ウィンドウAとBが重なっているときに
Aが前面に表示されているんですが
下にあるBのエディットに入力できたりしちゃうので
TOPMOSTは常に最前面に出してくれるんじゃなかったのか と
思う一方 自分は最善面という概念もわかっていないような
感じがします。
A、Bの両方にWS_CLIPSIBLINGSを設定して
AにSetWindowPosのHWND_TOPを使ったら
Aは前面に表示されているし重なったとき下のBを操作することも
できなかったので自分の思うようになったのですが
なぜこうなったのかわからないので生きた心地がしません。
長レス&超ド級初心者で申し訳ありません
助けてください_| ̄|○
0157デフォルトの名無しさん
NGNGhttp://www.topposystem.co.jp/DL/Win32API/GUI/%E3%83%9A%E3%82%A4%E3%83%B3%E3%83%88%E3%81%A8%E6%8F%8F%E7%94%BB%E3%81%AE%E6%A6%82%E8%A6%81.html
0158139
NGNGサンクス!!!
まだちょっとしかみてないけど
今の自分にぴったりかもしれません
見てみます
0159デフォルトの名無しさん
NGNGググってもvbに関しての情報がなくつまってます・・・
誰か助けてくだされ
0160159
NGNG失礼
0163デフォルトの名無しさん
NGNG0165159
NGNG159&160は自分です。
使い方はもちろんのことわかっております。
検索しても情報が少なく、accessについてるやつ引っ張れそうなんで
"解決"判を押させてもらいました。
スレ汚しスマソ
0166デフォルトの名無しさん
NGNGどうやって解決した?
気になるじゃないか。
0167デフォルトの名無しさん
NGNG0168159
NGNG0169デフォルトの名無しさん
NGNG質問があったけどまた後で来まつ。ノシ
0170159
NGNG解決といこうとしたんですが・・・
ちっと戦ってます。
ACCESSのSHChangeIconDialogに関して情報が載ってるソースあったんで
Shell32.dllから隠しでもってきて使ってみました。
したらばmsgboxが出てきて、文字化けたような
"ファイルxxxxxxxxがみつかりません。"と表示され
%SystemRoot%\system32\SHELL32.dll内のアイコンのリストビューがでます。
ンデ戦ってます。
0171デフォルトの名無しさん
NGNGstrBuff = StrConv("c:\winnt\explorer.exe" & vbNullChar, vbUnicode)
Call SHChangeIconDialog(Me.hWnd, strBuff, 0, 0)
で行けたにょ(Win2K)。細かい部分は任せた。
0173デフォルトの名無しさん
NGNG音楽が流れていると音が細切れになることから、これはリソースを独占して他のスレッドにリソースがうまく行き渡っていないからなのだと思うのですが、ここまでの解釈は合ってますよね?
で、うちのPCは常時CPU使用率が100%付近にきていて、しょっちゅうフリーズしてしまうという状況なのです。
これが上述の自分で作ったプログラムの症状と酷似している事から、どうやらメッセージループでリソースを独占している常駐ソフトがある、と睨んだところまではいいのですが
一通りのスタートアップ&サービスを止めてみたのですがだめぽでした。
こういうリソースを独占して他のアプリに迷惑をかける常駐ソフト(スレッド?)を見つける手段というのはあるのでしょうか?
また、クロック数の高いCPUに取り替えれば力押しでフリーズしないようになるのかどうか聞きたいのですが。
参考までに、ここの方と似たような症状です。
http://www21.ann.co.jp/pas/bbs6/lg115620.html
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGそれ本気で知りたきゃ、実際に配布して試してもらえば?
0177デフォルトの名無しさん
NGNGおまえのPCだけがおかしいんじゃないのか
ウィンドウだけのプログラムでそんなことにはならない。
0179デフォルトの名無しさん
NGNG> こういうリソースを独占して他のアプリに迷惑をかける常駐ソフト(スレッド?)を見つける手段というのはあるのでしょうか?
タスクマネージャ
Windows Xp 質問スレ 86ページ目
http://pc5.2ch.net/test/read.cgi/win/1081622045/
0180デフォルトの名無しさん
NGNGメッセージループでGETMESSAGEだっけを使ってない。のかも??
PEEKMESSAGEのみだとそんな感じだったような気がする。
WHILEでCPUリソース食ってるとかそんなんじゃなかったかな??
あと、スペル間違ってるかも。
0181139
NGNG子ウィンドウ の項目までとりあえず読ませていただきました
まず クリップっていうのは
描画するにあたって関係のない領域を
描画する領域から排除するっていう感じでよろしいのでしょうか??
本文中に
"システムはクリッピング リージョン外の描画を廃棄 (クリップ) するため"
と一応しっかり書いてあるのですがちょっと自信がなくて・・
それで、
>兄弟ウィンドウは、 Z順序と逆の順番でWM_PAINTメッセージを受け取ります
>このため、 Z順序の最上位の (いちばん前の) ウィンドウは、
>最後にWM_PAINTメッセージを受け取ります。
つまりはZオーダーというものは描画処理の順番を決めることで
前後関係をうまく表現しているだけであるということなんでしょうか。
Zオーダーが下であるウィンドウからWM_PAINTは呼ばれ
を指定したウィンドウは描画する際に
兄弟ウィンドウの領域をクリップするなら
を指定した兄弟ウィンドウ同士が重なる場合は
Zオーダーと逆の順番で重ねられたカタチになるのかな・・
使い慣れない言葉に正確にイメージできてるかわからない概念で_| ̄|○
変な文章になってたらすいません。
再び おねがいします。
0182デフォルトの名無しさん
NGNG上記をコンソールウィンドウのように、printfの代用としてメッセージ表示に用いているのですが、
僕自身がEM_REPLACESELを使用しているためか、表示処理がかなり遅く感じます。
(可能な限り、行単位で表示できるように処理してはいますが)
より速度を求める場合は、ウィンドウに直接書く(TextOut)しかないのでしょうか?
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG> 464 名前:デフォルトの名無しさん[sage] 投稿日:04/03/10 21:12
> >>463
> みなさん大人しくfopen使ってるんすかねー?
> 466 名前:デフォルトの名無しさん[sage] 投稿日:04/03/10 21:30
> >>464
> 使ってる。ローカルファイルの一般的な展開にわざわざWin32APIを使うのは稀。
> MFCのCFile系統も必要なし。
> 将来の別プラットホームや別プロジェクトへの移植も考えると、C標準でほぼ十分。
って言ってるけど、結局fopenもW32APIコールに変換されてるんじゃない?と考えてReactOSのソースを見てみた。
msvcrt.dllのfopen.cから_open() (open.c内)が呼ばれ、そこではオープンモードを調査した上でこうしている
hFile = CreateFileA(_path,
dwDesiredAccess,
dwShareMode,
&sa,
dwCreationDistribution,
dwFlagsAndAttributes,
NULL);
ROSのソースであってWindows自体のソースではないが、設計とAPIコール体系を調べた上で書いているようだから
参考にはなるだろう。
0185デフォルトの名無しさん
NGNGあのね。標準関数というのは、その環境でちゃんと動くように作られてるんだよ。
0186デフォルトの名無しさん
NGNGWindowsというかVCのCRTも最終的にはCreateFileを呼んでるけど。
fopenはCの規格に含まれる関数であって、OSのそれじゃない。
ネイティブで実装しているOSがあるかもしれないけど、それは今関係無い。
OSのサービスをC標準に準拠するようにラップするのが普通。
>>184みたいな事を言い出したら、mallocを使っていたとしても
いちいちHeapAlloc使ってますって言わなきゃならんのか?
0187デフォルトの名無しさん
NGNG話は逸れるが、fopen()のオープンモード拡張して排他制御できたらいいとはちょっと思う。
0188デフォルトの名無しさん
NGNG引用もとの発言者がしているのは、標準Cライブラリだけに依存している
プログラムはソースコードレベルで移植性があるよね、という話。
標準Cライブラリが動作する環境ならMakeかけなおすだけで大抵動く。
標準Cライブラリ自体は、あなたの言うとおりOSに依存するので移植性はない。
0189デフォルトの名無しさん
NGNG別に移植性云々じゃなくてたしかにCreateFileのほうがfopenより多機能だが、
大抵の状況では必要ないからfopenで十分だろ、って程度じゃないか?
0190デフォルトの名無しさん
NGNG183氏が
> 前スレ見てて不思議に思った
のは
> > 将来の別プラットホームや別プロジェクトへの移植も考えると、C標準でほぼ十分。
のくだりに関してだから、ここでいう移植とはこういう意味である、という
事でああいう風に書いた。
元発言の主旨はなにか、という話なら多分あなたの言う事が正しいのだろう。
0191デフォルトの名無しさん
NGNGVisual C++ Toolkit 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=272be09d-40bb-49fd-9cb0-4bfa122fa91b&DisplayLang=en
http://msdn.microsoft.com/visualc/vctoolkit2003/
> What is the Visual C++ Toolkit 2003?
> The Visual C++ Toolkit is a free edition of Microsoft’s professional Visual C++
> optimizing compiler and standard libraries ? the same optimizing compiler and
> standard libraries that ship in Visual Studio .NET 2003 Professional!
キタ━━━━(゚∀゚)━━━━!!
さよなら某ランド
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGまだまだ某は生きると思われ
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNGIn general, no. You may use the Toolkit to build C++ -based applications,
and you may redistribute those applications. Please read the End User
License Agreement (EULA), included with the Toolkit, for complete details.
インストールせんとEULA読めんのか。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGWindows 2000/XPについてです。
GetComputerObjectName かと思って試したんですが
ドメインに入っていないマシンだとERROR_CANT_ACCESS_DOMAIN_INFOという
エラーが出てしまいます。
0198デフォルトの名無しさん
NGNGコマンドラインベースだと某のコンパイラの方が使いやすい
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG落として一通りEULAに目通してみたけど、
どこをどう読んだら「商用アプリ不可、$5.0を超える手数料の徴収不可 」になるんだ?
0202デフォルトの名無しさん
NGNG少なくとも、$5.0の解釈は間違ってる。ライセンスの中で$5.00が出てくるのは、第15項だが
これは、terrariumのEULAにも出てくる。
http://www.microsoft.com/japan/msdn/net/terrarium/download/ter_eula.asp
http://www.microsoft.com/japan/msdn/net/terrarium/download/ter_eula_JP.asp
一番下の、LIMITATION OF LIABILITY AND REMEDIES. Notwithstanding any damagesがどーのこーのだ。
上記したterrariumの日本語参考訳の一番下を見ると判るが、「仮令、大きな被害を受け手も、5$以上は
俺ら(Microsoft)は支払いませんよ」という話で、手数料がどーのこーのという話ではない。
0203デフォルトの名無しさん
NGNGここはちょっと英語力に自信が無いから微妙だけど
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGハードウェアが高分解能パフォーマンスカウンタをサポートしてない
PCってあるのでしょうか?
0208デフォルトの名無しさん
NGNGrdtscをサポートしてないCPUだとおもう
pentium以降は大丈夫だろう
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG感じで列挙したいのですが、APIで実現できますでしょうか?
「シリアル 列挙 API」とかでググってたんですが、それらしいAPIが見つから
なかった…(´・ω・`)
0211デフォルトの名無しさん
NGNGでいいじゃん、めんどくさいし
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGHKLM\HARDWARE\DEVICEMAP\SERIALCOMM
0216デフォルトの名無しさん
NGNGウィンドウサイズが変わった時(=このビットマップサイズの元となるHDCのサイズが変わった時)は、
その都度DeleteObject→CreateCompatibleBitmapで良いんでしょうか?
0217デフォルトの名無しさん
NGNG(y:32,x:16)のサイズのフォントを等幅にするにはどうすればいいのでしょうか。
文字のサイズがデフォルトの(16,8)、(40,20)等の時は大丈夫なのですが、
自分が使いたい(32,16)の時はずれてしまいます。
他にポイントとなりそうな、最後から2番目の引数はFIXED_PITCH | FF_MODERNで
最後の引数は、MSゴシックなどです。そこにメモ帳のFixedSysを指定すると、
フォントのサイズが強制的に(16,8)になってしまいます。
0218デフォルトの名無しさん
NGNGどうすればいいのでしょう?
0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNGでやっても無理でした。
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNGFindWindow(NULL, "test");
だとダメみたいだし、
GetModuleHandle(NULL);
で得たハンドルをHWNDにキャストしたらDirectSoundは初期化出来たんですが、
音が鳴りません。
教えてえろいひと!
0223222
NGNGFindWindow(NULL, "")でいけますた。
0224デフォルトの名無しさん
NGNGWin2000以降ならGetConsoleWindow()
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG計算して透過させる方法は知っています。
別の方法で、すでに何かが表示してある位置にビットマップを
表示するとき、透過する色を指定するとそこの部分を表示しなく、
前に表示してあったものが消されずにすむみたいなのがあるなら
教えてください。TextOutでいうSetBkMode(hdc,TRANSPARENT);
みたいな感じです。
0228デフォルトの名無しさん
NGNGその通り。
これが嫌なら、MAXのサイズを前もって確保してみては?
>>217
1文字ずつ表示する。
>>227
BitBltのフラグとかどう?
0230227
NGNGBitBltにそれらしきものがありますね。
今まではStretchDIBitsで表示してたのですが、
それには無かったので、気がつきませんでした。
探してみます。ありがとうございました。
0231デフォルトの名無しさん
NGNGPlatformSDK + Visual C++ Toolkit 2003
この環境でUS MicrosoftのMSDNサイトを見ながら GetConsoleWindow() を
試そうとしたのですが、コンパイルが通りません。
ヘッダーファイルの中には GetConsoleWindow の宣言も確認できます。
また、他のコードではコンパイル&リンクができてるのでパスの問題でも無さそうです。
何が悪いか分かりますでしょうか?
---------------------------------------------------------------------
#include <windows.h>
#include <stdio.h>
#define _WIN32_WINNT 0x0500
int main()
{
HWND hWnd = GetConsoleWindow();
printf( "このコンソールウィンドウのハンドル : 0x%X\n", hWnd );
return 0;
}
---------------------------------------------------------------------
error C3861: 'GetConsoleWindow': identifier not found,
even with argument-dependent lookup
0232デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=59&fi=no
まず、お手数ですがexeのある位置になんでもいいのでビットマップを
用意してください。そして、マクロの名前をその名前にしてください。
コールバックの//1のShowBitmapのコメントを外しても
ビットマップが一つしか表示されないのはなぜでしょう。
ShowBitmap内部の//2のコメントを外したときはちゃんと2つ表示されるのに。
0233デフォルトの名無しさん
NGNGWindowバージョンのdefineくらいは#includeの前にしてみなよ
0235デフォルトの名無しさん
NGNGBeginPaintとEndPaint
あとは自分で考えれ
0236デフォルトの名無しさん
NGNGBeginPaint()が二度呼ばれるから、が原因だな。
BeginPaintは、WM_ERASEBKGNDメッセージを発行するので、
DefWindowProcによって、Bitmapを描画する前に、
WNDCLASS.hbrBackgroundのブラシでクライアント領域を塗りつぶす。
処理の流れとしては、
WM_PAINT発行→BeginPaint呼び出し→WM_ERASEBKGND発行→Bitmap描画→
BeginPaint呼び出し→WM_ERASEBKGND発行(ここで先に描いたBitmapが上書きされる)→Bitmap描画→
となっている。
0239232
NGNGStretchDIBitsの時に表示していると思っていました。
TextOutと違い、ShowBitmapなどの名前でないのは、
その場で表示するわけではないからですね。
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNGそうなる仕様でつ。
0242232
NGNGhdc = BeginPaint(hwnd, &ps);
for(y = 0; y < 10; y++)
for(x = 0; x < 10; x++)
ShowBitmap(hwnd, hdc, SHOW_BITMAP, y * 16, x * 16, 1, 1);
EndPaint(hwnd, &ps);
break;
こんな感じにしたら出来ました。
後、GetDCに変えてみると何回もWM_PAINTに行っているみたいで
CPU率がえらい事になっていましたが、return DefWindowProcを
defaultの所に書かずに関数の最後の所に書いたら直りました。
(どのイベントの時でもDefWindowProcを通るようにする)
しかし、ウィンドウズアプリケーションは難しすぎます。
いったいどのやり方でやるのが一番いいのでしょうか。
0243デフォルトの名無しさん
NGNGこういうやり方をするなら、フレームバッファを構築してそっちで書き換えた方がいいと思われ。
WM_PAINT内は、フレームバッファの内容をBitBltなどで展開するのみに徹した方がいい。
あと、ここまでやりたいのかどうかは知らないけど、途中で画像を書き換えたい場合は、
WM_PAINTメッセージを起こすのではなくGetDCを取得して張り付ける方がいい。
これで、大分負担は減るんじゃないかな。
しかしながら、CPU使用率を考えるくらいなら、まずWindowsプログラムを覚えることを
優先した方がいいんじゃない?
0245デフォルトの名無しさん
NGNGウィンドウが一つのときは大丈夫だと思うのですが。
0246デフォルトの名無しさん
NGNG0247245
NGNGええとそういう事ではなくて。説明不足ですね。
WinMainで"hoge"と"foo"という2つのウィンドウを作ったとき、
どちらのウィンドウにイベントが起こっても同じコールバック関数で
受け取るので、そのときHWNDが"hoge"のHWNDか"foo"のHWNDかを
判断したいのです。
例えばif(strcmp(CheckHWND(hwnd),"hoge")==0)みたいな感じです。
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGちょっと考えれば解ると思うが、あんたの方法だと、何らかの方法でイベントの発生したウィンドウのHWNDを得なければならない。
で、「イベント」とはなんだ?
0251245
NGNG何ならできますか。
>>249
イベントとは左クリックとかのWM_**です。
実はひとつのウィンドウ毎にひとつのコールバック関数を作るもの
なんですかね。myProg.lpszClassNameとCreateWindowの第一引数、
myProg.lpfnWndProcとコールバック関数の名前を同じにしますが、
それを2つのウィンドウで別々にすれば、自然と"hoge"でのイベントは
hogeCallへみたいになるんじゃないかと。
実はまだ複数のウィンドウのプログラムを作ったことが無かったので、
実験をすることも無くどうなるんだろうと質問してしまいました。
0252デフォルトの名無しさん
NGNG定石的にはMFCやATLがやってるように(それぞれ多少手段は違った気がするが)
ウィンドウと対応するC++なりのオブジェクトをつくってウィンドウ毎に処理を分ける。
0253159
NGNGiconインデクス取得して絵画まではいけますたが
引数で送ったpath以外のディレクトリを参照で選ばれた場合の
pathをうけとる方法がわかりませぬ。
どなたかご教授願います。
0254245
NGNGやっぱウィンドウが複数あったり、長編なプログラムは、
MFCとかで作るもんなんですかね。自分はMFCに挫折したくちでして。
SDKのみで作っている所で創プロはすごく参考になるのだけど、
やさしめのなので(それでも難しい)。
0255デフォルトの名無しさん
NGNGVBでいいのかな? 漏れの作ったのでよければ。
Private Declare Function SHChangeIconDialogA Lib "shell32" Alias "#62" (ByVal hWnd As Long, ByVal szFilename As String, ByVal Reserved As Long, lpIconIndex As Long) As Long
Private Declare Function SHChangeIconDialogW Lib "shell32" Alias "#62" (ByVal hWnd As Long, ByVal szFilename As Long, ByVal Reserved As Long, lpIconIndex As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Function ChangeIconDialog(ByVal hWnd As Long, strPath As String, Optional Iconidx As Long = 0) As Boolean
Const MAX_PATH As Long = 260
Dim strBuf As String * MAX_PATH, strRet(MAX_PATH) As Byte
Dim lPtr As Long, lRet As Long
strBuf = strPath & vbNullChar
If IsWinNT() Then ←OSがNTかどうか判断。自分で作る
lPtr = StrPtr(strBuf)
lRet = SHChangeIconDialogW(hWnd, lPtr, MAX_PATH, Iconidx)
CopyMemory strRet(0), ByVal lPtr, MAX_PATH
strBuf = CStr(strRet)
Else
lRet = SHChangeIconDialogA(hWnd, strBuf, MAX_PATH, Iconidx)
End If
If lRet Then
ChangeIconDialog = True
strPath = Left$(strBuf, InStr(strBuf, vbNullChar) - 1)
End If
End Function
呼ぶときは
Call ChangeIconDialog(Me.hWnd, パス, インデックス)
パス、インデックスに変更された値が戻ってくる。
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNGWininetを使った汎用的なクラス(class Internet)を作りたいんだけど、
アプリケーション定義コールバック関数とInternetSetStatusCallbackへ渡すコールバック関数を使うと
コンパイル時に「warning C4312: '型キャスト' : 'DWORD' からより大きいサイズの 'Internet *' へ変換します。」
と出て、実行するとハンドルされていない例外が出て止まってしまうんだけど問題なく動かす為にはどうしたいいんだろう?
こんな感じ
//アプリケーション定義コールバック関数
virtual void callback( DWORD dwStatus, LPVOID lpStatusInfo );
//InternetSetStatusCallbackへ渡すコールバック関数
static void CALLBACK _inet_callback( HINTERNET hInternet, DWORD dwContext, DWORD dwStatus, LPVOID lpStatusInfo, DWORD dwStatusInfoSize)
{
( (Internet*)dwContext )->callback( dwStatus, lpStatusInfo );
}
0259245
NGNGとんでもございません。
>>247の書き方に失礼があったのならここでお詫び申し上げます。
>>257
使い方が分からないんです。猫のリソース・スクリプトも分かりません。
VBも挫折しました。ソースだけで作れるのでないと分からないです。
0260デフォルトの名無しさん
NGNGじゃぁ、一緒にC#勉強しませんか?
割と良い感じですよ。
MFCの嫌だったところが全てなくなってる。
0261デフォルトの名無しさん
NGNG何を悩む必要があるんだ?
hWnd1 = CreateWindow();
hWnd2 = CreateWindow();
WndProc()
{
if (hWnd == hWnd1) {
...
}
else if (hWnd == hWnd2) {
}
}
0262デフォルトの名無しさん
NGNG○戦う
○逃げる
0263デフォルトの名無しさん
NGNGC#からはじめればばっちりですよ。
0265245
NGNGC#ですか。どんな感じなのかいろいろ調べてみます。
ただ自分は、新しいのを覚えようとしないで、今ある知識で
工夫して何かを作ろうと考えてしまう所があって、
そのままSDKで作るかもしれませんが、その時はすいません。
>>261
グローバル変数はいけないという概念があって。WinMainは
スタートファイルだから、externとかしなくてもいいので
逆に使うことで困ることは無いと思うのですが。
0266デフォルトの名無しさん
NGNG×教授 ○教示
0267245
NGNGええ、全然慣れていません。
ゲームを作ろうと思ったのですが、コンソールアプリでは
表現しきれないので、グラフィックを使いたいと思って、
勉強を始めました。昔少しやったことはあったのですが。
正直うざいだけです。PeekMessage+Sleepのメインループで
グルグルがいいのですが、勉強するチャンスでもあるのでやってます。
C#はいいんですかね。文章を読んだだけで2人の方が進めてくれたので
まさに自分にぴったしのなのかもしれません。
0268デフォルトの名無しさん
NGNG(名)スル
(1)0 1 (ア)児童・生徒に知識・技能を与え、そこからさらに知識への興味を呼び起こすこと。
(イ)専門的な学問・技芸を教えること。
「国文学を―する」「書道―」
(2)0 大学などの高等教育機関において、専門の学問・技能を教え、また自らは研究に従事する人の職名。助教授・講師の上位。
いいんでない?
0269デフォルトの名無しさん
NGNGならstaticにすればいいじゃない。
変数名直で書くのがいやならクラスメンバにするとか。
形体はなんであれ、スタック以外の領域に、なんらかの形で
ハンドルを覚えておかないと分岐のさせようがないのはわかるでしょ?
0270245
NGNGそうですね。CheckHWNDみたいな関数があったとしても
もう片方の辺が無いから意味ないですし。
そういえば猫プロ(だっけ?)も始めに
char szClassNme[] = "ウィンドウクラス・ネーム" ;
みたいにWinMainの前にグローバル変数で書いてありますね。
0271デフォルトの名無しさん
NGNG0272245
NGNGそうだと思います。
ただ、長編のときはグローバル関数をあまり使わないで、
カプセル化(だっけ?)した方がよかったりするように、
極力使わないほうがいいのは分かっています。
ただ、逆に使わないと大変な所は、無理せず使うようにします。
0273デフォルトの名無しさん
NGNGまーそれでいいんじゃない。事情がわからんので適当だけど
普通は>>261よりは>>251のアプローチだと思うよ
0274デフォルトの名無しさん
NGNGウィンドウのタイトルバーの左側にあるアイコンを動的に設定する方法ってありますか?
今、
hIcon = LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON), IMAGE_ICON, 0, 0, LR_CREATEDIBSECTION);
DrawIcon(GetDC(hWnd), 0, 0, hIcon);
などとやっていたんですが、
これはアイコンの設定ではなくて描画ですよね……。
WNDCLASS を毎回 RegisterClass() して対処しようかとも思ったのですが、
直前に RegisterClass() した時の WNDCLASS を取得する方法もわかりませんでした。
何か解決策はありませんか?
0275デフォルトの名無しさん
NGNGWM_SETICON
0276デフォルトの名無しさん
NGNGWM_GETICON?
0277デフォルトの名無しさん
NGNGただ、俺のやり方が悪いんだろうが、すぐAPIが恋しくなってDllImport使いまくってる。
0279デフォルトの名無しさん
NGNG.NET Frameworkのメモリ馬鹿食いはきにならない?酷すぎるんで結局W32APIに戻ってきたよ
0280デフォルトの名無しさん
NGNG実行中の重さは(GUI使わなければ)気になることはないね。
0281デフォルトの名無しさん
NGNG他の開発環境に戻りたくなくなってしまいますた。
0283デフォルトの名無しさん
NGNG元々でかくなるプログラムを書いてるんで、メモリ消費量は気にならない。
むしろ今は、未知の言語を触っているという楽しさがあるので、
使い慣れてきたら気になってくるかもしれんけどね。
0284デフォルトの名無しさん
NGNG実行は早いね。
メモリーが気になるのも同意。
マイクロソフトがこれを主流にする気みたいだから、
これで行っても大丈夫だろうとは思う。
0285デフォルトの名無しさん
NGNGコンパイルはできるけど、音がでない・・・OTZ
http://www.users.yun.co.jp/~studiowing/win32api/win-17.htm
ここの使ってるんですけど、何か注意する事とかありますか?
0286デフォルトの名無しさん
NGNGまあそれは良いとして、mciSendString の戻り値は確認したのか?
それなりのエラーコードが返ってるんじゃないか?
0287デフォルトの名無しさん
NGNG自前でやってるので大変です。
main関数を使ったときのargc, argvみたいに
簡単に取り出せるAPIはないですか?
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGおぉ。そういうのがあったのですか。
調べてみます。ありがとうございます。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGうん。
>>291
(,,゚Д゚) ガンガレ!
029354
NGNGありがとん。返事が遅くなってスマソ。
>>58さんのGDI+で問題解決しました。
ttp://www.kumei.ne.jp/c_lang/sdk4/sdk_336.htm
0294デフォルトの名無しさん
NGNGMIDIファイルの位置が悪いとか……
実行ファイルのあるフォルダにMIDIをおいて、VSを使わずに直接実行してみても駄目?
0295232
NGNGビットマップを普通に表示するのは分かってきたのですが、
透過の仕方がわかりません。調べるとマスクとか書いてあるのですが分かりません。
以下のプログラムなら、どう発展させていけばいいのでしょうか。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=61&fi=no
0296232
NGNGすいません。ShowBitmap関数のStretchDIBitsの最後の引数を
dwRopに変更してください。
後、実はその変更を行った後、たまたま人(前景)のほうの引数を
SRCANDにしたら透過できてしまいました。
SRCANDは「論理 AND 演算子を使って、コピー元の色とコピー先の色を
組み合わせます。」らしいのですが、なぜ透過できたのでしょうか。
0297デフォルトの名無しさん
NGNGttp://www.charlespetzold.com/
0298232
NGNGいろいろ調べていましたが分からないので、
1ピクセルずつ調べながら透過しない位置をGetPixelとかで
描画する方法でやってみます。お騒がせしました。
0299デフォルトの名無しさん
NGNGそこでなんで"たまたま"成功したかを追求すれば正解があるんだが。
0300232
NGNG自分はウィンドウズの基礎がなってないので難しいです。
一応>>298の方法で256色のはできました。
ただintのカウンタとforを使って普通にやっているので
表示するサイズが大きくなるとかなり遅そう。
0301デフォルトの名無しさん
NGNG1ピクセルずつやる、というのは妥当な方法だけど(マスク作るよりは楽)
それをやるならビットマップのメモリデバイスコンテキストに対してでは
なくDIBピクセル列に対して行うべきだね(DIBの操作は単純なメモリアク
セスなので、処理が圧倒的に早く正確)。
性能的には32ビットDIBで数百×数百ピクセルのビットマップを透過処理
しても、特に問題はない。
0302デフォルトの名無しさん
NGNG> ただintのカウンタとforを使って普通にやっているので
> 表示するサイズが大きくなるとかなり遅そう。
そういうもんです。
あとは、GetPixelみたいに1ピクセルごとに計算するのではなく、301さんが言うような方法で
メモリ上に展開することでループ計算や関数呼び出しのフィードバックを省略したり、
直接アセンブラをいじってMMXやSSEを呼び出し、数ピクセル分を一気に計算したりすることで
高速化を図ったりする。
0303デフォルトの名無しさん
NGNGDrawText(hDC, str, -1, &rect, DT_CALCRECT);
では、通常フォント文字の表示長方形領域を返してきます。
斜体フォント文字の表示長方形領域を正確に取得する方法をご存知の方、
教えていただけないでしょうか?
0304232
NGNG以下を>>295のプログラムのStretchDIBitsを消して
その位置に加えれば透過描画が出来ます。(8ビットのみ)
透過の位置はビットマップの左上と同じ色の位置です。
どこを直すといいでしょうか。
if(bmpInfo->bmiHeader.biBitCount == 8) //256色ビットマップ
{
int i ;
int updw = bmpInfo->bmiHeader.biHeight > 0 ? 1 : -1; //up,downどっちの方式か
int sizeX = bmpInfo->bmiHeader.biWidth; //サイズx
int sizeY = abs(bmpInfo->bmiHeader.biHeight); //サイズy
int dot = sizeY * sizeX; //ドット数
int p; //パレットの種類
int x, y; //拡大をしない表示する位置
int x2, y2; //拡大の分
int touka = updw > 0 ? lpBMP[dot - sizeX] : lpBMP[0]; //透過する色のパレットの位置
for(i = 0; i < dot; i++)
{
p = lpBMP[i];
if(touka == p)continue; //透過する位置
x = (spotX + i % sizeX) * bairituX;
y = (updw > 0 ? spotY + sizeY - i / sizeY - 1 : spotY + i / sizeY) * bairituY;
for(x2 = 0; x2 < bairituX; x2++)for(y2 = 0; y2 < bairituY; y2++)
SetPixelV(hdc, x + x2, y + y2,
RGB(bmpInfo->bmiColors[p].rgbRed, bmpInfo->bmiColors[p].rgbGreen,
bmpInfo->bmiColors[p].rgbBlue)); }}
0305デフォルトの名無しさん
NGNGGetTextExtentPoint32はどう?
0307デフォルトの名無しさん
NGNGhDCにフォントの指定はしてあるよね…?
0308306
NGNG指定してます。
OldFont = (HFONT)SelectObject(g_mem.hSzDC, hfont);
ワードパッドで斜体文字を表示して、選択で色を反転した時にわかる領域サイズと
同サイズが返ってきていると思われます。
Win32APIでは、斜体文字の表示範囲を取得するのは無理なのでは?
と思いはじめています。
0309デフォルトの名無しさん
NGNG私もやり方を知らない。
それらプラス tmOverhang が助けにならないのは知ってる。
GetCharABCWidths, GetCharWidth32, GetCharPlacement, GetGlyphOutline
あたりはためしてみた?
0310 ◆IGEMrmvKLI
NGNGInternetConnectをコールしているのですが、そのあと、アプリケーション終了時に
応答が帰ってこなくなることがあります。
マシンによって違い、アプリケーション終了後、正常終了して普通に終わるマシンと
アプリケーション終了後、正常終了して、タスクに応答なしで残りつづけるもの。
InternetConnect関数コール直後、デバッカによる停止で上記事象が発生するので、
そのあたりだとは思うのですが、OSによっての違いでもないみたいですし。
環境は、VB6.0SP5
Window2000 SP4
です。
応答が帰ってこない事象は、今のところ、Win2kSP3とSP4で確認しています。
逆に、通常に終わる場合は、WinXP・Win2kSP3・SP4・WinNTなどで確認しています。
原因について、思い当たるような節のあるかた、いらっしゃいましたらご教示よろしくお願いします。
0311デフォルトの名無しさん
NGNGで、結局Win2kSP3・SP4ではどういう挙動を示すんだ?
0312310 ◆IGEMrmvKLI
NGNGWin2kSP3・SP4の場合、タスクマネージャーに応答なしアプリケーションとして、
30秒程度?居残りつづける状態でした。
原因ですが、FTPサーバへのログインにAnonymousを使用していると、
同様の事象が発生するようです。
ほかのユーザを切りなおしてそのユーザでログインすると、その事象は解決しました。
どうも、ご迷惑をおかけしました。
0313デフォルトの名無しさん
NGNGShellExecuteEXでプロセスハンドルしか帰ってこないんです。
0314デフォルトの名無しさん
NGNGGetProcessId()でいいんじゃないの。
XP sp1 以降なら。
0315デフォルトの名無しさん
NGNGCreateProcessを使うとプロセスIDを取得出来るねぇ。
0316デフォルトの名無しさん
NGNGGetWindowThreadProcessIdというのもあるよ。参考までに。
0317313
NGNGXP sp1以降ということは、それ以前では感嘆には取れないんでしょうか?
>>315
データファイルを関連付けアプリで起動したいので、ShellExecute(EX)が
いいんです。
CreateProcessだとEXE直接起動オンリーですよね。FindExecutableで
さがせますけど、openのほかにprintとか他のverbもサポートしないと
いけないかも、なのでレジストリ直読みして環境変数置き換えて・・・・
マンドクセ
>>316
それだとウィンドウハンドルがわかんないといけないですけど、
プロセスハンドルからそのプロセスのウィンドウハンドルって取れます?
プロセスIDが分かっているときにウィンドウハンドルをとるなら
EnumWindowsとGetWindowThreadProcessIdで出来るんですが・・・
そのプロセスIDがわからんわけです。
0318デフォルトの名無しさん
NGNGttp://search.acty-net.ne.jp/mfc_search/archive/2001-1/msg03531.html
プロセスハンドルはシステム内で一意な値じゃないからそこから
プロセスIDを特定することは出来ないってことじゃないかな。
手間を惜しまないのなら、SetWindowsHookExかCreateRemoteThreadで
対象プロセスに自作のルーチンを進入させてGetCurrentProcessIdする手が
あるけど。
0319デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/ntqueryinformationprocess.asp
Windows2000 と WindowsXP (SP適用前) の場合限定で使えるんでない?
WindowsXP SP1 以降は GetProcessId() を使う方向で。
WindowsMe 以前は諦め…
0320デフォルトの名無しさん
NGNG9xでは構造体を直接読むという荒業が使えると思われ
どうせ9xはdisconなのだから将来の互換性の問題は気にする必要ないし
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/perfmon/base/taking_a_snapshot_and_viewing_processes.asp
0324デフォルトの名無しさん
NGNGdata_segとか使って全DLLで同じメモリ領域(HHOOKとか)を参照するようにしますよね?
でもそうすると、SetWindowsHookExを複数回呼ばれた場合に、
つまりSetWindowsHookExを含むDLLが複数のプロセスで呼び出された場合、
重複したフックが設定されてしまう可能性があります。
また、肝心のフック関数は処理結果を指定されたウィンドウハンドルに送るわけですが、
上記DLLを排他処理した場合、1つのウィンドウハンドルにしか送れなくなってしまいます。
これら問題を上手く解決する方法はないものでしょうか?
つまり、
SetWindowsHooExを呼び出す関数は、どのタイミングでどのプロセスから呼び出されても、
安全・確実に実行する事が出来き、かつその全ての呼び出し元が要求したウィンドウハンドルに、
全ての呼び出し元が開放を要求するまで、フック関数からのメッセージが確実に送信される、
というふうにしたいのです。
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNGすみません。"フックハンドル 共有メモリ"でググってみましたが、見つかりませんでした。
共有メモリ領域を使わない方法とはどのようなものなのでしょうか?
0327デフォルトの名無しさん
NGNGにそれらしきレスがありますが、
CallNextHookExにNULLを渡すというのはソースが見つかりませんでした。
0328デフォルトの名無しさん
NGNGそれでも一応動くけど
CallNextHookExで正しいフックハンドルを渡さないと環境によってはシステム自体が著しく不調になる
0329324
NGNGHANDLE hMutex = NULL;
hMutex = ::CreateMutex( NULL, TRUE, SYSTEM_HOOK_MUTEX_NAME );
if ( hMutex == NULL ) {
// exception
}
if (::GetLastError() == ERROR_ALREADY_EXISTS) {
DWORDdwWaitResult;
dwWaitResult = ::WaitForSingleObject( hMutex, 1000 );
if (dwWaitResult != WAIT_OBJECT_0) {
// exception
}
}
g_hMouseHook = ::SetWindowsHookEx(
WH_MOUSE,
(HOOKPROC)g_MouseProc,
hinstDLL,
0
);
if (g_hMouseHook == NULL) {
// exception
}
::ReleaseMutex( hMutex );
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNGその場合フックハンドルを共有したらまずいじゃないか
0338デフォルトの名無しさん
NGNGRegisterWindowMessageをしてブロードキャストするか、
ウィンドウハンドルだけ配列にしようかと・・・
もっと良い方法ありますか?
0339デフォルトの名無しさん
NGNGSetWindowsHookExの第4引数を0にした場合は、起動中の全てのスレッドに
フックをかけるだけでなく、SetWindowsHookEx呼び出し後に起動したスレッドに
対しても、システムが勝手にフックをかけてくれるようになる。
あなたが考えるべきことは、多重起動されたときにSetWindowsHookExを
複数回呼び出すことではなく、多重起動されても1回しか呼び出さないことだ。
0340デフォルトの名無しさん
NGNG要するにこういう風にすりゃいいだろ、って事だ。
HHOOK g_hMouseHook = NULL;
HANDLE hMutex = NULL;
hMutex = ::CreateMutex( NULL, TRUE, SYSTEM_HOOK_MUTEX_NAME );
if ( hMutex == NULL ) {
// exception
}
if (g_hMouseHook == NULL) {
g_hMouseHook = ::SetWindowsHookEx(
WH_MOUSE,
(HOOKPROC)g_MouseProc,
hinstDLL,
0
);
if (g_hMouseHook == NULL) {
// exception
}
}
::ReleaseMutex( hMutex );
0341デフォルトの名無しさん
NGNGMutex用意してあるんでしょ?
ってことで解決なのかそうでないのかはよく知りません
0342デフォルトの名無しさん
NGNGソースをよく読め。
Mutexの作成に失敗した場合でもエラーコードがERROR_ALREADY_EXISTSの
場合(Mutexをすでに作成済みというエラー)はSetWindowsHookExの呼び出しに
行っちゃってるだろ。
0344デフォルトの名無しさん
NGNGソースうんぬん言う前に投稿時間をみろよ
0345デフォルトの名無しさん
NGNG342じゃなくて329のことだよ。
0346デフォルトの名無しさん
NGNG9xでもパフォーマンスデータのレジストリってあったっけ?
0347デフォルトの名無しさん
NGNGWaitForSingleObject
>324
とりあえず SetWindowsHookEx() を呼ぶ関数は DLL 内にあるという解釈でいい?
で、>339 の言うとおり SetWindowsHookEx() 自体は全体で 1回だけ呼べばいい。
後は、>338 で自分でもいってる通り、呼び出し元のウィンドウハンドルの管理をする。
登録関数で追加、解放関数で削除、フック内部ではリストを見ながらメッセージ送信すれば OK かと。
0348デフォルトの名無しさん
NGNGSetWindowsHookEx自体は1回だけ呼び出すようにするつもりです。
元のソースは書きかけだったもので・・・お手数おかけしました。
>>347
こんな感じでいいんでしょうか?
bool g_InstallHook( HMODULE hModule, HWND hwndNew ) {
HANDLEhMutex = NULL;
boolresult;
hMutex = ::CreateMutex( NULL, TRUE, SYSTEM_HOOK_MUTEX_NAME );
if ( hMutex == NULL ) return false;// fatal error
if (::GetLastError() == ERROR_ALREADY_EXISTS) {
DWORDdwWaitResult;
dwWaitResult = ::WaitForSingleObject( hMutex, 1000 );
if (dwWaitResult != WAIT_OBJECT_0) return false;// fatal timeout
}
if (g_hMouseHook == NULL) {
g_hMouseHook = (HHOOK)::SetWindowsHookEx(
WH_MOUSE, (HOOKPROC)g_MouseProc, hModule, 0
);
}
0349デフォルトの名無しさん
NGNGelse {
HWND*newWndList = NULL;
newWndList = (HWND*)GlobalAlloc( 0, sizeof(HWND)*(g_WndCount+1) );
if (newWndList == NULL) result=false;// hook succeeded even here
else {
CopyMemory( newWndList, g_WndList, sizeof(HWND)*g_WndCount );
newWndList[g_WndCount] = hwndNew;
g_WndList = newWndList;
result=true;
}
}
::CloseHandle( hMutex );
return result;
}
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG・g_WndCount のインクリメントが抜けてる
・GlobalAlloc で確保したメモリはプロセス間共有されないのでフック内で使えない。
共有領域に固定長で確保するか、FileMapping を使う。
ただし、FileMapping 使うとプロセスごとに MapViewOfFile しなきゃいけないし、
本当に動的にするのはかなり厳しいと思われ。不可能じゃないとは思うけど。
適当に最大値決めて仕様にするのはどうよ?
後、個人的には毎回毎回動的メモリの拡張をやるのはあまり好きじゃないがその辺は趣味の問題だな。
0354デフォルトの名無しさん
NGNGレスありがとう。
こんな感じにしますた。
ウィンドウへの通知はブロードキャストに。
if (g_hMouseHook == NULL) result=false;// hook failed
else g_WndCount++;
::CloseHandle( hMutex );
return result;
}
0355デフォルトの名無しさん
NGNGHANDLEhMutex = NULL;
hMutex = ::CreateMutex( NULL, TRUE, SYSTEM_HOOK_MUTEX_NAME );
if ( hMutex == NULL ) return false;// fatal error
if (::GetLastError() == ERROR_ALREADY_EXISTS) {
g_InstallHookと同じなので略
}
g_WndCount--;
if (g_WndCount <= 0) {
::UnhookWindowsHookEx( g_hMouseHook );
g_hMouseHook = NULL;
}
::CloseHandle( hMutex );
}
0356デフォルトの名無しさん
NGNG親プロセスのパイプにつなげてやりたいのですが、CreateProcess の
bInheritHandles に相当するものがないので、パイプハンドルを継承
させることができません。
なにかうまい方法はないもんでしょうか。
対象OSは2000以降です。
0357デフォルトの名無しさん
NGNGもはや API の話でもなんでもないが、デクリメント前に g_WndCount が 0 以下なら即 return した方が
安全なんじゃないだろうか。
基本的にないケースだとは言え、UnhookWindowsHookEx() に NULL 渡しても大丈夫だろうかとか
余計な不安が消える。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNGSetWindowLongは他のプロセスのウインドウに使えないので、他に何かいい方法はないでしょうか?
検索してもフックする方法しか見つからないのですが、他に方法無いですかね?
スクリプト言語使ってるので、DLL作るのは面倒なんです。
0360デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNGCreateProcessWithLogonWを使ったとき実際に子プロセスを
起動しているのはRunAsサービスなのでどうしようもない
0363デフォルトの名無しさん
NGNG了解しました。
よく考えたらg_UnInstallを複数回呼び出した後で、
g_Installとg_UnInstallの組み合わせを複数回呼び出すと・・・
0364デフォルトの名無しさん
NGNGどういうことですか?
0365デフォルトの名無しさん
NGNGHANDLE型で代用してよいのでしょうか?
猫によると実体は同じ物のようなのですが・・・。http://www.kumei.ne.jp/c_lang/sdk2/sdk_105.htm
0366デフォルトの名無しさん
NGNG少なくとも、Platform SDK Documentationには書いてありました。>HDROP
0367デフォルトの名無しさん
NGNGありがとうございます。
shellapi.hの中を捜してみるとMinGW側でもちゃんと宣言されていました。
自分の書いたコード側の問題のようなのでそちら側で調べてみます。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNGなんか有ったと思いましたが再発見できず・・・。
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGですね、有難うございました。
そーか、猫のページで見たんだ。
0374デフォルトの名無しさん
NGNGそんなAPIあったな。
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNGMASAPICOでぐぐれ
0377デフォルトの名無しさん
NGNG他の潜り先でGetMessageの戻り値が0以下の時にexit(msg.wParam);
ではダメなのでしょうか。
0379デフォルトの名無しさん
NGNG以下のようにコーディングしているのですが
出力されるフォントが普通の明朝体のようなフォントで
出力されてしまいます。どこがまずいのでしょうか?
hFont = CreateFont(25,
0,
0,
0,
FW_BOLD,
FALSE,
FALSE,
0,
SHIFTJIS_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
"Comic Sans MS");
0380デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNGCharSetをANSI_CHARSETにしてないのと、
ちゃんとDCに関連付けてるかどうか
0384デフォルトの名無しさん
NGNG帰ってきたものをCreateFontIndirectに渡すか
GetStockObjectを使うのが鉄則
どうしても自分で組み立てる必要があるときは
フォント名よりcharsetの指定のほうが優先度が高いことを
押さえとけ
0385デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNG任意のフォルダをクリックするとそのフルパスを表示するようなものを
作りたいと思っています。
フックをかけて処理を行おうと思っているのですが、
肝心のフルパスを取得する方法が分かりません。
何かよい方法がありましたらよろしくご教授お願いします。
0388デフォルトの名無しさん
NGNG「フォルダをクリック」の意味が不明
0389デフォルトの名無しさん
NGNGexplorer.exeの各フォルダウィンドウで、
ファイル・フォルダを表示しているSysListViewで
WM_LBUTTONDOWNが発生した時に、
カーソルの下にあるファイルのパスを表示したいって事?
0390387
NGNG389さんの通りです。
0391デフォルトの名無しさん
NGNGならShell Extension書けば終わると思うが。
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNG0394387
NGNG知らない言葉なので調べてきます。
ありがとうございました。
0395デフォルトの名無しさん
NGNG親ウィンドウより大きなサイズにまで変更可能にしたいのですが、
どのようにしたら良いのでしょうか?
WM_GETMINMAXINFO で ptMaxSize と ptMaxTrackSize に大きな値を設定しても
サイズ変更枠のドラッグ中に、
親ウィンドウの外までカーソルを移動させることがでませんでした。
よろしく願いします。
0396デフォルトの名無しさん
NGNGウィンドウスタイルを見直してみな。
0397デフォルトの名無しさん
NGNG解答ありがとうございます。
早速、Spy++で親ウインドウの外まで広げられるウインドウと
広げられないウインドウのスタイルを
比較しようと思ったのですが、
手元にあるアプリケーション(DF,VC6等)は全て広げられず、比較することができませんでした。
MSDNを見ても、それらしいスタイルが見つからないのですが、
具体的にどのスタイルが必要なのか教えて頂けないでしょうか?
0398デフォルトの名無しさん
NGNGCreateWindowでどんな指定をしているか見せて
0399デフォルトの名無しさん
NGNG0400395
NGNGHWND hWnd=CreateWindow(
szWindowClass, szTitle, WS_CHILD | WS_SIZEBOX | WS_VISIBLE,
100, 100, 100, 100, hWndParent, NULL, hInstance, NULL);
各変数は VC7.1 の Win32 プロジェクトウィザードで作成された物をそのまま使用しています。
>>399
子ウィンドウが必要なのでWS_POPUPを付けるわけにはいかないんです。
0401デフォルトの名無しさん
NGNGWS_CHILDを外すしかない。
0402デフォルトの名無しさん
NGNG子ウインドウに出来ないというわけではない。
それとも、WS_CHILDが必要なの?
0403デフォルトの名無しさん
NGNG例えばモーダルなダイアログボックスを表示したときに、
子ウィンドウがEnableなままというような事は発生するんだが、
こういうのはどうにでもなるしなあ。。。なんだろ?
0404デフォルトの名無しさん
NGNG「画面のプロパティ」ダイアログの「デザイン」タブみたいな事をしたいんだけど、
やはり、GetSysColorとかGetThemeとか使って、ちまちまやるしかないの?
それとも便利な関数とかある?
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG確かにボタン類やスクロールバーはそれで良いんですが、
それだと、タイトルバー等が描画できなくないですか?
また、XPのビジュアルスタイルにも対応したいのですが、
GetTheme等を用いなくても、たとえばウィンドウスタイルだけ渡したら、
その通りに描画してくれる関数・・・なんてのは無いですか?
0407デフォルトの名無しさん
NGNG0408404
NGNGいや、ビジュアルスタイルの場合は、
各種関数用意されてて簡単なんだよ・・・
問題は、2000とか9x系での話で、
DrawEdgeやらDrawCaptionやら使うしか無いのか・・・と。
0409デフォルトの名無しさん
NGNG設定するAPIを探しているのですが、探し方が
悪いようで一向に見つかりません。
どなたかご存じないですか?
よろしくお願いします。
0410404
NGNGこんなの見つけた・・・
0411デフォルトの名無しさん
NGNGあとはサブクラス化あたりでOSにむりやり描画させるか
0412デフォルトの名無しさん
NGNGWS_CHILDを持たないウィンドウは「所有されたウィンドウ」であって
「子ウィンドウ」ではない(少なくともMSDNの定義では)。
0413デフォルトの名無しさん
NGNG「こんな風に
行間が空いて
表示されて
みっともないので...」
よろしくお願いします。
0414myPrintf() user
NGNGどうやって表示しているかがわからないと...
0415413
NGNGエディットコントロールは指定したフォントの高さ=行の高さで処理されるのですが、
リッチエディットコントロールで同じフォントを使用した場合、
フォントの上下に少し隙間ができて>>413のように表示されてしまいます。
CHARFORMAT以外にもいろいろ指定しないと駄目なのでしょうか?
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNGダイアログやメニューはリソーススクリプトを書いて読み込ませることも、自分でCreateWindow(Ex)でガリガリ書く事も出来ますよね。
コンパイル後に外部からResourceHacker等でいじりやすくしようと思うとこれらを極力リソーススクリプトに追い出すべきかと
思っているのですが、保守性等の面でどちらが有利なのかは経験が浅いので良く分かっていません。
皆さんはこの二つの方法をどのように使い分けてらっしゃるんでしょうか?
0418デフォルトの名無しさん
NGNGダイアログエディタ使わないの?
rc変更するだけで配置を変えられるので、rcのほうがお手軽でしょ。
0419デフォルトの名無しさん
NGNG使ってないんです。。多国語対応等も考えるとやはりリソーススクリプトに追い出した方がよさそうですね。
ありがとうございます。
0420デフォルトの名無しさん
NGNG配置する部品が多い、特にボタンやテキストボックスなどをグリッド状
に配置するような場合は自分でCreateWindowする。こうしておけば、配置
処理を書き換えるだけで簡単に配置を変更できる上に動的な位置・サイズ
変更もやりやすいからね。
0421デフォルトの名無しさん
NGNG非表示ウィンドウを作ってWM_PRINTでOSに書かせるのが簡単では?
0422デフォルトの名無しさん
NGNGWin98のrichedit32.dllをコピーすると詰まります
検索すると配布しているサイトも見つかったはずです
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNGくだらねーレス付けてんじゃねーよ、市ねボケ!
0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNGウィンドウプロシージャとしてメンバ関数を登録したい
というFAQ中のFAQを質問しないこと。
0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNGどのコントロールにフォーカスが移っても
IMEの入力モードを直接入力に強制的に固定したいのですが
どのようにすれば実現できますか?
また似たような質問になりますが、全角モードで入力されてもIMEを通さずに直接入力されたように
扱いたいのですが、どのようにすればよいでしょうか?
よろしくお願いします。
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG感知・処理するため、処理の行き掛り上、コンボボックスの
CB_GETDROPPEDSTATEがきた時に次の関数を呼び出していますが
いまいち不安定です。
どうすればよろしいでしょうか?
void func(){
MSG msg;
HWND ComboEditHandle = ::GetWindow(ComboHandle,GW_CHILD);
if(ComboEditHandle==NULL)
return;
::GetMessage(&msg,ComboEditHandle,0,0);
switch(LOWORD(msg.wParam)){
case VK_RETURN:
::SendMessage(ComboHandle,WM_KEYDOWN,VK_RETURN,0);
break;
case VK_LEFT:
::SendMessage(ComboHandle,WM_KEYDOWN,VK_LEFT,0);
break;
case VK_RIGHT:
::SendMessage(ComboHandle,WM_KEYDOWN,VK_RIGHT,0);
break;
case VK_UP:
::SendMessage(ComboHandle,WM_KEYDOWN,VK_UP,0);
break;
case VK_DOWN:
::SendMessage(ComboHandle,WM_KEYDOWN,VK_DOWN,0);
break;
}
}
0433デフォルトの名無しさん
NGNGサブクラス化してるの?
0434デフォルトの名無しさん
NGNGAPIを呼び出すって事は各APIごとに決められたアドレスにジャンプさせること
っていう認識でいい?
API群は起動時に全てメモリに読み込まれるのかな。
0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGそれ以上でもそれ以下でもない。
0437デフォルトの名無しさん
NGNGHTMLのタグエディタを予定しています。
0438デフォルトの名無しさん
NGNGいっぱい
0439デフォルトの名無しさん
NGNGいやいや・・・、微妙に突っ込み方がわからなくてすみません。
0440デフォルトの名無しさん
NGNGCreateWindow()
0441デフォルトの名無しさん
NGNG"WriteProcessMemory"のアドレスと書き換えるデータの型指定が分かりません。
プロセスの取得までは出来たのですが、どうにも分かりません。
どうか教えてもらえませんでしょうか?
0442myPrintf() user
NGNG「猫でもわかる...」の説明通りにやっていると、win98 VC++ 6.0 で作った
application で、winXP でも、行間は詰まって表示されているが、これは
どういうことかなあ。フォント設定とか付けてレジストリ記憶です。
0443デフォルトの名無しさん
NGNGもしかして、これって不可能なのでしょうか?
0444デフォルトの名無しさん
NGNGGetAdaptersInfo
0445デフォルトの名無しさん
NGNGそうではなくて・・・
VBで開発するときに使う、プロパティ設定が出来るコントロールを作りたいのです。
0446デフォルトの名無しさん
NGNGだから自分でちまちま既存のコントロール組み合わせて作れっていわれてんだろ。
0447デフォルトの名無しさん
NGNGてかここのアマグラマは使えないな
0448デフォルトの名無しさん
NGNGCOM ATL ActiveX
あたりでググってみな。
多分途中でやる気が萎えると思うが。
0449デフォルトの名無しさん
NGNG> WC_LISTVIEWを指定しろ
それはCreateWindow()を使えってことだろうが
0450デフォルトの名無しさん
NGNG質問に対する解決になってないな
0451デフォルトの名無しさん
NGNGなに言ってんのあんた?
あんた445?
CreateWindowでググれなんて誰も言ってないぞ。
キーワードは COM ATL ActiveX だ。
とってもややこしい話だからここでかいつまんで説明するって訳にはいかないんだよ。
だからググれといってるの。
上のキーワードの意味が理解できなてなきゃVBのコントロールは作れない。
CreateWindow以前の問題なんだよ。
0452デフォルトの名無しさん
NGNG0453413
NGNGそれが解からないんですよね。
自分のPCにWin98用のriched32.dllが無くても、
行間が詰まって表示されているソフトがあったので疑問に思っていました。
そういうのはどうなんでしょうね?組み込みなのか、独自にラップしたものか...
ググってみて、OSによってdllが異なる動作をするのは解かりました。
(当方Win2000)
0454デフォルトの名無しさん
NGNGそれって、取得だけじゃなくて設定もできるんですか?
0455デフォルトの名無しさん
NGNGなので8bit以下のオフスクリーンビットマップを使って、
パレットアニメーションをしようと思うんですが、やり方がまずいのか
失敗してしまいます。
いろんなサイト見て回ったんですが、
画面のシステムパレットをアニメートする方法しか、
見つけられませんでした。
オフスクリーンのビットマップのパレットを使って
GDI関数だけでパレットアニメーションさせる事は、
そもそも可能なのでしょうか? 漏れ、不可能な事やってます?
0456デフォルトの名無しさん
NGNG可能です。
0457デフォルトの名無しさん
NGNGって事は漏れのやり方が悪いんですね。
いろいろ試してみます。
どうもありがとう。
0458455
NGNGSelectObject した HDC では
SetPaletteEntries&RealizePaletteを使った
パレットの変更は出来ないみたいなんですが、
他のやり方など、有りますか?
0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNGボタンが押されたら、新しいウィンドウを表示させたいのですが、
どのようにしたらよいのでしょう。
0461デフォルトの名無しさん
NGNG8ビットDIB/DIBSectionならカラーテーブルを書き換えるだけ。
システムのパレットは関係ないよw
0462デフォルトの名無しさん
NGNGWM_KEYDOWNとかWM_LBUTTONDOWNとかでCreateWindow
0464デフォルトの名無しさん
NGNGこのメンバーが BITMAPV4HEADER や BITMAPV5HEADER になることはある
んでしょうか。
BITMAPV[45]HEADER を渡して CreateDIBSection() しても、できあがった
DIBSECTION 内では BITMAPINFOHEADER ?
0465デフォルトの名無しさん
NGNG>作るときで
>どんなやってつくれば
日本語を勉強しましょう。
0466デフォルトの名無しさん
NGNGWNDCLASS作んなくていいから、
とりあえず、"EDIT"とかで作ってみろ。
それで出来たら、今度はクリックとか考えずに
オリジナルのWNDCLASSを持つウインドウを作ってみる。
今度はそれの応用だ、簡単だろ?
0467460
NGNGコントロールを作るのではなく、ウィンドウを作ろうと思っています。
ウィンドウごとに別のプロシージャを使いたいので、
WNDCLASSを新しく作るしかないと思ったんですが、ほかに方法があったりするのでしょうか?
0468デフォルトの名無しさん
NGNG知ってるよ。
コントロールを作るのは練習だ、練習。
エディットコントロールは、EDITという名で
WNDCLASSが登録されてるの。
0469460
NGNGなんとなくで新しく作るWNDCLASSのhInstanceに
メインのウィンドウのインスタンスと同じものをいれたら普通に通りました
ご迷惑をおかけしてすみませんでした^^
0470デフォルトの名無しさん
NGNG0471404
NGNGとっても簡単・確実。
0472デフォルトの名無しさん
NGNG作ったアプリケーションを表示させないようにするにはどのWSを
消せばいいの?
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG春だからね。
0478デフォルトの名無しさん
NGNGGWだからだと思う。
0479デフォルトの名無しさん
NGNGサービスにしてsvchostあたりから動かせば可能かもしれないが方法によってはそれでも見れる。
0480デフォルトの名無しさん
NGNG「アプリケーション」タブに非表示 == タスクバーに非表示
「プロセス」タブじゃない。
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNG俺も、初GWはプログラミングの勉強に費やした。
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG典型的にはタスクトレイ常駐型アプリだろ。
ついでに非表示ウィンドウを親にするという手もある。
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNGそれとも叩いてるほうも学生なのか?
0491デフォルトの名無しさん
NGNGそれはお前だけ
0492デフォルトの名無しさん
NGNGいやそれはここじゃないって
0493デフォルトの名無しさん
NGNG>>240
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG出る奴と出ない奴があるけど、あれは何が違うん?
0497496
NGNG0498デフォルトの名無しさん
NGNGそういう情報は横展開しましょう。
0499デフォルトの名無しさん
NGNG下のようなコードを書いたのですが、クリップボードにコピーされた画像がズレてしまい、
しかもコピーした後でアプリが終了させられてしまいます。
修正方法を教えてください。
hMem = GlobalAlloc(GHND, sizeof(BITMAPINFO) + Bi.biSizeImage);
hGlobal = (LPBYTE)GlobalLock(hMem);
lpBitmapInfo = (LPBITMAPINFO) hGlobal;
lpBitmapInfo ->bmiHeader = Bi;
lpBitmapInfo ->bmiColors->rgbBlue= 0;
lpBitmapInfo ->bmiColors->rgbGreen= 0;
lpBitmapInfo ->bmiColors->rgbRed= 0;
lpBitmapInfo ->bmiColors->rgbReserved= 0;
memcpy(lpBitmapInfo + sizeof(BITMAPINFO), image, Bi.biSizeImage);
GlobalUnlock(hMem);
OpenClipboard(hWnd);
EmptyClipboard();
SetClipboardData(CF_DIB, hMem);
CloseClipboard();
0500デフォルトの名無しさん
NGNG↓
lpBitmapInfo + 1 もしくは hGlobal + sizeof(BITMAPINFO)
0501499
NGNGありがとうございました。そんなところだったとは。
で、今度は色がおかしくなったんですが、
lpBitmapInfo ->bmiColors->rgbBlue= 0;
lpBitmapInfo ->bmiColors->rgbGreen= 0;
lpBitmapInfo ->bmiColors->rgbRed= 0;
lpBitmapInfo ->bmiColors->rgbReserved= 0;
は、あってますか?
0502デフォルトの名無しさん
NGNGパレットを使わないのなら、BITMAPINFOじゃなくてBITMAPINFOHEADERを使え。
0503デフォルトの名無しさん
NGNG俺も知りたい。教えてください>>496
0504499
NGNGBITMAPINFOHEADER でうまくいきました。
ありがとうございます。
ところで、msdn には、
クリップボードの中身として、 CF_DIB を指定するときは
BITMAPINFO + ビットマップを中身にしろと書いてありますが、
いいんでしょうか?
0505デフォルトの名無しさん
NGNG本来はBITMAPINFOのbmiColorsは[0]なんだけど、
C89の仕様によってサイズ0の配列が作れないから[1]となってるだけ。
パレットを使う場合は、必要に応じて動的確保でサイズを拡張するの。
0506デフォルトの名無しさん
NGNG関数名で検索して出てくるページにあるやつを
コピペするだけでその関数使えますか?
いまいち。何とかの値とか言われてもどうやって入れたり。。その関数呼び出したりするかわからない・・・
0507デフォルトの名無しさん
NGNG一つ言っておくことがある。
分らない物を使うな
0508デフォルトの名無しさん
NGNGウチの新入社員だったら笑えないけど。
0510デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/読むか
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/を入れて同梱のドキュメント嫁
0511デフォルトの名無しさん
NGNGで、保存するファイル名を取得して、
CopyFile()
で一時ファイルを保存したいのですが、
GetSaveFileName()
でディレクトリを移動させると、ファイルが保存されなくなります。
なぜでしょう。
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG何故って言われても普通はありえないので、動作しないコードをあげるべし。
0514511
NGNGmemset(&ofn,0,sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd;
ofn.lpstrFilter = TEXT("Jpeg image [*.JPG, *.JPEG]\0*.jpg;*.jpeg\0\0");
ofn.nFilterIndex = 1;
ofn.lpstrFile = fn;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_HIDEREADONLY;
if(GetSaveFileName(&ofn)) {
id = CopyFile("tmp.jpg", fn, TRUE);
}
0515デフォルトの名無しさん
NGNGCopyFileの"tmp.jpg"という指定がカレントディレクトリのファイルを指すからだ。
0516511
NGNGコピー元、コピー先の両方が絶対パス ---- ○
コピー元は絶対パス、コピー先は相対パス ---- ×
コピー元は相対パス、コピー先は絶対パス ---- ×
ということですか?
0517デフォルトの名無しさん
NGNG仮に、C:\TESTがカレントディレクトリだとして、"tmp.jpg"と書けば、
C:\TEST\tmp\jpgを指すが、GetSaveFileNameによってカレントディレクトリが
変更され、C:\DOCとなった場合、"tmp.jpg"と書くと
C:\DOC\tmp.jpgを指すからだ。
最も簡単で確実な解決法は、すべて絶対パスで表すことだけどな。
0518デフォルトの名無しさん
NGNGC:\TEST\tmp.jpg
0519511
NGNG「カレントディレクトリ」ではなく、プログラムファイルが置いてあるディレクトリ
を取得する方法はありますか?
0520デフォルトの名無しさん
NGNGargv[0]
0521デフォルトの名無しさん
NGNGGetModuleFileName(NULL, &lpString, MAX_PATH);
argv[0]ってパス入ってないOSが無かったっけ。
0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNG少なくともUnixは起動したとおりに入っている。
パスはないかもしれないし、そもそも実行モジュール名と違う別名(alias)かもしれん。
0524デフォルトの名無しさん
NGNG> 少なくともUnixは起動したとおりに入っている。
ダウト。
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNGそれでも同名のDLLを同ディレクトリに置いておくとDLLオーバーライドによって勝手にそっちが読まれませんか?
0529528
NGNGdirectory as app.exe, then all dll's will be loaded from the app's load
directory -- even if its delay loaded with an absolute path that points
elsewhere. the .local. may also override the 'current directory' part of the
search order listed above, but I'm not sure.
というやつです。
0530デフォルトの名無しさん
NGNGlocalファイルをユーザーに消させればいいだろ
0531デフォルトの名無しさん
NGNG役に立たない質問箱だな
0533デフォルトの名無しさん
NGNG別にそれに逆らう必要も無かろう。
ユーザーがローカルに同名のDLLを置いたんなら
それなりの理由があるんだろうさ。
0534デフォルトの名無しさん
NGNGExcelのような多機能List操作APIって無いですかね?
ListControlでは貧弱すぎて、使い物になりません。
0535530
NGNGどーしてもいやならlocalがあるときは起動できないようにすれば?
localを消して新しく起動するっていうのも状況によっては可能なんじゃない
↓
typedef int (WINAPI *GET)();
int main() {
char buf[1000];
::WIN32_FIND_DATA fd;
HANDLE h = ::FindFirstFile("load.exe.local", &fd);
if ( h != INVALID_HANDLE_VALUE) {
::CloseHandle(h);
::BOOL r = ::DeleteFile(".\\load.exe.local");
if (r) {
::MessageBox(0, "deleted exe.local", "", 0);
::ShellExecute(0, "", "./load.exe", "", "", SW_SHOW);
} else {
::MessageBox(0, "could not delete exe.local", "", 0);
}
} else {
HMODULE h = ::LoadLibrary("C:\\absolute\\dll.dll");
GET get = ::GetProcAddress(h, "get");
sprintf(buf, "%d\n", get ? get() : -1);
::MessageBox(0, buf, "", 0);
}
return 0;
}
0536デフォルトの名無しさん
NGNG自分でファイルを読んでメモリ上に展開すれば良い
ハンドルの扱いなどの都合で関連APIをフックする必要があるかもしれない
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNGメモリDCに赤色でFillしたんですが、
その後、ウィンドウDCにBitBltで描画したんですが、
ウィンドウDCになぜか描画されません。
何かしらの間違いをしているはずですが、わかりますかね?
hdc = BeginPaint(hWnd, &ps);
RECT r;
HDC hmdc;
GetClientRect(hWnd,&r);
hmdc = CreateCompatibleDC(hdc);
FillRect(hmdc , &r , CreateSolidBrush(RGB(0xFF , 0 , 0)));
BitBlt(hdc, 0, 0, 300, 300, hmdc, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps);//描画の終了
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNGDCはただの製図道具。紙を用意しなきゃ何も描けん。
メモリDCの場合はビッマップをセットしてやれ。
0542539
NGNG失礼しました。
ただ、ウィンドウのコンテキストに直接描画すると、再描画のたびにフリッカーが発生するので、
オフスクリーンを用意して、初めにそちらに描画し終えてから、BitBltでウィンドウコンテキストに描画したいのです。
そのオフスクリーンがメモリDCだと思ってました。
オフスクリーンを使った描画方法って無いのですか?
0543デフォルトの名無しさん
NGNGだからコンパチなビットマップを作れって。
0544539
NGNGWin32はこれまた回りくどいやり方ですね。
どうもでした。
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGダイアログとウインドウでした。
ウインドウ上に、コントロールはおけるの?
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNGどういう仕様なら満足なんだろう。
0551デフォルトの名無しさん
NGNGウインドウの上にでも、CreateWindowでコントロールを置けます。
ダイアログは、(たいていの場合)コントロールも含めてあらかじめ
リソースとして作成しておいたウインドウです。
コントロールをたくさん持つウインドウなら、あらかじめ
リソースとして(ダイアログとして)持っておいたほうが便利。
0552デフォルトの名無しさん
NGNG代わりに CreateWindow を使えって書いてあったけど、
信じるべき?
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNG親ウインドウの上に乗せる方法を教えてください。
0557デフォルトの名無しさん
NGNGRegQueryValueEx
0558デフォルトの名無しさん
NGNGCreateDialog
0559デフォルトの名無しさん
NGNGps.rcPaintとrc={0,0,300,300}をIntersectRectしてFillRectしたら駄目?
0560デフォルトの名無しさん
NGNGそれよかCreateSolidBrush(RGB(0xFF , 0 , 0)はどこでDeleteObjectしてるんだ?
0561デフォルトの名無しさん
NGNG↓
CreateSolidBrush(RGB(0xFF , 0 , 0))
OTZ
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNGWS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
20, 20, 100, 30, hWnd, (HMENU)ID_MI, hInst ,NULL);
で、ボタンがウインドウ上に追加されるのと同じようなやり方で、
リソースファイル中のダイアログをウインドウ上に追加できますか?
0564デフォルトの名無しさん
NGNGそのリソースが子ウィンドウならおK。
0565デフォルトの名無しさん
NGNGほとんどの例がMCI_WAITを指定して完了するまで制御を戻さないように
しています。
この場合にMCI_WAITを抜くのはあまりよろしくないのですか?
0566デフォルトの名無しさん
NGNGリソースID が IDD_DIALOG だった場合、実際のコードはどうなりますか?
0567デフォルトの名無しさん
NGNGリソースデータをハンドリングして
一つ一つCreateWindow
0568デフォルトの名無しさん
NGNGMCI_WAITをはずした場合、処理が終了しなくてもmciSendCommandが返ってしてしまうので、
MCI_NOTIFYを使って処理終了を待ってから次のコマンドを送信するようにせなあかんくなる。
なので、再生時はともかく初期化処理しているときはいちいちNOTIFYを待つのはめんどいので、
WAITで呼び出したりする。
0569デフォルトの名無しさん
NGNGトレイ開閉は、たとえば開いている最中に閉めるコマンドを送信した場合、
どういう状況になるか分からないから、安全策としてWAITしてるんじゃないかね。
0570デフォルトの名無しさん
NGNGご意見ありがとうございます。
それが目的であると思われそうですね。CDを入れた状態でトレイを閉めると
しばらく反応なしになるので何となくすっきりしませんでした。ほとんど自分用に
作っているので、SetTimerで開閉直後はしばらく受け付けないようにしようかと
思います。
どうもありがとうございました。
0571デフォルトの名無しさん
NGNG矢印ボタンを押している間に数字がかわりません。
(離すと一気に数字が変わってしまう)
押しっぱなしにしてる間、絶えず数字が変化するようにするにはどうしたら良いでしょうか?
教えてください。
↓は上手くいかないソースコードです
case WM_HSCROLL:
switch(LOWORD(wp)) {
case SB_LINERIGHT:
if (scr.nPos < scr.nMax) {
scr.nPos++;
SetScrollInfo(hwnd , SB_HORZ , &scr , TRUE);
wsprintf(ch, "%d", scr.nPos);
TextOut(Back_DC, 300, 300, ch, strlen(ch));
}
break;
}
0572デフォルトの名無しさん
NGNGCreateDialog で出来るって書いたじゃん。
IDD_DIALOG をリソースエディタ上で作るときに
ダイアログプロパティのスタイルタブで
スタイル:「チャイルド」
境界線:「しない」
にしとけば、
hChildDlg = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG), hWndParent, (DLGPROC)DlgProc);
BOOL CALLBACK DlgProc(HWN hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
return FALSE;
}
で hWndParent の上に貼り付く。
IDD_DIALOG 上のコントロールからのメッセージは全て DlgProc に行くから
後はそこで処理するなり、親ウィンドウに送りなおすなり好きにしな。
0573デフォルトの名無しさん
NGNGを教えてください。
ドキュメント上は
Gdiplus::Graphics::MeasureString()
で取れる仕様になってるんですが、実際に取得すると幅が若干広いので、
この情報を信用して描画すると、テキストの間が空きすぎてしまうのです。
試したところ、半角スペース一文字の幅を↑で取得して返ってきた
値を引いてやると、大体ちょうどいい感じになるようですが、こんなやり方で
いいのかという疑問があります。
Fontの色や属性を一部変えつつ描画するといった場合には必須だと
思われるのですが……
0574デフォルトの名無しさん
NGNG↓自作クラス
C_MCI::open
C_MCI::saisei
っていうのが同じものを操作するとしても、
WNDCLASSAでオープンしてWNDCLASSBから再生すると、
オープンされていません
っていうエラーがでました
同じエイリアス名でも、WNDCLASSが違うと呼び出せない気がする・・・
なにか方法はありませんでしょうか?
0575デフォルトの名無しさん
NGNG終端文字のサイズも計算してないか?
0576デフォルトの名無しさん
NGNG終端文字とは?
仕様上、trailing spaceの幅はデフォでは計算しないようですが
一文字ずつ食わせると、はっきり「幅が広すぎる」ことが分かります。
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGは?
プロポーショナルフォントだからこそ、メトリックスをシステムに
図らせたいんですが?
Aという文字に続いてBという文字をレンダしたいときに、
Aの幅情報が必要でしょう。
別にカーニングやリガチャのような複雑な処理を求めている訳ではありませんよ。
0579デフォルトの名無しさん
NGNG左右に半角スペースの1/2程度の幅のマージンを入れたがるようなのですね。
で、Gdiplus::Graphics::MeasureString()はそのマージン含みの
バウンディングボックスを返してくる、という印象です。
GDIならば::GetTextExtentPoint32()を使うところでしょうが、
Gdiplusではどうやるのが正しいの?というのが質問内容です。
C#ではくくりつけのGraphics2DエンジンがGDI+ですから
同じ問題に遭遇するでしょうしね。
0580デフォルトの名無しさん
NGNG○DrawString()
ですた。
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGこういう話か。
0584デフォルトの名無しさん
NGNGWNCLASSが違うとって、何を言ってるのか分からんのですが、
別スレッド同士だとエイリアス名共有できないというのは体験したことある。
そのときは、Aスレッドでオープンした曲をBスレッドで操作したかったのですが、
結局Aスレッドのウィンドウにメッセージ送って制御させました。
あまり参考にならないかな。。。
0585デフォルトの名無しさん
NGNGオープンしたデバイスを共有したいってこと?
mciSendCommandでMCI_OPENして、取得したデバイスIDをstatic宣言した領域に格納するとか。
0586デフォルトの名無しさん
NGNGhttp://www.codeproject.com/cs/media/measurestring.asp
> I found this technique through a GDI+ KB article (Q307208) at http://support.microsoft.com/default.aspx?scid=kb;EN-US;q307208
> Summary: to measure a string without resolution dependent effects and 1/6 em gaps you must use a GenericTypographic StringFormat.
> Something like:
> sfmt = StringFormat.GenericTypographic;
> size = graphics.MeasureString( m_Text, m_ActiveFont, 1000, sfmt );
> Although the article doesn't say it, I believe the GenericTypographic StringFormat sets some internal bits that are not available through the API any other way, at least I haven't found them (and I've been trying).
0587デフォルトの名無しさん
NGNG>>586
Thx.
MeasureCharacterRange()を使え、ということですね。
ありがとうございました。
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNG0590588
NGNG0591588
NGNGLPCTSTR lpTemplate,
HWND hWndParent,
DLGPROC lpDialogFunc
);
だってさ。
VisualStudio.net 2003 Pro に付属のMSDNより。
0592デフォルトの名無しさん
NGNG0593588
NGNG正解は、
DialogBox関数の戻り値は、いつの間にINT_PTRに変わったの?
だった。
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG0596588
NGNG型違い警告が出てちょっといやな感じだから。
まぁ、正直あまり気にしてないけどVisualStudio買った記念カキコ
したかっただけ。
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG取得するにはどうしたらよいのでしょうか?
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGそんなおまいは、とりあえず警告レベルをあげろ
0601デフォルトの名無しさん
NGNGhMemDC = CreateCompatibleDC(hDC);
で、画面を作成して、
WM_PAINT:
FillRect(hMemDC, &rect, CreateSolidBrush(RGB(100, 100, 128)));
〜中略〜
BitBlt(hDC, 0, 0, MEM_SX, MEM_SY, hMemDC, 0, 0, SRCCOPY);
で画面を塗りつぶしているんですが、
何秒か経過したところでFillRectが実行されなくなってしまいます。
(背景色が表示される)
安定して画面を塗りつぶすのにはどうしたらよいのでしょうか?
どなたかご教授お願いします。
0602デフォルトの名無しさん
NGNG100,100,128のブラシDeleteObjectしてんのか?
0603デフォルトの名無しさん
NGNG559あたりから読み直してください
0604デフォルトの名無しさん
NGNGGDI Object大量生成(w
0605デフォルトの名無しさん
NGNGブラシ削除するの忘れてました。吊ってきます∧‖∧
ありがとうございました。
0606601
NGNG0607ミナツキ サヤ ◆SAYAC2HJWE
NGNG0608デフォルトの名無しさん
NGNGなにが悪いんですか?
case WM_CREATE:
InitCommonControls();
hToolBar = CreateWindowEx(
0, TOOLBARCLASSNAME, (LPSTR) NULL,
WS_CHILD | CCS_TOP,
0, 0, 0, 0, hWnd, (HMENU) NULL, hInst, NULL);
SendMessage(hToolBar, TB_BUTTONSTRUCTSIZE,
(WPARAM)sizeof(TBBUTTON), 0);
tbarddbitmap.hInst = NULL;
tbarddbitmap.nID = (int) LoadBitmap(hInst, "IDB_BITMAP1");
SendMessage(hToolBar, TB_SETBITMAPSIZE,
0, (LPARAM)MAKELONG(32, 32));
SendMessage(hToolBar, TB_SETBUTTONSIZE,
0, (LPARAM)MAKELONG(32, 32));
SendMessage(hToolBar, TB_ADDBITMAP, 3, (LPARAM)&tbarddbitmap);
SendMessage(hToolBar,
TB_ADDBUTTONS, (WPARAM)3, (LPARAM)&tbb);
SendMessage(hToolBar, TB_AUTOSIZE, 0, 0);
ShowWindow(hToolBar, SW_SHOW);
0609デフォルトの名無しさん
NGNGGetDlgItemTextで得た文字をどうやってメインで使ったらよいのかわかりませぬ
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNGPeekMessageの第四引数にPM_REMOVEを指定するのと、
PeekMessageの第四引数にPM_NOREMOVEを指定して次に
GetMessageを使用するのとでは何か違いがあるでしょうか?
例えば
if (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)){
if(!GetMessage(&msg, NULL, 0, 0)) return msg.message;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
と、
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
if(msg.message == WM_QUIT) return msg.message;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
です。
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNGが、NULL を返します。どのような原因が考えられるでしょうか?
IDB_BITMAP1 は確かに存在します。
開発環境がWin98なため、GetLastErrorは使えません。
0614デフォルトの名無しさん
NGNG対応情報
Windows NT: バージョン 3.1 以降
Windows: Windows 95 以降
Windows CE: バージョン 1.0 以降
まぁあとは
"IDB_BITMAP1" なんてのは無いんだろうなぁ。
とりあえず、MSDNライブラリをよく見るべし。
0615デフォルトの名無しさん
NGNGIDB_BITMAP1 BITMAP DISCARDABLE "bitmap1.bmp"
となっています。もちろん、bitmap1.bmp もあります。
あと、MSDN には、
LoadBitmap
Windows NT/2000/XP: To get extended error information, call GetLastError.
と書いてありました。
0616デフォルトの名無しさん
NGNG>Windows NT/2000/XP: To get extended error information, call GetLastError.
Win98じゃ使えないとは書いてないね
0617デフォルトの名無しさん
NGNGresource.hとかに
#define IDB_BITMAP1 xxxx
みたいに定義されてないか?
それならMAKEINTRESOURCE(IDB_BITMAP1)を使え
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG普通はMAKEINTRya
0620デフォルトの名無しさん
NGNG返り値無し(void)のAPIが色々ありますよね。これをGetProcAddress/LoadLibraryして呼び出し、
返り値をintに格納させると一定の値を返す事があるのですが、どのように実装されているのでしょうか?
関数からreturnで値を返していることはないと思うんですが、、、
0621デフォルトの名無しさん
NGNGたまたま EAXレジスタの値がそうだっただけではないかな?
0622デフォルトの名無しさん
NGNG同じリソースファイル中のアイコンは読み出せます。
GetLastError は 87 (ERROR_INVALID_PARAMETER)が入ってました。
0623デフォルトの名無しさん
NGNGありがとうございました。
このマクロはいつごろ追加されたんですか?
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNGBitmaps Overview, Bitmap Functions, CreateBitmap, DeleteObject, LoadCursor, LoadIcon, LoadImage, MAKEINTRESOURCE
くらいみろよ。
0627デフォルトの名無しさん
NGNGどうしたらウインドウの大きさを調節できますか。
0628デフォルトの名無しさん
NGNG私が3.1でプログラミングを始めた時にはすでにありました。
長老と呼ばせてください
0629デフォルトの名無しさん
NGNGSetWindowPos
0630デフォルトの名無しさん
NGNGAdjustWindowRect
0631デフォルトの名無しさん
NGNGrect.right = 640; rect.bottom = 480;
AdjustWindowRect(&rect, 0, TRUE);
SetWindowPos(hWnd, HWND_TOPMOST, 0, 0,
rect.right - rect.left, rect.bottom - rect.top, SWP_NOMOVE);
とすると、ウインドウの外枠を含めて 640x480 になってしまいます。
クライアント領域だけで640x480にしたいのですが、方法はありますか?
0632デフォルトの名無しさん
NGNGウインドウサイズとクライアントサイズの差分だけ広げろ
AdjustWindowRectはメニューの折り返しを自動で考慮してくれないし、
折り返し状況を取得する方法がないからだめ。
0633デフォルトの名無しさん
NGNGint main(){
MessageBox(NULL, "Hello World!", "Caption", MB_OK);
return 0;
}
これがコンパイルできません。何故ですか?
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG-#include <stdio.h>
+#include <windows.h>
0636デフォルトの名無しさん
NGNG+int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
0637デフォルトの名無しさん
NGNGそれはもんだいではない
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNGもうPCにはウインドウしかなくコンソールやDOSなどというものは考えもしないのだろう。
だから>>633のようなコードを書いておいて平気で
「コンパイルできません」
のような発言をする。
たのむからLSI-C86の試食版あたりからプログラムの勉強をしてくれ。
0640633
NGNG0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNG自動的に resouse.h が書かれるようにするにはどうしたらいいですか。
0644デフォルトの名無しさん
NGNGテキストエディタで弄ったら自動でってのなら、そんなキモイことして欲しくない。
0645デフォルトの名無しさん
NGNGIDEかなんかの話か?
もちっと状況を説明しないとたたかれて終わるだけだぞ。
0646デフォルトの名無しさん
NGNG禿しくスレ違い。
それに "resource.h" の間違いにちまいまい。
0647デフォルトの名無しさん
NGNGしかしAPIってかofstreamだな
0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNGhFile = CreateFile(TEXT("file.txt"),
strFile = (LPSTR)malloc(GetFileSize(hFile, NULL));
ReadFile(fh, strFile, GetFileSize(hFile, NULL), &wReadSize, NULL);
CloseHandle(fh);
filelist[wReadSize] = '\0';
1.このコードは安全(確保されたメモリ以外の場所に書き込みを行わない)ですか?
2.filelist[wReadSize] = '\0' が必要なのはなぜですか?
0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNGいいえ。
0657デフォルトの名無しさん
NGNG1.
最後の行でぶち壊している。
2.
必要ではない。
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG理由1:最後に埋める\0分のサイズが足りない
理由2:該当ファイルが3.5GBとかあったらどうするのか。
0660デフォルトの名無しさん
NGNGCなの?C++ならmallocはやめてnewを使おうよ
1.1バイトリークしてる
2.strFile[wReadSize-1] = '\0';
とすべきでしょう。必要なのはprintf(strFile);とするときに文字列終端
であるNULLが無いと困るから
0661デフォルトの名無しさん
NGNG>とすべきでしょう。
正気か
0662デフォルトの名無しさん
NGNG1. いいえ。2回目のGetFileSize()の戻り値が、最初のGetFileSize()の
戻り値より大きい可能性がある。
0663660
NGNGCloseHandle()してるな。
リークしないけど1バイト壊すとこだった(w
0664660
NGNGstrFile = (LPSTR)malloc(GetFileSize(hFile, NULL)+1);
ReadFile(fh, strFile, GetFileSize(hFile, NULL), &wReadSize, NULL);
CloseHandle(fh);
strFile[wReadSize] = '\0';
...
free(strFile);
0665デフォルトの名無しさん
NGNG喩えファイルが短く、直接printf()したい場合であったとしても、
終端のナルキャラは必要ではない。
つーか、ちっとも困らない。
0666デフォルトの名無しさん
NGNGFILE* fp = _tfopen(TEXT("file.txt"),TEXT("rb"));
char* pBuf = new char[nFSize+1];
memset(pBuf,0,nFSize+1);
fread(pBuf,1,nFSize);
pBuf[nFSize] = '\0';
fclose(fp);
...
delete [] pBuf;
のほうがいいな、俺は
0667666
NGNGこれ要らなかった(w
0668デフォルトの名無しさん
NGNGfreadの引数が足りない
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNGnande?
0673デフォルトの名無しさん
NGNG中途半端にC++使うのは好きじゃないなあ。
0674デフォルトの名無しさん
NGNGprintf("%.*s", nFSize, pBuf);
ってことでしょ。
0675デフォルトの名無しさん
NGNG「PrintScreen」キーが押された際に送られてくるメッセージが判らないのです。
WM_KEYDOWN 時に VK_SNAPSHOT,VK_PRINTSCREEN 等調べてみてそれっぽいことをしても
巧くいきませんでした。
なにか良い方法はないでしょうか?
0676デフォルトの名無しさん
NGNGホットキーというものを使ったところ思った処理ができるようになりました。
お騒がせしてすいませんでした。
0677デフォルトの名無しさん
NGNGPeekMessageってメッセージが無ければ0を返すんだから
どちらもメッセージ無い時は条件入らないんじゃ?
あまり詳しくないんで、違ってたらスマソ。
0678デフォルトの名無しさん
NGNGhandle = CreateFile(
detail->DevicePath,
0,
0,
NULL ,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL );
THERMAL_INFORMATION thm;
ret = DeviceIoControl(
handle,
IOCTL_THERMAL_QUERY_INFORMATION,
0,
NULL,
&thm,
sizeof(thm),
&bsize,
NULL );
ひょっとして、根本的に間違ってるのかな?
0679デフォルトの名無しさん
NGNGというか、CreateFile の第2引数が 0 なんですが。
DeviceIoControl で必要なアクセスタイプを指定する必要があるんじゃない?
DeviceIoControl 使ったこと無いが…
0680678
NGNG0がデバイス問い合わせアクセスとなっていたので0にしていた。
ひとまず、GENERIC_READを指定してみたけどやはり取得できない。。。
ただ、DeviceIoControlのエラーコードが0のときは”アクセスできません”で
GENERIC_READのときは"ファンクションが違います"になるようです。
0681taro
NGNGm(__)m
定額PHSパケット通信AirH"のVenturi Client(通称:竜巻)という圧縮プロキ
シを使用時に、自作アプリの通信が出来なくて困っています。
ttp://www.ddipocket.co.jp/customer/download/tornado/
SDKでWinSockを直接叩いて、同期ソケットで単純に
WSAStartup()して、gethostbyname()して、getservbyname()して、
socket()して、connect()して、send()して、recv()して
そこら辺の普通のHTTPサーバからHTML文書をダウンロードしているのですが
send()で「GET http://www.odn.ne.jp/index.html」などと送信してから
recv()で受信しようとするとrecv()から処理が戻ってきません。
send()ではちゃんと全バイト数の返り値が返ってくるので、送信は
たぶん出来ていると思うのですが(自信ありません。。)
竜巻を動かしていない時には一応ちゃんとダウンロード出来ているのですが
全くの初心者状態なので、プロキシサーバを間に入れて通信するには
どうしたらいいのかとかもわからないというような状態です。。
どなたかご存知の方がいましたら、アドバイスをお願い致しますm(__)m
申し遅れましたが環境は、Windows2000pro・VC++6.0pro・SDKです。
どうぞ宜しくお願い致します。
0682デフォルトの名無しさん
NGNGSendは内部で処理されるため実際に送信されて無くても送信したことになってる。
0683デフォルトの名無しさん
NGNG何となくだけど、プロキシーに規制がかかってるんじゃないのかな。
GETを飛ばすときにUser-Agentを騙す必要があるとか(w
0684デフォルトの名無しさん
NGNGローカルで動いてるのか別のとこにあるのかポートはなにかとか。
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGクライアントにもローカルプロクシが立つのかがわからない。
0687デフォルトの名無しさん
NGNGリージョンをメモリDCに適用することはできないのでしょうか?
どうも、うまく適用されません。
hdc = GetDC(hWnd);
hMemDC = CreateCompatibleDC(hdc);
(略)
SelectClipRgn(hMemDC , hRgn);
0688687
NGNGメモリDCにクリップリージョンが適用されました。
単純ミスでした。
すいません。
0689デフォルトの名無しさん
NGNGどのライブラリーを使えばいいのか教えてほしい
0690689
NGNGすいません。
0691デフォルトの名無しさん
NGNG0692689
NGNGもう一回。
CreateWindowsExで作成したスクロールバー(単独)のものを操作するには
何のAPI使えばいいの?
スクロールバー内の情報をセットしたいのです。
ただ、SetScrollInfo(hwnd , SB_VERT , &scr , TRUE);だと、ウィンドウ内にある両端のスクロールバーを操作するものですよね?
私が作ったスクロールバーは、単独のものです。
CreateWindowEx(
0L,
"SCROLLBAR",
(LPSTR) NULL,
WS_CHILD | WS_VISIBLE | SBS_VERT,
0693デフォルトの名無しさん
NGNGSB_HORZとSB_VERT以外に何がある?
0695taro
NGNGPOP3通信をしてみたら普通に動いたので、もしやと思い、今までHTTP0.9形式で
リクエストしてたのを、HTTP1.0or1.1風味でやってみたら無事通信できました。
レスくれた方々ありがとうございましたm(__)m
0696デフォルトの名無しさん
NGNGコードを書いた場合、そのプログラムは Win 9x でも
(メッセージ処理用のコードを除いて)動作しますか?
0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNGWinsockスレってどこにありますか?
教えてください。
0699デフォルトの名無しさん
NGNG思ってたし、MSDNにもそんなこと書いてあるんでそうしてたんですが、
それって過ちじゃないかと今日気づきました。
DependencyWalkerで見ると、序数指定つきで作られたインポートライブラリ
からインポートしているプログラムは、当然のように序数でインポート
してるんですね。ところが、__declspec(dllexport)、あるいは
序数指定無しのDEFファイルで指定されたシンボルは、
名前でインポートしてるのが分かる。あくまでやってみて気づいた
経験則であって、どこにもそんなことは書いてないですけどね。
これ、どっちがいいかっつったら勿論後者ですよね。スタブコードが
ちゃんと名前でGetProcAddress()してくれるなら、
バージョンアップの際にいちいち序数管理する必要ないから。
で、面白くなって色々調べてみると、MS謹製のライブラリでも、ものに
よってまちまちなんですよ。kernel32, user32, msvcrtのような奴は
名前エクスポートなんだけど、mfc42, oleaut32, wsock32あたりは
序数エクスポートになってる。
いったん序数エクスポートにしちゃうと、後方互換性のためにはそれを
維持しなきゃいけないからそうなってるのかなあ、とか思ったりしました。
皆さんは、この辺、どうやってますか?
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG開かれている(WriteOpen)ことを検知するAPIはありますか?
0702デフォルトの名無しさん
NGNG互換性維持っていうほど簡単じゃないと思う
俺はすっかり放棄
0703デフォルトの名無しさん
NGNG昔は序数リンクしかできなかったんじゃなかったっけ?
序数リンクのほうがリンクがごく僅かに速いだろう、というのはあるけ
ど、互換性目的以外で今の時代にわざわざ序数リンクを使う理由なんて
ない。
0704デフォルトの名無しさん
NGNG0705699
NGNGその「昔」というのはWin16時代のDLLですか?
kernel32が名前エクスポートになってるということは、Win32は最初からそれを
サポートしていたということになりますね。
ていうかGetProcAddress()が名前でDLLのシンボルをfetchできる
以上、できないはずがないのだけれど。
>>704
ご丁寧にNONAMEまでつけてしまうということですか。Unixでstripをかけるのと同じ
感覚なのだろうか。
序数つきで作成したimport library(NONAME指定無し)にも、ちゃんと名前シンボル
は入ってるんですよ。で、私には序数「無し」で作成したものとの違いがlibファイル
だけでは分からないのですが、MSのリンカは不思議なことにこれを区別する
んですよね。
序数指定無しの場合はlibが勝手に序数を指定するだけだと思ってました。ていうか
ドキュメントにそう書いてあるし。
0706デフォルトの名無しさん
NGNG時間のかかる処理をしている最中にも、
ウィンドウ操作ができるようにと、
PeekMessageを定期的に呼び出すようにしたのですが、
その時に、メニューとかの操作を行うとその処理が終わるまで、
呼び出し元(=ここでは「時間のかかる処理」)が止まってしまいます。
呼び出し元を止めずに処理することはPeekMessageでは出来ないのでしょうか?
0707デフォルトの名無しさん
NGNGそこでマルチスレッド。
0708デフォルトの名無しさん
NGNG処理の流れは常に一元的だ。
0709デフォルトの名無しさん
NGNG>>708
頑張ってマルチスレッドに取り組んでみます。
レスありがとうございました。
0710デフォルトの名無しさん
NGNG地獄に片足つっこんだな・・・
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG片足だから。
でも原因がすぐにわからないバグがあったときなんか
あってるのにものすごいスレッド部に自信がなくなる・・・
0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNG3スレッドで大丈夫なら桁が変わっても大丈夫。
…パフォーマンス以外は。
0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG最後のリソースを使い切ってあぼーんすることが多すぎる。
0722デフォルトの名無しさん
NGNGあるときイベント処理が滞った。
気付いたらスレッドが爆発していた。
#ありがちではある。
0723デフォルトの名無しさん
NGNGDeadlockとか。
マルチスレッドはデバッグしづらいからなぁ・・・
0724デフォルトの名無しさん
NGNG表示してくれるツール無いかなぁ・・・
イベント、クリティカルセクション対応で依存まで表示してくれる。
0725デフォルトの名無しさん
NGNGクソスレ立てんな。
0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNGちょっと寒いが>>725のギャグを理解してやろうな?
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNGわかるかヴォケ
0730デフォルトの名無しさん
NGNGインテルがスレッドのデバッグ&プロファイルツール出してるよ。
0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNGそれ用のスレッドで管理せんとダメだろ。
0733デフォルトの名無しさん
NGNGきちんと管理できるように体系立ててやってるうちはいいけど、特定のパターンで沈黙したら困るからここスレッドね、
ってなことを繰り返してるとVer.2で総つくり直しなんて目にあいかねない。
0734デフォルトの名無しさん
NGNG穴だらけの終了処理をみると目を覆いたくなる。
ワーカーより先にメインスレッドが終わるケースをまったく考えて無い奴とか。
0735デフォルトの名無しさん
NGNGリアルタイムじゃない。
あと、スレッド間の依存とかグラヒィック表示も弱いし。
体験版使ったが英語でよくわからない・・・・
まあ、あれ使って一カ所バグ発見できたが。
0736デフォルトの名無しさん
NGNGあんたの突っ込みで笑えた。
0737デフォルトの名無しさん
NGNGやっぱり、ツッコミはボケを引き立てるからな。セットでないと。
0738デフォルトの名無しさん
NGNGって何?
0739デフォルトの名無しさん
NGNG今いるところ。
0740デフォルトの名無しさん
NGNGマトリックスしてる状態じゃないかな
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNGSetDIBitsToDeviceをつかってPNGファイルを読み込もうとしているのですがうまくいきません。
とりあえず640*480のPNGを読もうとしているのですが、SetDIBitsToDeviceの戻り値が0になって、GetLastErrorが「パラメータがただしくありません」になります。
もう、どこを修正していいのか分かりません。
分かる方、アドバイスお願いします。
//memDC,PngFileSize,pPngFileDataは設定済み。
//OSはMeです
BITMAPINFOHEADER binfo;
binfo.biSize=sizeof(BITMAPINFOHEADER);
binfo.biWidth=640;
binfo.biHeight=480;
binfo.biPlanes=1;
binfo.biBitCount=0;
binfo.biCompression=BI_PNG;
binfo.biSizeImage=PngFileSize;
binfo.biXPelsPerMeter=0;
binfo.biYPelsPerMeter=0;
binfo.biClrUsed=0;
binfo.biClrImportant=0;
SetDIBitsToDevice(memDC,0,0,640,480,0,0,0,480,pPngFileData,(BITMAPINFO*)&binfo,DIB_RGB_COLORS);
0743デフォルトの名無しさん
NGNG0744742
NGNGMSDNには98以上で使えると書いてあったので大丈夫と思っていたのですが・・・
無理ならSusieプラグインを使ってみます。
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNGpassed to SetDIBitsToDevice, the function will fail and return GDI_ERROR. If failure does
occur, the application must fall back on its own JPEG or PNG support to decompress the
image into a bitmap, and then pass the bitmap to SetDIBitsToDevice.
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG他OSだと、GDI+のインストールを促さないとあかんので、面倒なことになりそうだけど。
0749デフォルトの名無しさん
NGNGreturnの所に書いても大丈夫なのでしょうか。WM_PAINTなどを実行した後に
DefWindowProcを実行しても大丈夫かという意味です。
0750デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNGGDI+のDLLはアプリと共に配布する事が許可されています。
0753デフォルトの名無しさん
NGNGVBランタイムと同じ(サイズは違うが)で、やっぱトラブルの元だと思うよ
0754デフォルトの名無しさん
NGNGそのためのside-by-side(ryって
XP以前のOSじゃほとんど使えないか
0755デフォルトの名無しさん
NGNG話にならんほど使えんな
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNG一般的な話なら、コンソールアプリケーション。
0758デフォルトの名無しさん
NGNGGDI+のdllはCOMじゃないから、exeの横にgdiplus.dllを置いておくだけで事足りる。
だからトラブルはあまり起こらないと思う。
0759デフォルトの名無しさん
NGNGAfxGetInstanceHandleという関数を見つけました。
これは引数が無いみたいですが、
HWNDを渡さなくても大丈夫なんでしょうか。
また、別の関数で得るのなら、それを教えてください。
0760デフォルトの名無しさん
NGNG大丈夫です
0761デフォルトの名無しさん
NGNGMFCじゃないのかそれは
自プロセスのHINSTANCEしか返らないからHWND渡さなくても大丈夫
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGTextOutを復習しよう
0766デフォルトの名無しさん
NGNGおぉ、Win32でもほんとにあった、同じ名前なんだな
まぁこれで他プロセスのHINSTANCE取れたらとんでもないことになりそうだと思うが
0767759
NGNGafx.h(15) : fatal error C1189: #error :
MFC requires C++ compilation (use a .cpp suffix)
グローバル変数か、関数にstaticで保存しとく、とかにします。
>>765
すいません、HDCです。
お答えいただいた方、ありがとうございました。
0768デフォルトの名無しさん
NGNG0769759
NGNG同じようなエラーが出ます。
>>766
というと自分の考え方はあながち間違っていなかったんですかね。
SDKにはない特殊なソースが隠れていてそれでHWNDを判断するみたいな。
ウィンアプリはだいたいwindows.hで全て出来るけど、
afxwin.hと別のヘッダーを利用している所からも特殊なんでしょう。
0771デフォルトの名無しさん
NGNG開発言語は「Visual Basic 6.0」です。
OSは「WindowsXP Personal Edition」です。
「RasDial」でRASの接続を行い、
「RasHangUp」でRASの切断を行う処理を行っております。
プログラム起動をして初回の接続は問題無く動作し、
切断する事も出来ます。
ですが、続けて同じRASに接続しようとした場合
エラーコード「668」(接続を終了しました。)
が返されてしまい、接続する事が出来ません。
「Windows98 Second Edition」では正常に動作しておりました。
この現象について何かご存知の方はいらっしゃいますでしょうか?
0772デフォルトの名無しさん
NGNG属性はFILE_ATTRIBUTE_DIRECTORYなんですか?
Windows2000以外でも同じですか?
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG5件もヒットするぞ。(藁
0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGワロタ
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGGetWindowLong()じゃだめなの?
hInstance = (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE);
みたいにすれば得られるけど。
0780デフォルトの名無しさん
NGNG入っているフォントと初期フォントを
紹介したサイトはありませんか?
0781780
NGNGフォントを利用したツールを作ろうと思っていて、
ユーザーに独自のフォントを使わせたくないんで。
…スレ違いだったかな?
0782デフォルトの名無しさん
NGNG擦違い
0783デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=149
タイプ1が1セルずつ表示するバージョンで、
タイプ2が表示する内容を別の所に記憶しておき最後に一度で表示させようと
した物です。タイプ2の方が表示されないので正しいやり方を教えてください。
なお、ビットマップが添付されてますのでソースと同じフォルダに置いて下さい。
0784783
NGNG0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNGビットマップがない。>>539と同じ問題。
0787デフォルトの名無しさん
NGNGスレ違い。
0789783
NGNGこんな感じでやってみたのですがダメでした。
もう少しヒントをください。
SelectObject(hDCBitmap, hBitmap);
for(x=0; x<20; x++)
for(y=0; y<20; y++)
{
BitBlt(hDCBack, x*16, y*16, 16, 16, hDCBitmap, 0, 0, SRCCOPY);
//Sleep(1);
}
DeleteObject(hBitmap);
SelectObject(hDC, hDCBack);
BitBlt(hDC, 0, 0, 320, 320, hDCBack, 0, 0, SRCCOPY);
DeleteObject(hDCBack);
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGSelectObject() してないと、hDCBitmap から hDCBack に blt すると
きに描画先が足りないっしょ?
0792デフォルトの名無しさん
NGNGHDC hDCBitmapに対応するHBITMAPはhBitmap。
同じように、HDC hDCBackに対応するHBITMAPを設ける必要があるよ。
791が言っているのは、
HBITMAP hBmpBack=CreateCompatibleBitmap(hDCBack,320,320);
SelectObject(hDCBack, hBmpBack);
が必要だってこと。
0793783
NGNG>>792
黒に白い線が入った感じで表示されてしまいます。どこがいけないのでしょう。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=150
後、同じような事をやっているプログラムを見つけたのですが、
それでも同じような感じで表示されます。
http://www3.omn.ne.jp/~renas/Win32/Win32_08.html
0794デフォルトの名無しさん
NGNGコンパチビットマップを設定する順序が無茶苦茶だと思われ。
0795デフォルトの名無しさん
NGNGCreateCompatibleBitmapで指定するHDCは大元のHDCを指定する必要がある。
MSDNのCreateCompatibleBitmapの解説をじっくり読みましょう
0798783
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=151
0799デフォルトの名無しさん
NGNGこのダイアログにはIEコンポーネットが貼ってあるので、できれば
システム全体かダイアログ全体のイベントとして処理したいのですが
普通はどのように実装するものなのでしょうか?
対象はWinCE(HPC2000)ですが、基本は同じだろうと思って
ここに書きました。
よろしくお願いします。
0800デフォルトの名無しさん
NGNGWM_TIMER
0801デフォルトの名無しさん
NGNG何を放置か知らないけど、>>800さんの意見+放置対象を監視すると桶。
0802デフォルトの名無しさん
NGNGX = (int)SendDlgItemMessage (hDlg, IDC_LIST, LB_GETCURSEL, 0, 0);
であってます?
どれ選んでも0が代入されちゃうんですけど・・・
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG同じマシン内でサーバとクライアント立ち上げたときは反応しますが
違うマシン同士では反応しません。
IPとかポートはちゃんとしています。
原因はUDPつかってるからでしょうか。
よろしくお願いします。
0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNGポートってTCPのポートだったら笑えるな。
そもそもチャットにUDP使うこと自体がおかしい。
UDPは転送も、順番も保証がない。
それとネットワークプログラミングスレで聞け。
0807804
NGNG0808デフォルトの名無しさん
NGNGvoid Update() {
ListView_DeleteAllItems(m_hLV);
for (...) {
LV_ITEM lvItem;
...
ListView_InsertItem(m_hLV, &lvItem);
...
}
}
DeleteAllItemsをしたときにスクロールバーが戻ってしまいます。
スクロールバーが戻らないように表示内容だけ更新する方法はないでしょうか。
0809808
NGNG0810デフォルトの名無しさん
NGNG変更のあったアイテムだけ書き換えるんじゃだめなの?
あとは、大量のアイテムを追加したりするときのために
描画を停止させる方法があった気がするけど、
スタイルだったっけなぁ・・・?
0811808
NGNGDeleteAllしないでInsertすると項目がどんどん追加されてしまうし、
どうしたら変更のあったアイテムだけ書き換えることができるでしょう?
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGお好きな方をどうぞ。
前から疑問に思っていたのだけど、質問するときにスレを上げるのって何か意味があるの?
ローカルルールなら仕方ないと思うんだけど、たまにムカっとくるんだが。
0814デフォルトの名無しさん
NGNG2ちゃんブラウザ使ってるとそう思うときもあるけど、
IEとかネスケ使ってる場合、ageてくれないと見つけづらいからね。
記事が目に付かないと答えがもらえる可能性も低くなるし。
最近は見ないけど、質問するときはageとけっていってる人もいた。
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNG>ローカルルールなら仕方ないと思うんだけど、たまにムカっとくるんだが。
ほう。どうしてムカつくのかね?
0818デフォルトの名無しさん
NGNG私もちょっと思う。
けど、sage
0819デフォルトの名無しさん
NGNG仮にも技術板なんだし、
質問やニュース系がageで、普通の雑談はsageにしたほうが
利便性高い気がしなくもないけど。
普段からageてると、質問が埋もれるし。
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG2ch中にたくさんいるだろうが。
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNGyoso送り
0828デフォルトの名無しさん
NGNGそれでもageるのは質問スレの慣習かな。
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNGプログラム板だからどれも同じと思ったらしいが。
0832デフォルトの名無しさん
NGNG漏れのブラウザでは、sageがデフォルトなんでつが・・・
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNG思うぞ。
ところで、8bpp 以下の DIB のパレットの扱いがよくわからん…。どっ
かにいい解説はないもんだろうか。
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNG0839デフォルトの名無しさん
NGNG0840836
NGNGあーいや、BMPのファイルフォーマットは理解してるんです。
CreateDIBSection() で DIB_PAL_COLORS したときにどんなパレットが
HBITMAP の中に記録されているの? とか、GetObject() で DIBSECTION
が取れるけど、DIBSECTION にパレット情報が含まれないのはなんで?
とか、GetDIBColorTable() に HDC が必要なのはなんで? とか。
0841デフォルトの名無しさん
NGNGパレットはビットマップじゃなくてデバイスコンテキストの属性だから。
0842836
NGNG渡してるよね? そのときに渡したパレットの情報は HBITMAP の中には
保持されてないってこと?
0843デフォルトの名無しさん
NGNGそうですよ。
っていうか841に書いたように「パレット」はデバイスコンテキストの属性なんだってば。
0844843
NGNG0845デフォルトの名無しさん
NGNGCreateDIBSectionとかで指定するのは、ビット列がどんな色情報を
持っているかだけで、その後のパレットとは関係ない。
0846836
NGNG>>845
CreateDIBSection() ではピクセルのデータは入力しないから、その説
明だと bmiColors の情報は全く何にも使われないことになっちゃいま
すよ。
MSDN の説明を読む限りでは、DIB_PAL_COLORS でも DIB_RGB_COLORS で
も bmiColors のテーブルには意味があるはず。
0847デフォルトの名無しさん
NGNG0848836
NGNGDIBSection な HBITMAP の場合、
・CreateDIBSection() で DIB_RGB_COLORS のときに bmiColors に入って
いるもの
・CreateDIBSection() で DIB_PAL_COLORS のときに HDC が SelectPalette()
してるHPALETTE と bmiColors に入っている WORD 配列
・その HBITMAP を SelectObject() した HDC が SelectPalette() してる HPALETTE
・GetDIBColorTable() と SetDIBColorTable() で出し入れできるもの
これらの関係はなにさ? ということ。
0849デフォルトの名無しさん
NGNG0850843
NGNGbmiColors にある clut が意味を持つのは、StretchDIBits や SetDIBits などで使うときだけ。
CreateDIBSection で得られた HBITMAP は、旧来の GDI 的には旧来の HBITMAP としてしか
扱われないので、HBITMAP を用いる場面では SelectPalette 等する必要がある。
>・CreateDIBSection() で DIB_RGB_COLORS のときに bmiColors に入っているもの
>・GetDIBColorTable() と SetDIBColorTable() で出し入れできるもの
この2つは同じ化も知れない。
あとは全て相互に無関係。
まぁ普通はプログラマが意識して一致させるだろうけど。
0851デフォルトの名無しさん
NGNGそれはさておき、本題を書きましょうか。
まず、少し混同しているようだが、パレットとカラーテーブルは別物。
CreateDIBSectionで作られるHBITMAPの中にあるのはカラーテーブル。
CreatePaletteなどで作るHPALETTEがパレット。
CreateDIBSectionのiUsageはそのカラーテーブルをどう作るかを指定してるだけ。
GetDIBColorTableなどでいじってるのも、関数の名前どおりカラーテーブル。
実際画面に表示する時には、このHPALETTE内のパレットと、DIBSection内の
カラーテーブルとをカラーマッチングして表示してたと思う。
0852デフォルトの名無しさん
NGNGImmGetConversionListを使ってIMEでの変換候補を取得しようとしています。方法は
ttp://www.mitene.or.jp/~sugisita/vb6_ime.html
の「IMEの変換候補の取得」をそのまま流用させて頂いてます。
ところがたとえば平仮名の”あ”について変換候補を取得すると
亞、亜の2つしか取得できません。メモ帳で”あ”を変換すると私の環境では
亜、亜、ア、あ、阿、ぁ、蛙、唖、ァ、吾の10個の候補が出てきます。
どうやったら10個全て取得できるのか教えてください、よろしくお願いします。
0853名無し@沢村
NGNGビットマップの表示ごときで議論することが何かあるのか?
おまいらに、幼稚園児の称号を与えてもいいか?
0854デフォルトの名無しさん
NGNGPE解析に役立つアセンブラ、とかさ。
0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNG沢 村 に レ ス す ん な
0858デフォルトの名無しさん
NGNGお前に指図はされない
0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNGFindFirstFileで調べないとダメ?もっと簡単なAPIってある?
教えてエロエロな人
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNGところで、
>>861
FindFirstFile とかでぐるぐるするぐらいしか思い浮かばないわ。
じゅうぶん簡単な方法だと思うの。
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNGだよなぁ
>>865
ちげえって、指定フォルダん中にさらにフォルダあるかどうかってきいてんあああああああああああああああああばかあああああああああ
0867デフォルトの名無しさん
NGNGSFGAO_HASSUBFOLDER
のビット見ればいいだろ。
0868デフォルトの名無しさん
NGNGこの関数は連続して文字を書きたいときに、カレントポジションを更新してくれないので
代わりになるような関数とかってありますか?
もしくはDT_EDITCONTROLでやってる計算方法とかわかれば関数を自作してみますけど・・・
DT_CALCRECTじゃ矩形しかとれないんですよね?
#「FindFirstFile とかでぐるぐるする」って表現、なんかかわいいw
0869デフォルトの名無しさん
NGNGお、そんな便利なものがあったのか、と思ったら、COM かあ。
0870デフォルトの名無しさん
NGNGCOMかどうかなんか気にする必要はないぞ。
普通にヘッダインクルードしてライブラリリンクすれば使える。
そもそもAPIなんかほとんどDLLなんだし。何が問題?
0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNGしかし生APIとは言えなくなる罠
0873デフォルトの名無しさん
NGNG相手先の環境によっちゃ、DLL配らなきゃいけないし。
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNG髪!!
さんくす
0876デフォルトの名無しさん
NGNGTEXTMETRIC使ってこねこねじゃダメかしら?
0877868
NGNG文字列B="ぱぴぷぺぽ";
だとすると、
あいうえおかきくけこ
さしすせそぱぴぷぺぽ
のように表示させたいんですよね。
>>876
自分もTEXTMETRICとかでこねこねしたいんですけど、
DT_EDITCONTROL、つまりエディットコントロールの表示方法に合わせたいので
エディットコントロールがどうやって座標計算してるのかが分からないので・・・
でも、レスありがとうございます。
今まで相手にされてなかったので(´・ω・`)してまスた。
0878デフォルトの名無しさん
NGNGなんでスタティックリンクしないの?
0879デフォルトの名無しさん
NGNG毎回全部描く。
0880デフォルトの名無しさん
NGNGしたらどうやってC/C++でJpegを表示するのだ。
VBでいうピクチャーボックスみたいなコントロールあるんですか?
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG表示できます。頑張って探して下さい。
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG0886名無し@沢村
NGNGJPEGを扱うWin32APIはないよ。
だがJPEGをビットマップに変換してやれば簡単に表示できるよ。
0887880
NGNG多々こういう質問があることも知っている。
できないのくらい知っているわ
なんでい、お前らは。
いたすぎるんだよ、発言が。
夜まわりしているような老人の脳みそしかないんだな?藁
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNG0891名無し@沢村
NGNGリッチエディットでキーワードを色づけするにはどうしたらいいの?
FindTextで選択状態にして色づけ→それを繰り返す、ってのはナシで頼むよ。
みなみなさまがた〜教えてくださらんか?
0892デフォルトの名無しさん
NGNGIME2002及びIME2003に登録したいんですが、どーやれば良いんでしょう?
ググってみても...なーも出て来ないし..._| ̄|○
『IMEの辞書登録から抽出して、それから登録』ってのは無しの方向で...
Imm〜関数で出来るんですかね?
誰か教えてくだされ<(_ _)>
0893デフォルトの名無しさん
NGNGwrite RTF by your self.
>>861
it's most easy way.
0894名無し@沢村
NGNGOleLoadPicture() ♪
0895デフォルトの名無しさん
NGNGlstrcat()つかう
0896デフォルトの名無しさん
NGNGそれはWin32APIじゃなくてOLEだっての
0897デフォルトの名無しさん
NGNG屁理屈言ってんじゃねーよ。
0898デフォルトの名無しさん
NGNGそれが屁理屈ならDirectShowを薦めてもいいのか?
0899デフォルトの名無しさん
NGNG本当に屁理屈ばかり言う奴だな。
DirextShowとは性格が違うだろ。
OleLoadPictureはWin32 SDKに標準で入ってるから、Win32APIでいいのさ。
0900デフォルトの名無しさん
NGNGんだね。
WindowsOSに標準で入ってるし。
0901デフォルトの名無しさん
NGNG自分のIPアドレスを取得するAPIってありますかな?
あったらおしえてくだされ。
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNGどういう性格をしたAPIならいいの?
DirectShowが屁理屈なのは分かってるけど、
それでもWin95(OSR2以降だったか)にも標準で入ってたはずだし、
DirectX SDKを入れなくても利用できる。
かたや、OleLoadPictureだってWin32sじゃあ動かない。
テキトーな感覚でOleLoadPictureはよし、
DShowはダメみたいに切り分けてるのが納得いかないだけだ。
0904デフォルトの名無しさん
NGNG必死すぎ
0905デフォルトの名無しさん
NGNGもっとやさしく扱ってやらないとグリーンピースがRMSと一緒に縦笛吹きながら攻めてきますよ。
0906デフォルトの名無しさん
NGNGttp://www02.so-net.ne.jp/~okuda/tech/oleaut32/
によるとデフォ状態のWin95OSR2ぐらいではoleaut32には含まれず
olepro32に入ってるもののようだから、非常に標準的なWin32 API
であるとは言い難いのかもしれない。
0907デフォルトの名無しさん
NGNG作成しようと思い、とりあえず、ハイパーターミナル同士を
接続したのですが、文字を打っても相手側に表示されません。
なにかプロトコルなどがあるのかとおもいますが、ソフト作成
時に使用するDLL、APIなどがあれば教えていただきたいのですが
よろしくお願いします。
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNG�d
0910デフォルトの名無しさん
NGNGPC-TA-TA-PCと言う状態?
だったら、電話線ぶった切ってクロスにして、
片方で「ATD」もう片方で「ATA」コマンドを送れば繋がらない?
アナログモデムはその方法で繋がったと思うけど。
0911デフォルトの名無しさん
NGNG言い返せなくなると、必ず必死だなって言うよなw
だけど、明確な線引きも出来ないくせに、根拠も示さず
自分は正しいお前は正しくないって言うのはどうかしてるよ。
0912デフォルトの名無しさん
NGNG「ATD」「ATA」で繋がってはいるのですが(CONNECT状態)
その後、アナログモデムの場合は文字を送れるのですが、
TAだと送れないという状況です。
0913デフォルトの名無しさん
NGNGWin32sはぶっちゃけありえない
0914デフォルトの名無しさん
NGNGそんじゃDirectXやMFCなどは専用スレがあるんで
ここではスレ違いという線引きでお願いします。
0915デフォルトの名無しさん
NGNGあのねー、TAの通信はモデムとは違うよ。
デフォルトはたぶん同期通信だよ。
シリアルポートとの間で同期-非同期PPP変換をやってくれる。
これが確かV.120。
非同期モードにしないとモデムのように無手順でデータをやり取りすることは出来ない。
こっちはV.110だと思った。
懐かしい話だな。
0916デフォルトの名無しさん
NGNGどもです。
同期でやるにはHDLC手順でやり取りしないと
いけないのかな・・・
なんかわけわかんないからやめよう・・・
0917デフォルトの名無しさん
NGNGおせーて
0918デフォルトの名無しさん
NGNGCOMスレもありますよ。
0919デフォルトの名無しさん
NGNGリソースエディタでメニューを作成。
ダイアログのプロパティを開き、
「メニュー」に作成したメニューのIDを選択。
0920デフォルトの名無しさん
NGNG乱数を表示する方法がわかりません。
どうすれば・・・
0921デフォルトの名無しさん
NGNGなるほどこんなに簡単な作り方だったんですね。
分からないから..rcをテキストで開いて自分で書いてました。
今度からは上のやりかたしてみます。
0922デフォルトの名無しさん
NGNGMessageBox("乱数")
0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNGBMPファイル(24bit)で、行が変わるところに0x00が二つ入ってるものと入ってないものがあって困ってます。
二つの違いはなんなのでしょうか?どなたか教えて下さいまし。m(__)m
0925デフォルトの名無しさん
NGNG一行のバイト数は4の倍数
0926デフォルトの名無しさん
NGNGΣ(゚д`*;)アッ,アハァ?
0927デフォルトの名無しさん
NGNG1ラインのサイズ(byte)は4の倍数でなければならないから
横サイズと色深度によっては末尾に余計な物がつくことがある。
0929デフォルトの名無しさん
NGNGとりあえずWin32APIというよりもお使いの処理系の標準ライブラリに
乱数を返す関数くらい入っていると思われ。。。
VisualC++ならrandとかVBならRndとか。
0930デフォルトの名無しさん
NGNG常識的に考えたらWindows SDKの中に入ってるやつだろ。
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
よって
OleLoadPictureは○
DirectXは×
ついでにGDI+は○
0931デフォルトの名無しさん
NGNG今で話題に上げっている内容とは違った質問なってしまいます.
FindFirstFile関数、FindNextFile関数を使って "D:\"以下(サブフォルダ含む)のテキスト
ファイル(*.txt)を全検索しています。
通常両関数が返す構造体 【WIN32_FIND_DATA】の中の変数 「cFileName」にはフルパス名では
ファイル名のみが返ってくると思います.
そこで、
FindFirstFile関数で取得したファイルハンドル等を使用してファイルのパス名(フォルダ名)
を簡単に取得する方法は何かないでしょうか?
ウィンドウ関連だったら
ウィンドハンドルから該当の実行ファイル名、ウィンドウテキストやウィンドウクラスを取得
する事が出来るのですが...。
どなたかご存知でしたらよろしくお願いします。
VB使っています。
0932デフォルトの名無しさん
NGNGは?
0933デフォルトの名無しさん
NGNGMSDNを何万回も読み直した方がいいよ
0934デフォルトの名無しさん
NGNGフォルダ名だったら最初からわかってるじゃねーか
0935デフォルトの名無しさん
NGNG場違いな質問内容だったみたいなので出直しておきます。
0936デフォルトの名無しさん
NGNGとんち?一休さーん!
0937デフォルトの名無しさん
NGNGすみません。
未熟なものでイメージが全然湧かないです。
具体的な実コーディング方法または記載されているサイト等があれば教えて下さい。
0938デフォルトの名無しさん
NGNGなあ、一セットの FindFirstFile/FindNextFile
でサブフォルダまで一気に検索してくれると思ってない?
0939デフォルトの名無しさん
NGNG俺はここのを参考にした。
0940デフォルトの名無しさん
NGNG好きなところ見てくれ
http://www.google.co.jp/search?q=FindFirstFile&ie=UTF-8&hl=ja&lr=lang_ja
0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNGご参考にさせて頂きます。
0943デフォルトの名無しさん
NGNGよく見ると、不思議な敬語だね。
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNGずいぶん偉そうですね。
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG0950949
NGNG0951デフォルトの名無しさん
NGNGWM_CREATEメッセージのところで、
CreateWindowを用いてボタンを作ったんですが
WM_PAINTメッセージが来たところで一度BeginPaintしないと
表示されません。
また、ボタンをオーナードローで書いてみようと思い、
WM_DRAWITEMメッセージにブレイクポイントを仕掛けても
止まらないんですが、これって何がダメなんでしょうか。
教えて、エロイ人!
0952951
NGNG激しく自己解決しました・・・・・・
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG謎掛けですか?
0955デフォルトの名無しさん
NGNGWord型とは?
DWord型とは?
QWord型とは?
TByte型とは?
0956デフォルトの名無しさん
NGNGそれらは見たことがあります。
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNGバイト型変数には何つけるの?byHogeとか?
0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNG2種類以上のBMPが表示できまへん。
教えてかっこいい人
0963デフォルトの名無しさん
NGNG旧来のではなくてXP風のマウスのポインタを合わせるとボタンの周囲がオレンジで
ふちどられるようにするには通常のMessageBox()では実現可能なのでしょうか?
0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGいくらなんでもそれはないだろう……
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNGWindowsには「バイナリモード」などというものは存在しません。
フツーにCreateFileで開いてください。
テキストストリームの行区切りが\nであると定めているのは、あくまで
「C言語の」仕様に過ぎない。それに合わせるために、MS-DOSだのWindowsだの
MacだののCのランタイムでは、わざわざテキストモードだのバイナリモード
なんてのを用意して、改行を\n一文字に見せてるワケ。
0969デフォルトの名無しさん
NGNG\n・・・Unix
\r・・・Mac
だっけ?
元々印刷の時に復帰、改行の問題があったんだよ。
改行だけでよかったのが復帰がないと間に合わないってだけで作られた過去の遺産。
0970デフォルトの名無しさん
NGNGOSの改行の扱いの違いと、言語仕様の違いはまた別の話だな。
Cがテキストストリームをタイプライタ式で行区切りを\nと定めてるのは、
単にUNIXがそうだから、と言ってしまえばそれまでだが、
むしろ昔の固定長レコードのデータセットが主流だった計算機への反逆じゃ
ないんかと。FORTRANとかCOBOLとかの入出力仕様はモロにその頃のアレだよね。
そういう時代では、そういう腐った入出力レイヤを抽象化・単純化して
扱いたいという発想は極めて自然なものだったんだろうと思う。
後は、計算機で扱う主要なデータがテキストであったとか、むしろテキストに
したかったとか。
0971デフォルトの名無しさん
NGNG多少互換性無視してでも断ち切ってもらいたいよ。
0972デフォルトの名無しさん
NGNG言ってる意味がよくわからんが
いわゆるSDKスタイルで書いてる、WinMain()ではじまるような
ウィンドウアプリケーションでfopen()を使えるんですか?という
意味なら、勿論使えるよ。ただし、Cランタイムをリンクすれば、
という条件つきだが、まあ普通のコンパイラなら何もしなければ
デフォでリンクする。
ただし、あなたが書こうとしてるのがDLLやインプロセスCOMサーバ
の類なら、使えないことはないけど、いろいろ問題があるからlibcに
依存するのはなるべく避けたほうがいい。
0973デフォルトの名無しさん
NGNGというか、ここはCスレじゃないからそもそも使えない可能性が・・・
0974デフォルトの名無しさん
NGNGOpen "FileName" For Binary As #1
0975963
NGNG0976デフォルトの名無しさん
NGNGということはWinアプリケーションは
stdioのようなCライブラリもランタイム結合なんですか?
それとも実行ファイルの段階でCライブラリは静的結合されているんですか
0977デフォルトの名無しさん
NGNGそんなもん処理系次第。VC++なんかはどちらも選べる。
0978デフォルトの名無しさん
NGNGレスありがとうございます。
ということは
実行ファイル+DLL(Cランタイムライブラリ・WINAPI)
実行ファイル(Cライブラリ)+DLL(WINAPI)
のどちらになるか、またはオプションになるかは
処理系依存ということですね
0979デフォルトの名無しさん
NGNG「Cランタイム」つーときの「ランタイム」は、別にDLLとは関係のない
概念で、ちょと意味が違う。
言語サポートのために実行時に呼ばれるライブラリ関数群という程度の意味で、
DLLとして実装されてるかスタティックリンクライブラリとして実装されてる
かは問題ではない。
0980デフォルトの名無しさん
NGNG2chの教えてレスで
ここまで丁寧にレスをもらったのは始めてです
すっきりしました!
0981デフォルトの名無しさん
NGNGコンパイラはMingwなんですが、MingwがリンクするCランタイムライブラリは
msvcrtとlibcのどちらなんでしょうか?
0982981
NGNGMingwでコンパイルしたWinアプリがの間違いでした
0983981
NGNGつまり、動的にリンクするライブラリが
コンパイラ付属のlibcとmsvcrtの2つあるのが、なんか?なんです。。。
0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNGMingwは独自LIBCをいつ使うんですか?
静的リンクの時ですか
0986デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNGスタティックリンクはできない。独自 libc を持つ予定は
いまのところない。
0990デフォルトの名無しさん
NGNGgooooooooooooooooooood job!!!!!!!!!!!!
0991デフォルトの名無しさん
NGNGオプションで crt, VC6, VC7 の DLL にも切りかえれるけどな。
0992デフォルトの名無しさん
NGNGbyte型は分かります
dbyteはdouble byte型ですよね?
dwordはdouble wordで
word型とはナンですか?
0993デフォルトの名無しさん
NGNG(゚Д゚≡゚Д゚) dbyteはどこからキタ
word は byte 2ヶ
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNGdbyteなんて書いてありませんでした
有難うございます
0997デフォルトの名無しさん
NGNGdesuka?
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。