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


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

Win32API質問箱 Build62



1 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:40:03 ]
スレ立てるまでもない、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

【前スレ】
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/

652 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 14:56:47 ]
妙なことするより、ツールバーに重ならないように子ウィンドウ作った方が楽かと

653 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 17:49:39 ]
>>651
つ I  これやるよ。

654 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 01:18:09 ]
>>651
申し訳ないです。 ^^;
ウインドウに段数をペイントで書いていまして、
ウインドウに書かれた段数の横にエディットコントロール
を貼り付けています。そしてウインドウのスクロールバー
でエディットコントロールのスクロールを連動させています。

>>652
子ウインドウにエディットコントロールは貼り付けられますか?

655 名前:デフォルトの名無しさん [2008/02/23(土) 20:00:44 ]
WindowsでスプールファイルにEMFがあります。このファイルを元にし
て、印刷しますがこのファイルを解析して、実際に紙に印刷される意味
のあるデータを取得すると言う事は出来るのでしょうか? 

RAWに関しては、解析して意味のあるデータを取得した事はありますが、
EMFに関しては良く分かりません。Windows XPの環境です。初心者です
が、宜しくお願いします。



656 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:25:07 ]
>>655
これかなたぶん?
msdn2.microsoft.com/en-us/library/ms534514(VS.85).aspx

657 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:57:42 ]
Windows VistaでBeep関数を呼び出しても音が鳴りません。
何か仕様変更等あったのでしょうか。

658 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:58:33 ]
EnumEnhMetaFileだろjk

659 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 21:32:15 ]
VC++6.0、SDKでEDITボックスにドラッグアンドドロップしてファイル名を取得したいのですが
DragAcceptFiles(::GetDlgItem(hWnd, IDC_EDIT1), TRUE);
とやってもWM_DROPFILESのメッセージが拾えないです。
リストボックスに同様なものをしたら拾えたのですが
EDITは特殊なのですか?


660 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 22:11:35 ]
>>659
エディットボックス
(というより自分自身がウィンドウプロシージャを握っていないウィンドウ)
のメッセージを受け取ろうとしているのだから、サブクラス化しないと。



661 名前:デフォルトの名無しさん [2008/02/23(土) 22:53:06 ]
>656 有り難う。しかし、日本語でないと良くわからん。日本語のサイトは無いのだろうか?

662 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:11:47 ]
>>661
>>658

663 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:30:42 ]
>>660
レスサンクス
調べてみる

664 名前:デフォルトの名無しさん [2008/02/24(日) 01:23:34 ]
作成したexeファイルと同フォルダにヘルプファイルを置いているので、
GetModuleFileName()を使って、パスを取得する処理を入れているのですが、
起動時にこの関数でエラーになってしまいます。
で、GetLastError()を使うとエラーコードは24とのこと。
エラーコード24は「プログラムがコマンドを発行しましたが、コマンドの長さが正しくありません。」らしいのですが、
これは何が理由でエラーとなっているのでしょうか。。


665 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:30:16 ]
まずは自分コードを疑おう

666 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:48:07 ]
プロセスにマップされたものでないならエラーになるに決まってるだろ

667 名前:666 mailto:sage [2008/02/24(日) 01:50:32 ]
やるんならGetCurrentDirectory使うか
INIとか設定ファイルなんかに持たせるとか
そういうのでいいんでね?

668 名前:664 mailto:sage [2008/02/24(日) 01:53:59 ]
>>665
もちろん自分のコードを疑っているんですが、
その取っ掛かりが欲しくて。
このエラーコードの意味やどういった時に起こるものなのかがわかれば、
どこから目を付ければいいかわかるかなと思ったんですが。

>>666
すみません。
プロセスにマップという意味がよくわかっていませんが、
要は、自exeファイルがあるパスを取得するには、
ただ単にGetModuleFileName()を呼び出すだけではダメだ、ということでしょうか?



