[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/06 20:25 / Filesize : 198 KB / Number-of Response : 948
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build74



1 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 16:30:27 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build73
pc11.2ch.net/test/read.cgi/tech/1227934931/

528 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:44:42 ]
>>527
クラス名で FindWindow() するとか。

529 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:50:05 ]
文字コード環境を調べてタイトルを変化させるとか。

530 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:04:11 ]
タイトルをBase64エンコードしとけばいいだろあけおめ

531 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:04:52 ]
もうだめだ
おしまいだ
しぬしかない

532 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:06:16 ]
>>528
対象ウインドウはJavaのフレームワークのようでかぶった時が怖いです(´・ω・`)
クラス名は "SunAwtFrame" でした。
タイトルが "ログイン" なんだけど、向こうさんの環境だと文字化けしているみたい

>>529
英語環境でCP932(SJIS)だとどうなるんだろ・・・


とりあえず、FindWindowW(FindWindowのUNICODE版)でも
日本語環境だとタイトルとクラス名でウインドウが発見できるようですので、
こちらの方法で試してもらうように先方に言ってみます。

FindWindowをUNICODE版にして換わる門だろうか?

533 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:06:31 ]
なんか知らんがWindowsの内部文字コードは全部Unicode

534 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:07:22 ]
>>530
ごめん、もう少しkwsk
見つけたいウインドウのタイトルを変えるのって、見つけてない状態で可能なんですかね?
外部のプログラムなんですが・・・

535 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:10:25 ]
FindWindow() 以外にもいろんな方法あるし。

ウィンドウ列挙して GetWindowModuleFileName() とか、ついでにプロセスも列挙して、
GetWindowThreadProcessId() とか。

536 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:12:28 ]
年越えで勉強とは真面目だな、おまいら
あけおめ



537 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:14:52 ]
このスレ見てると現実に引き戻されるから正月くらい閉じよう

538 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:15:54 ]
>>536
|・ω・)ノ

539 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:28:47 ]
>>535
GetWindowModuleFileNameは自分のプロセス以外は正常に機能しない

540 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:38:07 ]
>>539
へー。NT 系だとダメなのね。

support.microsoft.com/default.aspx/kb/228469/ja

541 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:50:54 ]
そんなの常識だろ
2009年になったのにまだ9x系しか使ってないのかよ

542 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:53:27 ]
>>540
10年前からタイムスリップしてきた人ですね、わかります

543 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:11:40 ]
HWNDを、API(Direct3D)に渡す為にクラスのメンバにして保持しようと思うんですが、
HWNDは単純にコピーしていいんですか?
それともDuplicateHandle()で複製して、CloseHandle()で閉じるものなんでしょうか?
ちなみに、やってみたら不明なエラーで失敗しました。
※プログラムは単一プロセスです。


544 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:14:08 ]
DuplicateHandleの説明読めよ・・・

545 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:21:45 ]
>>544
読みました、複製できるハンドルの一覧にHWNDはありませんでした。
これは、HWNDの複製は単純コピーでかまわないってことですかね?
プロセス間で持ちまわるものじゃないから?

546 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:23:18 ]
HWND はプロセス間で持ち回れるよ



547 名前:デフォルトの名無しさん [2009/01/01(木) 01:24:27 ]
“砂漠の女王”をテーマにした質素な衣装 
contents.oricon.co.jp/upimg/news/20081230/61682_200812300341752001230620377c.jpg
contents.oricon.co.jp/upimg/news/20081230/61682_200812300297266001230620377c.jpg
contents.oricon.co.jp/upimg/news/20081230/61682_200812300349984001230620377c.jpg

548 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:25:10 ]
出来ない、という選択肢は無いのか?

549 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:26:53 ]
>HWNDは単純にコピーして
HWNDの値はいくらでも「代入」できるが、「コピー」は不可能。

550 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:43:03 ]
>>549
HWNDがファイルディスクリプションのような参照なら、
言い回しはコピーで違いなのでは?

HWNDってCOMのIFポインタみたいな、カウンタを持った参照だと
勝手に思ってたけど違うのかな?

551 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:44:26 ]
そもそもHWNDなんてコピーできても意味ねーだろ

552 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:52:49 ]
>>543
HWND CopyWindow(HWND hwnd);

指定されたウィンドウを、子ウィンドウを含め完全に複製します。

553 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 02:03:57 ]
timeKillEventの成功したときの戻り値は、
timeSetEvent関数から返されるタイマーID、
TIMERR_NOERROR、MMSYSERR_INVALPARAM
のどれでしょうか。
ググってもページが少ないですし、
いろんな説があって分かりません。

いつも返ってくるのはTIMERR_NOERRORで、
その後のtimeEndPeriodもTIMERR_NOERRORが返り、
これは成功という事なので、
timeKillEventも成功と言えるのかも知れませんが。

554 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 02:06:59 ]
>>550
カウンタは持っていないし、カーネルハンドルではないので
DuplicateHandleもできないしする必要もない。

555 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 02:07:03 ]
>>553
Returns TIMERR_NOERROR if successful or MMSYSERR_INVALPARAM if the specified timer event does not exist.

556 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 02:07:06 ]
Return Values

Returns TIMERR_NOERROR if successful

ヘルプくらい見たら?



557 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 02:16:07 ]
見ても訳せなかったりして(笑)

成功したら TIMERR_NOERROR を返し、(引数で)指定したタイマーイベントが存在しないなら MMSYSERR_INVALPARAM を返します。

558 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 02:22:02 ]
>>551-552,554
複製の必要はないのですね、
理解しました、教えて頂きましてありがとうございました。

559 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 02:57:04 ]
>複製の必要はない
複製したくてもできない、が正解。
もし仮に君のクローンができたとしても、それは君ではないのだよ。

560 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 03:02:21 ]
そういえば今日
自分のクローンができる夢見た

561 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 03:28:54 ]
俺は苦労する夢

562 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 03:38:13 ]
みなさん、ありがとうございます。

>>557
その通りです・・
「うまくいくかMMSYSERR_INVALPARAMであり、
指定されたタイマイベントが存在していないなら、
TIMERR_NOERRORを返します。」
とか訳サイトで出ていたので。

他のtimeBeginPeriodとか他の3つは日本語の
MSDNがあるのに、これだけないのも不思議です。

563 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 05:48:38 ]
英語勉強しろよ小学生

564 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 09:26:18 ]
英語勉強したら負けかなと思ってる

565 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 09:32:41 ]
と負け組が申しております。


566 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 09:37:00 ]
俺は、アメリカで生まれて成長されたので、英語を勉強するは不要だ。
日本の人々は不運と思っている。



567 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 09:38:57 ]
完全に同意にダ……あル……です。

568 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 09:41:17 ]
フーン

569 名前:デフォルトの名無しさん [2009/01/01(木) 09:51:56 ]
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_432.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_66.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_406.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_635.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_694.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_733.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_772.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_776.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_835.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_420.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_214.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_234.jpg
img.photobucket.com/albums/v650/Nervli/Melonpan/JAN2008_718.jpg
海外ではすでに常識だぞ
日本人が遅れすぎんなんだよ

570 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 10:11:34 ]
Win95の頃は割と日本語でMSDN読めたのになあ
今やMSKB共に機械翻訳だらけ

和訳スタッフがリストラでもされたのか?w

571 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 10:23:50 ]
あの頃だとVisual C++4.xか。
Win32APIの日本語訳なんて存在していた記憶が無いな。

和訳スタッフは.NET絡みの最前線行きだろ。
TechNet Magazine とかは割と早くに日本語訳されて助かってる。
流石に新ネタ絡みであの分量を英文で読むのはちと辛い。

572 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 10:35:19 ]
API バイブル、なんてのもあったな・・・

573 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 11:51:50 ]
萌文化も受け入れられてたのか

574 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 12:11:20 ]
.NET関連は結構和訳されてるね
GDI+のクラスをググると.NETの方ばかり上位に来るので見づらいが

個人的にはMSKBの日本語訳をもっと増やしてほしい気がする

575 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 15:42:03 ]
STGM_TRANSACTEDの複合ファイルはTEMPを使うような気が

576 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 16:51:54 ]
Windowプロジェクトとしてコンパイルする時にint main()を定義してるのは合法ですか?
BCCはとりあえず問題なさそうなんですが



577 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:02:23 ]
Win32API に関係ない話題はよそでお願いします。

578 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:03:18 ]
>>576
合法も違法も無い。
正しくリンクできて実行できれば何の問題もない。

エントリポイントにmainとWinMain(あるいはその他)を選ぶことと、
サブシステムにコンソールを選ぶか否かは、互いと無関係に選べる。
(一般に、無指定のときmain - コンソール、WinMain - 窓アプリという暗黙の指定が働くけど)

579 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:07:35 ]
分からないならレスしないでください。ウザイだけです。

580 名前:デフォルトの名無しさん [2009/01/01(木) 17:18:17 ]
>>576
合法

ホスト環境において実行開始点が main でない言語は C ではない
C から派生した M$ 定義の言語であり、そこで禁じていない行為にあたる

581 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:30:34 ]
違法なプログラム、ってのを見てみたいもんだ。

582 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:31:45 ]
>>580
Cではないとはまた過激思想な。
ホスト環境ですら処理系定義のエントリポイントを認めているぞ。

583 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:44:12 ]
そろそろ死ね

584 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 18:21:41 ]
>>576-584
スレ違い

585 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 18:45:41 ]
このまま話を続けると、話についていけない人が泣いちゃうしな。

586 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 18:51:17 ]
そっか、仕方ない・・・撤収撤収!



587 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 21:48:17 ]

↓これでごみ箱を空にしたらごみ箱がぶっ壊れます、なにか間違ってますか?

SHEmptyRecycleBin(
NULL, NULL,
SHERB_NOCONFIRMATION | SHERB_NOPROGRESSUI | SHERB_NOSOUND
);

588 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 22:02:14 ]
ごみ箱に足をつっこんでバトルなんかするから

589 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 22:05:32 ]
Wiresharkのような感じでRS-232C通信をモニタするツールを作りたいのですが、
指定した COM ポートがデータを送信、あるいは受信したタイミングを知る方法、
およびそのときに送受信したデータを取得する方法を知りたいのですが、
どのようにおこなえば良いでしょうか?

OS は WinXP SP3、環境は 2008EE です。



590 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 22:22:25 ]
流れてしまいましたが
>>492わかる方いたらお願いします
一応
case WM_KILLFOCUS:
SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0, (SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE) );
こういうことをしてみたのですがだめでした

591 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:18:08 ]
>>587
ウチでは正常に動作する。

>>492,590
ウチでは正常に動作する。
タスクバーの「常に手前に表示」オプションを有効にしていても、さらにその手前に常駐している。

592 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:29:04 ]
>>587
kwsk

593 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:12:37 ]
>>589
Wiresharkがパケットのキャプチャにドライバを使っているように、
通信をキャプチャするドライバを書けばいいと思うよ。

>>590
タスクバーより手前に表示できないのと、
タスクバーをクリックしてウィンドウが隠れるのでは意味が違う。
後者については無理。
最前面表示ウィンドウ間では、通常ウィンドウと同様前後関係が常に存在する。

594 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:16:42 ]
WindowsのRS-232Cはファイルだからフック監視も有りだな。

595 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:32:18 ]
ユニコード対応の為に文字列を扱うAPIにはA/Wがついてますが
内部ではANSI版はすべてユニコード文字列に置き換えてユニコード版を呼び出してると聞きました。
この置き換えってMultiByteToWideCharで変換してるんでしょうか?
お詳しい方教えてください。

596 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:33:55 ]
>>595
たぶんそう。



597 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:36:29 ]
>>596
例えばDLLを作るときってこういうの考慮しないとダメですよね?
他の人が色んな環境で使う場合

598 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:38:12 ]
>>597
なんで? Windows の内部動作は気にする必要ないと思うけど?

599 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:41:29 ]
DLLの仕様書というか説明書にマルチバイトですユニコードですって書いときゃいい

600 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:46:45 ]
>>598
すみません自作関数を作ったときのことです。
というのが、C++で文字列を扱うDLL関数を作っていて、ユニコード対応させようと思って
関数のオーバーロードと、APIと同じ#defineの方法両方使ってて2つの方法がチャンポンになってます。
オーバーロードは引数が違わないと使えないのでこうなっちゃってるんですが・・・。
みなさんどうしてます?変なこと聞いてたらすみません。

>>599
その手もありますね。確かに。

601 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:50:36 ]
俺は面倒なんで、TCHAR を使ってバイナリをふたつ作ってる。
で、Unicode 版、ANSI 版、使い分けてもらう、って感じ。

602 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:58:22 ]
>>600
FunctionA() と FunctionW() を作って、FunctionA()が呼ばれた場合は内部で FunctionW() を呼ぶようにすれば?
>>595に君が書いたとおりに。

603 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 01:06:18 ]
みなさんありがとうございます。

>>602
そうします!

604 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 01:10:50 ]
>>591>>593
どうもです
無理なようなのであきらめます

605 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 01:20:43 ]
わざわざ全部UNICODEにもってく必要ない気がするんだが。
俺のDLLはこう

FuncA();
FuncW();

#ifdef UNICODE
#define Func FuncW
#else
#define Func FuncA
#endif

こうしときゃ開発者は好きに使える。
あと、内部的にUNICODEといってもkernelだけの話でASCIIの処理系しか持たない
Windowsモジュールだってあるでしょ

606 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 02:01:10 ]
>>605
そうですね。全部全部はやめて、
数行の関数は完全に分けて書こうと思います。
数十行の関数は保守の面から統一したいと思います。
あとオーバーロードはやめて全部#defineにしようと思います。
ありがとうございました。



607 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 06:56:14 ]
LoadStringでリソース内の文字列を取得する前に
その文字列のサイズを取得する方法ってありませんか?

608 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 06:57:34 ]
自分で作ったりソースの長さなら事前に知ってないとおかしい

609 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:20:38 ]
>>608
おかしいのはお前だよ

610 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:22:15 ]
>>609
いいやお前だろ

611 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:26:53 ]
>>610
お前ってことにしとこうぜ

612 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:38:08 ]
>>611
やっぱりお前の方がおかしいな

613 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:46:14 ]
>>608-612
誰だよ?

614 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:28:53 ]
>>607はLoadStringの話をしてるのに、突然ソースの長さの話をした>>608
おかしいのを指摘されたら逆ギレしただけでしょ

615 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:30:40 ]
まあ全部俺の自演なんだけどね

616 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:37:28 ]
>>615=>>608
ん?悔しかったの?w



617 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:45:00 ]
すんげー悔しいw

これでいい?

618 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:49:53 ]
だめ。

619 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:04:08 ]
>>607
多分無い
MFC/ATLでもFindResource使って自前でロードしてる

620 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:06:34 ]
多分じゃだめだ

621 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:12:03 ]
リソースの“リ”って文章中に書くと文脈でひらがなの“り”になりやすいなw

622 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:24:26 ]
絶対無いよ
ソースは俺

623 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:00:59 ]
LoadString(hinst,id,NULL,0) でバッファ長を返せばいいのに、失敗するだけなんだよな
GetPrivateProfile〜も同様に失敗するだけ

設計悪いなー

624 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:14:38 ]
このお馬鹿なLoadStringは他言語対応ソフト作ってると困るよな

例えば"設定"なんて日本語だとnull含めてUnicodeで3文字で十分だけど
英語だと"Preferences"だから12文字必要になってくる(4倍)

逆のパターンも結構あって、ANSIだと日本語の方が長くなりやすいから
海外のソフトで日本語が途中で切れてるのもよく見かける

625 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:22:47 ]
俺は面倒くさかったから、切捨てられず読み込めるまでバッファ拡張・LoadStringを繰り返す方法で妥協した記憶がある。

626 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:24:23 ]
LoadStringExを使えば解決。
、、、え?まだ無いの?



627 名前:607 mailto:sage [2009/01/02(金) 12:03:33 ]
回答ありがとうございます
確実に格納しきれる一時的なバッファを使う方向でいってみます

628 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 12:15:59 ]
>>626
自分で作ればいいじゃん
StringTableリソースの構造はこんな感じ

struct StringEntry {
 WORD size;
 WCHAR buffer[size]; // 注: nullターミネートではない
};
struct StringTable {
 StringEntry entry[16];
};

(StringTableのリソースID) = (LoadStringに渡すID) ÷ 16 + 1
で求めたリソースIDをFindResource(RT_STRING)で読めばおk






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<198KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef