[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 12:24 / Filesize : 103 KB / Number-of Response : 480
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Win32API質問箱 Build76



1 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:56:18 ]
スレ立てるまでもない、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質問箱 Build75
pc11.2ch.net/test/read.cgi/tech/1231423602/

321 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:17:23 ]
>>315
最近、ANSIビルドのソフトをいじって、キー入力・表示・コピペはUnicodeに
対応させたものを作った。Unicodeなファイル名は扱えないが、これって
何ビルドだろうね。

322 名前:デフォルトの名無しさん [2009/02/11(水) 10:29:00 ]
>>321
ANSIビルドでかまわない。
__wargv

323 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:37:04 ]
>>310それはマウスヒットテストに使うのでは?
>>311実際にどうなります?画像に合わせてウィンドウの形を変えたいんですが・・・?
>>312それらはもう見てその通りにやってるつもりだったんですが・・・うーん


324 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:52:54 ]
>その通りにやってるつもりだったんですが

「プログラムは、間違いなく自分がコーディングした通りに動く。
 しかし、それが自分が想定した通りであるとは限らない。」

325 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:54:00 ]
>>322
それが判断基準?
あ、もちろんIsWindowUnicodeはTRUE返すから。じゃないとWM_CHARで
Unicodeが受け取れない。APIもA/W両方インポートしてる。(が、Win9xでも動く。)

326 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:11:56 ]
>>324そんなこと言うくらいなら指摘して欲しいんですが?

327 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:23:27 ]
うぜぇ

328 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:54:21 ]
やってるつもりだったんならそれでいいじゃん。解決

329 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:37:29 ]
どう考えてもここは324の方がウザイと思うが
お前それ言いたかっただけちゃうんかと



330 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:46:05 ]
反応してる奴もうざい

331 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:32:40 ]
>>329
例の基地害だろ、もう構うな

332 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:48:10 ]
>>325
ハイブリッド、でいいんじゃね?まあ俺もそういうの作ったことあるけど。

例えばXPのEditコントロールはANSIでもUnicodeの動作をするバグがあるので
Win9xでも動くように作ろうとすると、全体的にはANSIだけど部分的にA/W切り替える必要性が出てくるんだよな。

というかこのバグを無視してANSIアプリのくせにVisualStyle対応してるソフトが多すぎ。

333 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:01:14 ]
>>332
バグについて詳しく

334 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:14:02 ]
ググレカス

335 名前:カイロ mailto:sage [2009/02/11(水) 16:24:29 ]
シリアル通信の受信プログラムがうまく出来ません。。

<やりたいこと>
COM3:送信側で、Tera Termで、文字を送信
COM4:受信側 コマンドプロンプトで、作ったプログラムを動かして受信し、受信した文字を表示する。

<受信プログラムの流れ>
@COM4をオープン
A通信設定
B受信するまで、待つ
C受信したら、文字を表示。

●受信するまで、待つことが出来ず、フフフ・・・といった文字列が
 表示されてしまいます。
 どうしたら、受信するまで待つように出来るのでしょうか?


336 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:57:44 ]
>>335
フフフ・・・

337 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:00:41 ]
これはウゼェwww

338 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:00:44 ]
待つって日本語で書かれても。
コードさらせないのか、待ってるとこだけでも。
フフフ・・はデバッグ環境での未初期化のバッファ

339 名前:カイロ mailto:sage [2009/02/11(水) 17:11:00 ]
返事ありがとうございます。

以下コードの抜粋です。
ReadFileの第5引数(最後の引数)にNULLを入れると、受信するまで待つんだと思ったんですが、
送信していないのに、受信した文字列が表示されます。

☆ポートを開いているところ
int errorCode;
HANDLE handle;