669 名前:664 [2008/02/24(日) 02:20:23 ]
>>667
ありがとうございます。
いま作ってるのが常駐するやつでして、
GetCurrentDirectory()もやってみたのですが、
常駐アプリの場合だと、C:\Document and Settings\[User Name]\
が返るみたいでした。


670 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:38:56 ]
>>667
おいおいGetCurrentDirectoryとか嘘を教えるなよ
カレントディレクトリ≠exeのディレクトリだと誤作動するアプリの元凶だろ

>>669
GetModuleFileName→(PathRemoveFileSpec)→PathAppend



671 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:44:31 ]
その exe を他のディレクトリに移してみてから実行したら
どうなるかは試してみた?。
GetModuleFileName の使い方に問題がなければ
アクセス権や MAX_PATH とかの問題じゃない?

672 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:48:10 ]
ずるずる引っ張るぐらいなら最小コードをうpしたほうが早い

673 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 08:33:51 ]
最小コードも何も、>>670に書いてある3つのAPI名でググればすぐに見つかるだろ
その程度の検索も出来ないような奴はプログラマには向いてない

674 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:00:40 ]
知りたいのはヘルプの位置じゃなくて、GetModuleFileNameがエラーを返す理由でないの?
PathAppend とかぐぐってどうすんの。

675 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:02:39 ]
DWORD GetModuleFileName(hinstModule, lpszPath, cchPath)
戻り値
関数が正常に終了した場合は、 バッファにコピーされた文字列の文字数を返します。
それ以外の場合は、 0を返します。拡張エラー情報を取得するには、 GetLastError関数を使います。

676 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:08:57 ]
ずるずる引っ張るぐらいなら最小コードをうpしたほうが早い

677 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:19:44 ]
もうさ、__argv[0]でも使ってれば?

678 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:22:54 ]
#include<windows.h>
#include<stdio.h>

int main(void){
char filename[_MAX_PATH];

GetModuleFileName(NULL, filename, sizeof(filename));
printf("%.*s\n", sizeof(filename), filename);

return 0;
}

>>676 何故自分で貼らない?質問者か?
>>675 で分からないなら MSDN ダウンロードしなよ 無料だから

679 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:25:35 ]
やっぱ勘違いしてたか。最小コード貼れってのは、質問者に言ってるんだよ。
エラーを再現できる最小限のコードを出せってな。

680 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:30:44 ]
672は誤解されてしまったようで申し訳ない
解決方法は、もちろん示されたAPIをググってコード見直せばOKなんだ
エラー原因もそれで解決するはずなんだが、それができないのなら晒したら? という話



681 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:39:43 ]
> GetModuleFileName(NULL, filename, sizeof(filename));
今時こんなコード書く糞プログラマは偉そうな事言えんぞw

682 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:58:06 ]
普通誤解しないから

683 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:06:58 ]
>>678
そんなヘドロみたいなコード貼るな

684 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:26:50 ]
>>681
横レスですまないが、素人目にはどこが悪いかわからない。
sizeof(filename)/sizeof(char)としないとUNICODEビルドで問題が出るのかな。

685 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:35:55 ]
DWORD GetModuleFileName(HMODULE, LPTSTR, DWORD);

686 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:43:13 ]
今は一々URLDownloadToFileで手元にファイルを保存→ファイルを開いて読み込む→
処理→ファイルを消す。ってやってるんだけど、ファイルとして保存しなくても
直接ネット上から読み込む。みたいなスマートな方法ってありませんか?

687 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:46:49 ]
普通にソケットを使えばいいだろ

688 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:49:03 ]
InternetReadFile

689 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:18:04 ]
>>687-688
ありがとう。調べてみたら何となく分かった

690 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:52:58 ]
なんかフルボッコなので書き直した
#include<windows.h>
#include<stdio.h>
#include<wchar.h>
#include<tchar.h>