handle = CreateFile("COM4", // ファイル名: COMポート名を指定
GENERIC_READ | GENERIC_WRITE, // アクセスモード: 読み書き
0, // 共有モード: 共有しない
NULL, // セキュリティ記述子: 取得したハンドルを子プロセスへ継承しない
OPEN_EXISTING, // 作成方法: ファイルを開いたときに指定したファイルが存在していなければエラーとする
FILE_FLAG_OVERLAPPED, // 非同期 I/O を許す//☆同期にしてみるFILE_ATTRIBUTE_NORMAL, // ファイル属性: 特に指定しない
NULL // テンプレートファイルのハンドル: 特に指定しない
);

☆通信設定するところ。(省略)

☆受信するところ。
char data[14];
DWORD dwRead;
DWORD dwErrors;
COMSTAT ComStat;

ClearCommError(handle, &dwErrors, &ComStat);
ReadFile(handle, data, sizeof(data), &dwRead, NULL);
printf("受信した文字列%s", &data);



340 名前:デフォルトの名無しさん [2009/02/11(水) 17:12:28 ]
IPアドレスコントロールから値を取得するには
どんな関数を使えばいいですか?IPは入力欄が4つあるので、どうやって
取得するんですか?

341 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:15:12 ]
>>339
dwReadを確認してないみたいだけど?

342 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:15:33 ]
>>339
エラーチェックぐらいしろよ

343 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:15:50 ]
IPM_GETADDRESSとか無かったっけ?

344 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:16:14 ]
343は>>340

345 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:17:12 ]
>>340
Win32 and COM Development - User Interface
- Windows Controls - Control Library
とりあえず、WindowsSDKのドキュメントの上記辺りを一通り目を通しておけ。

346 名前:デフォルトの名無しさん [2009/02/11(水) 17:20:44 ]
>>345
面倒だから教えてよ

347 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:22:54 ]
やだよばか

348 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:26:28 ]
>>339
待機とは関係ないんだが
FILE_FLAG_OVERLAPPEDを指定したら
ReadFileの最後はNULLじゃ駄目なんじゃないか

349 名前:カイロ mailto:sage [2009/02/11(水) 17:28:52 ]
>341
>dwReadを確認してないみたいだけど?

dwReadは、読み取ったバイト数が入るんですよね。
どうやって確認すればいいのでしょうか?
聞いてばかりで、すみません。




350 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:29:01 ]
関係なくはないけどな

351 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:29:35 ]
>>348が真理

つかGetLastErrorぐらいしろ

352 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:32:44 ]
つーかウォッチ式に @err,hr を入れとけ

353 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:38:10 ]
>>349
dwReadが0だったらどうなると思う?

354 名前:カイロ mailto:sage [2009/02/11(水) 17:46:09 ]
>>348
>待機とは関係ないんだが
>FILE_FLAG_OVERLAPPEDを指定したら
>ReadFileの最後はNULLじゃ駄目なんじゃないか
調べてみたら、通信プログラムでは、
FILE_FLAG_OVERLAPPEDではなく、
属性なしの FILE_ATTRIBUTE_NORMALを指定するのが正しいようですね。

>>353
>dwReadが0だったらどうなると思う?

0だったら、まだ、受信してない状態ってことですか?

355 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:01:04 ]
FILE_FLAG_OVERLAPPEDはブロッキングしたくない時に使うんだよ。

356 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:08:16 ]
>>354
dataを1バイトにして、dwReadが0以外のときに表示するようにしてみたら?

357 名前:カイロ mailto:sage [2009/02/11(水) 18:49:06 ]
>>356
>dataを1バイトにして、dwReadが0以外のときに表示するようにしてみたら?

やってみました。
以下、修正後のソースの一部です。

☆ポートを開いているところ
handle = CreateFile("COM4", // ファイル名: COMポート名を指定
GENERIC_READ | GENERIC_WRITE, // アクセスモード: 読み書き
0, // 共有モード: 共有しない
NULL, // セキュリティ記述子: 取得したハンドルを子プロセスへ継承しない
OPEN_EXISTING, // 作成方法: ファイルを開いたときに指定したファイルが存在していなければエラーとする
FILE_ATTRIBUTE_NORMAL, // ファイル属性: 特に指定しない
NULL // テンプレートファイルのハンドル: 特に指定しない
);
☆受信するところ。
char data[1];
DWORD dwRead;
DWORD dwErrors;
COMSTAT ComStat;

while(1) {
ClearCommError(handle, &dwErrors, &ComStat);
ReadFile(handle, data, sizeof(data), &dwRead, NULL);
if(dwRead != 0) {
printf("%c", data[0]);
}
}

358 名前:カイロ mailto:sage [2009/02/11(水) 18:49:39 ]
続き・・・

なんとか、待機するところまでは、うまくいきました。
Tera Termで入力した文字が、表示されました。
ありがとうございます。

ですが、表示された文字が文字化けしていて、以下のような感じで、表示されます。
解決方法をどなたか、教えてください。

Bャツ・・・・・


359 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:55:07 ]
ClearCommErrorって毎回チェックしないといけないんだっけ?



360 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:57:56 ]
マルチバイト文字を送信してるように見える

361 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:59:05 ]
ヌルターミネートしてないからだろ
受信したバイトの最後にゼロ入れとけ

362 名前:360 mailto:sage [2009/02/11(水) 19:01:20 ]
マルチバイト文字じゃなくて、シングルバイトじゃない文字

363 名前:カイロ mailto:sage [2009/02/11(水) 19:15:15 ]
自己解決いたしました!!

テラターム側のボーレートの値が受信プログラムで設定した値と違っていたので、
文字化けしていたようです。

同じ値にしたら、ちゃんとした文字が出るようになりました!!

これで、すべて解決しました!!

みなさま、どうもありがとうございました。

数ヶ月前から、出来ずに困っていたのですが、
なんとか、動くものが出来ました。

よかったです。(TーT)

364 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:16:25 ]
まあオメデトウ
そして死ね

365 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:22:47 ]
>>364
死ねは酷くね?
せめて成仏しろとか永眠しなさいと地獄に落ちろ、位にしといてやれよ。


366 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:34:18 ]
フフフ…

367 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:34:44 ]
ウッゼ

368 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:49:07 ]
釣れた釣れた

369 名前:デフォルトの名無しさん [2009/02/11(水) 19:56:01 ]
>>314
ありがとうございます!、出来ました。

#define _WIN32_WINNT 0x0500に変更で解決しました。

本当にありがとうございました。



370 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:27:20 ]
相手のボーレート自動で判断してあわせてくれるシリアル通信ソフトあるけど
合ってるかどうかってどうやって判断してるんだろう

371 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:31:04 ]
IME の前後参照変換に対応するため、WM_IME_REQUEST の IMR_DOCUMENTFEED を
拾うルーチンを書きました。が、XP や Vista + ATOK なら期待通り動作するのですが、
Vista + MS-IME では全く機能しません。

TSF 絡みっぽいところまでは推測がつくのですが、その先がさっぱりです。
そのあたりの仕組みについて記述している資料があれば、教えてください。

372 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:11:37 ]
>>370
分からんけど。
例えば、相手が送ってくるデータが分かっていれば、
ボーレートを色々変えてみて正しく読めるのを探すとか?


373 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:17:10 ]
>>314>>369
それで解決したなら、後からメンバが増えたせいだな。
msdn.microsoft.com/en-us/library/bb760256.aspx
_WIN32_NTが0x501以上だとlpReservedメンバが追加されるが、
これはNULLじゃないといけないと書いてある。
ところが、108のコードではそれが欠けていたのでうまくいかなかった。

まあ、良くある話だ。_WIN32_NTほかバージョン定義をきちんと定義して自己防衛するしかない。

374 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:20:27 ]
NULLじゃないといけないReservedなメンバをわざわざ追加して互換性無くすとか
MSが何をしたいのかさっぱり分からん