#define NITEM(arr) (sizeof(arr)/sizeof(arr[0]))

int _tmain(void){
TCHAR filename[_MAX_PATH];

GetModuleFileName(NULL, filename, NITEM(filename));
_tprintf(TEXT("%.*s\n"), NITEM(filename), filename);

return 0;
}



691 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:11:01 ]
Win32ならRTL_NUMBER_OFかARRAYSIZE使おうぜ。

と書こうとヘッダ見てたら、いつの間にかRTL_NUMBER_OF_V2が増えてる。
こっちはC++専用ながら、ポインタだとコンパイル通らないのか。

692 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:26:20 ]
このスレ用のwikiなんてあったんだな
どういう経緯で作られたの? まったく更新されてないようだけど

693 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:31:53 ]
V2 というネーミングセンスに吹いたw

694 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:02:08 ]
>>692
更新されてないどころか内容も無いし次からテンプレから消してもいいかもな

695 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:50:16 ]
>>690
まだまだ叩かれる余地がある。
ttp://msdn2.microsoft.com/en-us/library/ms683197.aspx

まず、2k/XPでは、ファイルパスがMAX_PATHより長かった場合、NULL終端されない。
MAX__PATHより長かった場合、\\?\を使った長いファイルパスを返す。
したがって、filename配列は32000ぐらい確保すれば安全だ。

あと、NTIMEなんていう汚いマクロ使うな。

696 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:56:29 ]
NULL終端はされるんじゃないか?
>the string is truncated to nSize characters including the terminating null character.
「null 文字も含め nSize 文字分に切り捨てる」でしょ?

697 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:04:58 ]
Windows XP/2000: The string is truncated to nSize characters and
is not null terminated.
~~~~~~~~~~~~~~~~~~~~

698 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:11:25 ]
あ、本当だ。失礼しました

699 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:20:22 ]
>The global variable _pgmptr is automatically initialized(略)
身も蓋もないとはまさにこのこと(w

700 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:22:52 ]
そもそも_MAX_PATH(アンダースコア付き)なんてWin32APIで使う物では無かろう



701 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:45:36 ]
動けばいいじゃん
こういうどうでもいいとこをグチグチ言ってくる奴多杉

702 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:51:39 ]
お前アホだろ
特定の状況でまともに動かないからレスがついてんだろうが

703 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:51:54 ]
>>701
お前みたいな思想を持つ奴が、Windowsのバージョンアップ程度で、動かなくなる糞コードを書く。

704 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:56:12 ]
偉そうなことを言う奴に限ってコードの出し惜しみ(というかかけない)とか
ちょっとレベルの高い話になると何も答えられないんだよな。


705 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:58:26 ]
先生!ファイル名をnul.exeにしたんですけど、
どうやって起動すればいいですか!?

706 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:36:17 ]
RunDLL32 shell32.dll,ShellExec_RunDLL nul.exe

707 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:09:00 ]
C:\>RunDLL32 shell32.dll,ShellExec_RunDLL c:\nul.exe
指定されたデバイス、パス、またはファイルにアクセスできません。
アクセス許可がない可能性があります。

708 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:33:01 ]
なにがしたいねん

709 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:56:06 ]
prn とか、DOS時代からある予約名を
たまに思い出したかったんだろう

710 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:58:24 ]
C:\>dir nu*
ドライブ C のボリューム ラベルがありません。
C:\ のディレクトリ

2008-01-21 22:09 130,765 NUL
2008-02-03 07:45 53,248 nul.exe



711 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:02:56 ]
>>678 屑コード晒す
>>690 書き直してもやっぱり屑コード
>>701 「動けばいいじゃん」

・・・w

712 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:07:59 ]