375 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:34:31 ]
>>371
IMR_DOCUMENTFEED固有の話はないけれど。
d.hatena.ne.jp/NyaRuRu/20070308
d.hatena.ne.jp/NyaRuRu/20070309

376 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:53:34 ]
>>373
そんな単純な話でもない
もともと>>314の参照先はちゃんと0初期化してて
マルチバイトでは動作するのに、Unicode では
動作しないって質問だし、自分でやってみても
うまくいかなかった
OSはVistaなのでOS側の問題とかはないはずなんだけど

377 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:03:12 ]
>>375
ありがとうございます。なるほど、テキストストアっぽい単語が関係ありそうですね。

378 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:07:09 ]
>>376
うおすまん、リンク先まで読んでいなかった。

379 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:13:08 ]
>>376
manifestが無くてcomctl32.dll ver5系を使ってたってオチだろ
多分ver5系はcbSizeにTOOLINFO::lpReservedのサイズを含めてはいけない



380 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:30:45 ]
>>379
まさにそのとおりでした
なんか昨日から気になってたんだけど、ようやくスッキリした
ありがとう


381 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:33:44 ]
結局、TOOLINFO::lpReservedってそういう時わざと失敗させるために、構造体のサイズを変えるべく入れただけのような気がしてきた
NULL以外の適当な値を入れても動くみたいだし

382 名前:デフォルトの名無しさん [2009/02/11(水) 22:37:47 ]
D:→E:のようにドライブレターを変更するにはどうしたらいいんでしょうか?


383 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:41:18 ]
コマンドプロンプトで

D:\> E:

と入力する。

384 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:42:30 ]
つーか板違い

385 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:42:46 ]
>>382
char path[MAX_PATH] = "D:\dokoka";
char drive[MAX_PATH];
char dir[MAX_PATH];
char name[MAX_PATH];
char exp[MAX_PATH];

_splitpath( path, drive, dir, name, exp);
drive[0] = 'E';
_makepath( path, drive, dir, name, exp);


ネタなので反論は許さない。

386 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:47:14 ]
>>385
expって何だよw
エクスプローラの略か?

387 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:53:01 ]
>>386
うっせw 突っ込むなって言ったろw pじゃなくてtだったよ、うろ覚えすぎたw
よく考えたら拡張子だからエクステンションの略なのか。

388 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:55:09 ]
>>382
MSDN Library

Win32 and COM Development

System Services

File Services

File Systems

Volume Management

Volume Management Reference

Volume Management Functions
にお探しのAPIがあると思うよ

389 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:59:42 ]
たまに優しい人が居るスレだ



390 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:18:48 ]
たまに知らないならレスしないでください。ウザイだけですな人がいるスレだ

391 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:20:41 ]
>>385
_splitpath, _makepath
こんなのあったんか、知らんかったぽ

392 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:22:54 ]
これでもイジワルしたつもりなんだ、優しい人なもんか
まず質問者が最低限自分で調べてから質問する人かどうかを見極めるために
>ドライブレターを変更するにはどうしたらいいんでしょうか?
という質問から「api ドライブレターを変更」でググったら上位3件(1件重複あり)全てにAPI名が出てきたんだぞ
ここでイジワル心が働いた

今度はそのAPI名でまたググって英語版MSDN Libraryに飛んで
ツリー形式になってる項目を一つ一つコピペしてrootへ向かってだなあ・・・

393 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:28:16 ]
>>392
お前のツンデレっぷりに感動したので、付き合ってください