| ∧         ∧
|/ ヽ        ./ .∧
|   `、     /   ∧
|      ̄ ̄ ̄    ヽ
| ̄ ̄ ̄月曜日 ̄ ̄ ̄)
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄.\  煽りはいらない
|ヽ-=・=-′ ヽ-=・=-  /   ただ私に絶望したまえ
|::    \___/    /
|:::::::    \/     /

713 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:27:46 ]
動けばいいじゃんって言う奴ほど汚いコードかくんだよな
むしろ動けばいいって言う前提で書いてるからなんだろうがw

そういう奴は個人でソースを管理する趣味グラマーでいてくれ

714 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:49:09 ]
モジュール単位で仕様がハッキリしておけば中身のコードなんてどうでもいいじゃん

と趣味グラマーが申しております

715 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:52:38 ]
その中身を保守する人のことを考えろ

716 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:54:25 ]
仕様通り動いてくれるなら正直悪くは無い。
仕様通り動かない、そもそも仕様自体が二転三転するとかだと楽し過ぎるからな。

717 名前:デフォルトの名無しさん [2008/02/24(日) 20:21:51 ]
MessageBoxだとビープ音が鳴ってしまうのですが、
音を消すことはできますか?
もしくは、MessageBoxに似た音の出ないapiはありますか?


718 名前:664 mailto:sage [2008/02/24(日) 20:30:38 ]
664でGetModuleFileName()関連の質問をした者です。
変な質問をしてすみませんでした。


>>676で言われているように、
最小コードを作ったのですが、なぜかこちらではエラーが発生せず、
質問しようにも出来ない状態です。

自分で少しずつ調査して行こうと思います。
お騒がせしてしまって申し訳ありませんでした。

MUI化していないときはエラーになっていなかったので、
とりあえずはMUIあたりから調べてみます。

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

719 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:55:24 ]
>>717
MessageBoxのようなダイアログボックスを作るしか無いんじゃないの?
たまーにMB_NOSOUNDとか欲しくなるんだけどね・・・

720 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:01:23 ]
>>719
ありがとう



721 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:53:35 ]
先生!
>>690のコードをプロレベルのコードに修正お願いします。

722 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:12:30 ]
屑コードと言う人は、とりあえず
そのコードを正しく直してから批判しな?

723 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:28:42 ]
>>678 屑コード晒す
>>690 書き直してもやっぱり屑コード
>>701 「動けばいいじゃん」
>>722 「正しく直してから批判しな」

724 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:32:47 ]
「?」でこのスレを検索すると、特徴的な使い方している香具師が浮かび上がってくるね。

725 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:32:48 ]
マイタ・デッヤーレ

726 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:35:06 ]
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>

#define CHECK(b) if(b); else goto ERROR

int _tmain(void) {
 int exit_status = EXIT_FAILURE;

 LPTSTR filename = NULL;
 DWORD len;
 TCHAR dummy;

 len = GetModuleFileName(NULL, &dummy, 1);
 CHECK(len != 0);

 filename = malloc((len + 1) * sizeof (TCHAR));
 CHECK(filename != NULL);

 len = GetModuleFileName(NULL, filename, len + 1);
 CHECK(len == 0);

 _tprintf(_T("%.*s\n"), len, filename);

 exit_status = EXIT_SUCCESS;

ERROR:
 free(filename);
 return exit_status;
}

727 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:35:45 ]
>>699
そういうのって C++ のグローバルオブジェクトのコンストラクタから
正しく使えるんだろうか。
もっとも、GetModuleFileName も正しく使えるかどうか。

728 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:56:18 ]
>>726
> CHECK(len == 0);
これは拙く内海?

729 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:59:04 ]
間違えた。
0 の時は 「失敗」 なのか。

730 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:21:32 ]
>>726
> len = GetModuleFileName(NULL, &dummy, 1);
で成功すればlen=1だから

> filename = malloc((len + 1) * sizeof (TCHAR));
filenameのバッファが全然足らねーだろ
つーかcalloc使えよ

相変わらず屑コード全開だな



731 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:00:24 ]
質問と回答とこの俺のレス以外はいりません

732 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:01:02 ]
なんでcalloc使わないといけないんだ?w

733 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:06:13 ]
>>678 屑コード晒す
>>690 書き直してもやっぱり屑コード
>>701 「動けばいいじゃん」
>>722 「正しく直してから批判しな」
>>726 屑コードどころかバグありコード晒して恥の上塗り
>>732 「なんでcalloc使わないといけないんだ?w」

734 名前:1 ◆GqrOSDYjeQ mailto:sage [2008/02/25(月) 01:11:01 ]
>>726
#define CHECK(b) if(b); else goto ERROR

このコードは個人的に盗ませてもらうかもしれない
いいもん見せてもらったw


735 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:20:11 ]
煽ってるやつは同一人物か?
違うよな?な?でないとおかしいもんな

736 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:25:48 ]
煽ってるやつは同一人物か?
違うよな?な?でないとおかしいもんな

737 名前:731 mailto:sage [2008/02/25(月) 01:27:05 ]
マジ黙れお前ら

738 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:28:46 ]
こんな感じでいいのか?

LPTSTR name = NULL, newptr;
DWORD len = 32, rlen;
do {
rlen = 0;
len *= 2;
if ( (newptr = (LPTSTR)realloc(name, len * sizeof(TCHAR))) == NULL ) break;
name = newptr;
} while ( (rlen = GetModuleFileName(NULL, name, len)) == len );
if ( rlen ) _putts(name);
free(name);

始め、GetLastErrorを使った切り捨てチェックで実装しようとして気付いたのだが、
SDK for WindowsVista 付属のドキュメントで、
GetModuleFileNameがバッファが小さくて切り捨てした時、
ERROR_INSUFFICIENT_BUFFERがセットされる、とあるけどこれ嘘だな。
いつからか誤った記述が紛れ込んだ予感。

739 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:32:22 ]
>>734が嫌味なのか真性なのか分からない俺はハントシーロムッテロなのか・・・


740 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:36:18 ]
>>738
DWORD len = MAX_PATH, rlen; の方がrealloc呼ばれる回数が減っていいかも



741 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:36:49 ]
MSDNは無謬
そんな風に思っていた時期が…

無い

742 名前:738 mailto:sage [2008/02/25(月) 02:06:26 ]
改めて見るとrealloc使う必要性全然ないな。
随時追加を実装する時のコードだ、これは。
free(name);
if ( (name = (LPTSTR)malloc(len * sizeof(TCHAR))) == NULL ) break;
これでいいや。

743 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:27:33 ]
このスレからカルトを感じる

744 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 03:15:59 ]
適当な大き目のバッファをスタックに取ってOK
それで取得できないような糞長いディレクトリを使うような池沼は無視して問題ない。

745 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 04:31:53 ]
俺も1KBくらい取って駄目なら止めるな
無駄な作業だもんw

746 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 05:00:57 ]
プログラム板の住人はいつも無意味にピリピリしてるのれす

747 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 05:06:54 ]
そもそも>>678が勘違いして関係ない糞ース書くからだろ

748 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:41:48 ]
そうか・・・。
バッファが足りないときは nSize がそのまま返ってきて
ERROR_INSUFFICIENT_BUFFER エラーになるだけなのか。
あんま斜め読みして横レスするもんじゃないな。

749 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:45:05 ]
そういう風に勝手にMaxを想定するプログラマが多いから、
東証のシステムが止まったりするんだよな。





750 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 08:04:45 ]
>>749
Microsoft自体がそうだけどな。
Path系APIがMAX_PATHを超えるパスを正しく処理できない、とか。






751 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 08:12:57 ]
それは、ANSI版使うからだね。Unicode版使えば、約32000文字まで扱えるかな?


752 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 08:50:50 ]
違うよ。Path関数はバッファ長を引数に渡さないからA/W版共にMAX_PATH固定で作ってあるんだよ。






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

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

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