394 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:29:41 ]
      ハ,,ハ
     ( ゚ω゚ )  お断りします
    /    \
  ((⊂  )   ノ\つ))
     (_⌒ヽ
      ヽ ヘ }
 ε≡Ξ ノノ `J


395 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:35:54 ]
Linuxユーザーがググった知識を披露するスレになり下がってる。

396 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:38:05 ]
定型レスしかできないクソバカに比べれば100倍マシだからいいよ

397 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:38:09 ]
まともな答えになっていれば別に何ユーザでも構わないでしょ。
ツンデレならWine使いかもしれないし。

398 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:40:35 ]
>>397
>ツンデレならWine使いかもしれないし
詳しく

399 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:47:00 ]
>>398
LinuxでWinAPIを実装してWindowsアプリケーションが動くというやつ。
使ったことないから出来は知らないけど。



400 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:54:22 ]
>>397
使ったこともないのにググった知識で答えるのは無駄だろ。
質問者が一番知識があるという状態をよく目にする。

401 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:56:16 ]
知識のある人が知らないフリして質問して、知ったかで回答する馬鹿を突付いて遊んでるんだよ

402 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:59:28 ]
母無職、弟ニート、俺派遣
3人家族月10万(家賃含)でなんとかしてるけどなあウチは
残りは昔の生活費の借金返済に充てて

403 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:01:46 ]
母無職、弟無職、俺無職
3人家族月0.1万(家賃含)でなんとかしてるけどなあウチは
残りは昔の生活費の借金返済に充てて

404 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:02:46 ]
ここまで人工無能アイちゃんのレス

405 名前:402 mailto:sage [2009/02/12(木) 00:02:55 ]
ごめんなさい

406 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:35:45 ]
>>402
うわあ…

407 名前:108 [2009/02/12(木) 00:43:34 ]
>>379
出力ウィンドウのデバック表示で

C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.6001.18000_none_886786f450a74a05\comctl32.dll' を読み込みました
C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\comctl32.dll' を読み込みました

と2種類のバージョンのcomctl32.dllを読み込んだように表示されているんですが、これは関係あるのでしょうか?
最近Win32APIプログラミング始めた素人なので変な質問だったらすいません。

408 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:03:24 ]
>>407
Side-by-Sideでググっとけ


てか、内部or外部のXMLで、同名DLLのバージョンを切り替えるなんてアホだろ
誰が考えたんだよ全く・・・

409 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:26:10 ]
>>407
CommonControl 6.0を使用するための具体的な対処ということなら、
以下をstdafx.hあたりに記載しとけばいけるばず

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")




410 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:38:01 ]
>>408
ちなみにお前だったらどういうのがいいと思うのか聞きたい。

411 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 02:05:23 ]
directxみたいにファイル名を変えとけばいいんじゃねーの?

412 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 10:45:47 ]
dll heaven状態ですね

413 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 13:07:34 ]
Direct2DとかWriteってDirectXになるの?
それともWIn32API?

414 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 14:51:53 ]
1GBくらいのメモリを確保する場合はnewとGlobalAllocどちらがいいですか?
またその他に適した関数はありますか?

415 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 14:57:59 ]
VirtualAlloc

416 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:01:48 ]
>>415
ありがとうございます〜
さっそく調べてみます!

417 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:02:22 ]
そんなに独り占めしてずるいわあ

418 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:24:14 ]
1Gバイトのシリコンメモリ領域を明示的に確保し
それにスワップ無しでランダムアクセスするようなアプリを
動作させることが出来る商用パッケージOSは今のところ無い。
(近い将来出るかも知れないが)

Windowsの場合VirtualAllocとか使って、シリコンメモリに
領域を確保したつもりになってももどうせディスクにスワップ
されるので、1Gバイトのファイルを作成し、それにランダム
アクセスするコードと速度面では大差が無い。

419 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:37:20 ]
>>418
使ったこと無いから詳しくは知らんがAWE APIは?



420 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:45:32 ]
>>418
そうなんですか><


すみません。GlobalAllocもVirtualAllocも500Mくらいを超えたらエラーになってしまうんですが
一度に取ってもダメで500Mを2回に分けても2回目のVirtualAllocでエラーになります。

ちなみにVirtualAllocで1回で取れる最大サイズってなんぼなんですか?

421 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:54:29 ]
>>418
本当に欲しければ、VirtualLockがあるよ。Unix系だってmlockがあるだろう。
果たして使いこなせるかどうかはともかく。






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

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

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