Win32API質問箱 Build ..
[2ch|▼Menu]
653:デフォルトの名無しさん
08/02/22 17:49:39
>>651
つ I  これやるよ。

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

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

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

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



656:デフォルトの名無しさん
08/02/23 20:25:07
>>655
これかなたぶん?
URLリンク(msdn2.microsoft.com)(VS.85).aspx

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

658:デフォルトの名無しさん
08/02/23 20:58:33
EnumEnhMetaFileだろjk

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


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

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

662:デフォルトの名無しさん
08/02/23 23:11:47
>>661
>>658

663:デフォルトの名無しさん
08/02/24 00:30:42
>>660
レスサンクス
調べてみる

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


665:デフォルトの名無しさん
08/02/24 01:30:16
まずは自分コードを疑おう

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

667:666
08/02/24 01:50:32
やるんならGetCurrentDirectory使うか
INIとか設定ファイルなんかに持たせるとか
そういうのでいいんでね?

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

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



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


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

>>669
GetModuleFileName→(PathRemoveFileSpec)→PathAppend

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

672:デフォルトの名無しさん
08/02/24 02:48:10
ずるずる引っ張るぐらいなら最小コードをうpしたほうが早い

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

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

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

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

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

678:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/24 09:25:35
やっぱ勘違いしてたか。最小コード貼れってのは、質問者に言ってるんだよ。
エラーを再現できる最小限のコードを出せってな。

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

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

682:デフォルトの名無しさん
08/02/24 09:58:06
普通誤解しないから

683:デフォルトの名無しさん
08/02/24 10:06:58
>>678
そんなヘドロみたいなコード貼るな

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

685:デフォルトの名無しさん
08/02/24 10:35:55
DWORD GetModuleFileName(HMODULE, LPTSTR, DWORD);

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

687:デフォルトの名無しさん
08/02/24 10:46:49
普通にソケットを使えばいいだろ

688:デフォルトの名無しさん
08/02/24 10:49:03
InternetReadFile

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

690:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/24 14:11:01
Win32ならRTL_NUMBER_OFかARRAYSIZE使おうぜ。

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

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

693:デフォルトの名無しさん
08/02/24 14:31:53
V2 というネーミングセンスに吹いたw

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

695:デフォルトの名無しさん
08/02/24 15:50:16
>>690
まだまだ叩かれる余地がある。
URLリンク(msdn2.microsoft.com)

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

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

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

697:デフォルトの名無しさん
08/02/24 16:04:58
Windows XP/2000: The string is truncated to nSize characters and
is not null terminated.
~~~~~~~~~~~~~~~~~~~~

698:デフォルトの名無しさん
08/02/24 16:11:25
あ、本当だ。失礼しました

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

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

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

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

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

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


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

706:デフォルトの名無しさん
08/02/24 17:36:17
RunDLL32 shell32.dll,ShellExec_RunDLL nul.exe

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

708:デフォルトの名無しさん
08/02/24 18:33:01
なにがしたいねん

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

710:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/24 19:02:56
>>678 屑コード晒す
>>690 書き直してもやっぱり屑コード
>>701 「動けばいいじゃん」

・・・w

712:デフォルトの名無しさん
08/02/24 19:07:59

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

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

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

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

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

715:デフォルトの名無しさん
08/02/24 19:52:38
その中身を保守する人のことを考えろ

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

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


718:664
08/02/24 20:30:38
664でGetModuleFileName()関連の質問をした者です。
変な質問をしてすみませんでした。


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

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

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

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

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

720:デフォルトの名無しさん
08/02/24 21:01:23
>>719
ありがとう

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

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

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

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

725:デフォルトの名無しさん
08/02/24 23:32:48
マイタ・デッヤーレ

726:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/24 23:35:45
>>699
そういうのって C++ のグローバルオブジェクトのコンストラクタから
正しく使えるんだろうか。
もっとも、GetModuleFileName も正しく使えるかどうか。

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

729:デフォルトの名無しさん
08/02/24 23:59:04
間違えた。
0 の時は 「失敗」 なのか。

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

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

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

731:デフォルトの名無しさん
08/02/25 01:00:24
質問と回答とこの俺のレス以外はいりません

732:デフォルトの名無しさん
08/02/25 01:01:02
なんでcalloc使わないといけないんだ?w

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

734:1 ◆GqrOSDYjeQ
08/02/25 01:11:01
>>726
#define CHECK(b) if(b); else goto ERROR

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


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

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

737:731
08/02/25 01:27:05
マジ黙れお前ら

738:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/25 01:32:22
>>734が嫌味なのか真性なのか分からない俺はハントシーロムッテロなのか・・・


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

741:デフォルトの名無しさん
08/02/25 01:36:49
MSDNは無謬
そんな風に思っていた時期が…

無い

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

743:デフォルトの名無しさん
08/02/25 02:27:33
このスレからカルトを感じる

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

745:デフォルトの名無しさん
08/02/25 04:31:53
俺も1KBくらい取って駄目なら止めるな
無駄な作業だもんw

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

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

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

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





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




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


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

753:デフォルトの名無しさん
08/02/25 09:30:24
ダイアログボックスに関する質問です。
モーダルダイアログボックスで、キャプションバー付き、システムメニュー&最小化ボタン等付き、オーバーラップスタイルで作成しています。
タイトルは開発環境のダイアログプロパティで指定して、メニューも同様です。
普通のウィンドウって左上にアイコンがでますよね?
ダイアログボックスでも普通はアイコンが表示されるんですが、メニューをダイアログボックスに指定する(追加する?)と
このアイコンが表示されなくなってしまうんですが、どうしたらいいでしょうか
メニューバーを付けないと、アイコンは表示されるんですが・・

一応リソースの中身はこういう風になっています。
IDD_DIALOG1 DIALOGEX 32, 32, 155, 81
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU
CAPTION "タイトル"
MENU IDR_MENU1
FONT 9, "MS Pゴシック"

754:デフォルトの名無しさん
08/02/25 10:19:12
指定のフォルダ内にあるファイルのファイル名を全て取得するにはどうすればできますか?
フォルダ内のファイルを全て開きたいんですが

755:デフォルトの名無しさん
08/02/25 10:26:52
FindFirstFile
FindNextFile

756:デフォルトの名無しさん
08/02/25 10:28:28
FindFirstFile、FindNextFileで列挙する

757:デフォルトの名無しさん
08/02/25 10:48:10
ありがとうございます。できました

758:デフォルトの名無しさん
08/02/25 12:01:42
ああ、PATH系ってShell系のAPIね。それならそうかも。前、エクスプローラ使って、
頑張って長いパスのファイル・フォルダ作ろうとしたが、そこらへんの壁越えれなった


759:デフォルトの名無しさん
08/02/25 15:34:45
>>690見て思ったんだが、配列なら_countof使ったらいかんの?
(VC++2005以降だが2003でも定義コピペすれば使える)

760:デフォルトの名無しさん
08/02/25 18:43:09
_countofでもARRAYSIZEでもいいけど、
C89に入れてくれればそれで統一できて良かったのに……。
C99でも遅くない。次の改訂でも遅くないから。

C++だとboost::sizeがあるけど、配列に対してはstd::size_tを返すから、
Win32 APIでは少し使いづらい。定数式が必要なときも使えないし。

761:デフォルトの名無しさん
08/02/25 22:45:14
またboost厨か
C++にはSTLがあるという話をするなら分からんでもないが
標準ライブラリでないboost前提で平然と話を進めるあたり流石としか言えない

762:デフォルトの名無しさん
08/02/25 22:59:44
つうかそんな小物のためにboost入れたくないな

763:デフォルトの名無しさん
08/02/26 01:20:15
CreateWindowExでES_MULTILINEを設定してEDITコントロールを作成すると
WS_TABSTOPを記述してもtabでのコントロール間でのフォーカス遷移がそのコントロールでとまってしまいます。

ES_MULTILINEをスタイルに設定したEDITコントロールでもWS_TABSTOPが使えるようにするにはどうすれば良いですか?

764:デフォルトの名無しさん
08/02/26 01:39:18
sizeof も size_t 返すじゃん?

765:デフォルトの名無しさん
08/02/26 05:48:03
コンパイル時定数です C言語スレでどうぞ

766:デフォルトの名無しさん
08/02/26 07:10:14
>>763
WM_GETDLGCODEの戻り値を
サブクラス化して弄ってやればいいような気がする。
タブが入力できなくなるかもしれんが、それは知らん。

767:デフォルトの名無しさん
08/02/26 14:55:53
lpBufSizeの分領域を確保しようとしてるんですが、HttpQueryInfoでHTTP_QUERY_CONTENT_LENGTH
を指定してもlpBufに何も返ってきてくれません
やっぱりHttpOpenRequestの3個目の引数が間違ってるんでしょうか?
index.htmlや./、../など色々試してみても変らずだったんですが
URLリンク(www.google.co.jp)みたいに/の後に何も無い場合って何を入れればいいですか?


//ソース
hInet=InternetOpen(szClassName,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
if(!hInet)return -1;

hConn=InternetConnect(hInet,"www.google.co.jp",INTERNET_DEFAULT_HTTP_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,0);
if(!hConn){
   InternetCloseHandle(hInet);
   return -1;
}

hReq=HttpOpenRequest(hConn,"GET","/",NULL,NULL,NULL,0,NULL);
if(!hReq){
   InternetCloseHandle(hConn);
   InternetCloseHandle(hInet);
   return -1;
}

if(!HttpSendRequest(hReq,NULL,0,NULL,0)){
   InternetCloseHandle(hReq);
   InternetCloseHandle(hConn);
   InternetCloseHandle(hInet);
}

HttpQueryInfo(hReq,HTTP_QUERY_CONTENT_LENGTH,lpBufSize,&dwSize,NULL);
※lpBufSizeに何も入らない…

768:デフォルトの名無しさん
08/02/26 14:58:53
google の / がどうかは知らないけど、content-length は必ずあるとも限らないしねぇ

769:デフォルトの名無しさん
08/02/26 15:50:39
index.htm、またはindex.html

googleはindex.html
URLリンク(www.google.co.jp) = URLリンク(www.google.co.jp)

770:デフォルトの名無しさん
08/02/26 16:02:39
"/" 等のディレクトリへのアクセスは、普通はサーバーが解釈してくれるんじゃない?
(index.html, index.htm, default.html, index.asp, ...)

771:デフォルトの名無しさん
08/02/26 16:04:49
質問です。
RegisterHotKeyでホットキーを使いたいと思うんですが、
NumLockを外した状態のテンキー(カーソルやらHomeやらEndやらとして動作する)
をホットキーとして利用したいんです。

ところがホットキーの仕様ではいわゆる普通のカーソルキーとテンキー部分との区別が無いので、
どっちのキーを押してもホットキーとして反応してしまいます。

テンキー部分のみをホットキーとして利用できるようなカラクリをこしらえられませんかね。
WM_KEYDOWNとかならExtendedKeyか否かで両者を区別できるんだけどな。
やっぱHookしか無いですかね。

772:デフォルトの名無しさん
08/02/26 16:29:15
>>770
解釈ってーかリダイレクトされるな多くの場合は。

773:デフォルトの名無しさん
08/02/26 17:00:23
>>768-770
ありがとうございます。とりあえず3番目の因数は/でいいんですね
それでも何も入らないのはヘッダに情報が無いからなのかな
調べてたらInternetQueryDataAvailableでサイズ調べれることを知ったのでこれ
を使って確保することにします

774:デフォルトの名無しさん
08/02/26 17:03:09
突っ込んではいけない

775:デフォルトの名無しさん
08/02/26 20:02:33
ごめんInternetQueryDataAvailableで分かるのは一度に読み込めるバイト数だったのね
とりあえずは諦めて読み込めない時は5000000確保することにしました
それでこんな風に書いてみたんですが、yahooやgoogleでは途中までしかダウンロード
されないんですが何故ですか?
ずっとブレークポイントで止めたりググたりして調べてるんだけど分からなくて発狂しそうです

とりあえずエラーチェック無しで書いてみてます

if(lpBufSize[0]=='\0')lstrcpy(lpBufSize,"5000000");
BufSize=(atol(lpBufSize))+1;
lpszBuf=(char *)GlobalAlloc(GMEM_FIXED,sizeof(char)*BufSize);
memset(lpszBuf,0x00,sizeof(char)*BufSize);
char *Buf=lpszBuf;
while(1){
    InternetReadFile(hReq,Buf,BufSize,&dwSize);
    Buf+=dwSize;
    if(dwSize == 0)break;
}

776:デフォルトの名無しさん
08/02/26 20:35:23
戻り値とGetLastErrorの確認

777:デフォルトの名無しさん
08/02/26 20:36:00
URLリンク(msdn2.microsoft.com)

>To ensure all data is retrieved, an application must continue
>to call the InternetReadFile function until the function
>returns TRUE and the lpdwNumberOfBytesRead parameter equals zero.

778:デフォルトの名無しさん
08/02/26 21:33:00
>>776
ありがとう。ループ1回目はエラー無しで2回目からエラーコードERROR_INVALID_PARAMETERがでて
調べると「パラメータが間違ってる」らしいけど何が間違ってるのかわからない…
現在のソースは>>767>>775をくっつけてる状態です
>>777
完全にダウンロードするには、dwSizeが0かつ関数がTRUEを返すまでループさせないと
いけないってこと?
でもそれだと永遠ループしてしまう

779:デフォルトの名無しさん
08/02/26 21:35:22
実際にはない部分の領域も書けるといっちゃダメって話じゃないの。
要するにBufSizeもちゃんと減らせと。

780:デフォルトの名無しさん
08/02/26 21:41:32
>>779
ありがとう。そういうことっぽかったです
試しにInternetReadFileの3つ目の引数を1にしてみたらいけました。
ただこれだと効率悪そうなのでまた今度ちゃんと考えて計算してみます
インターネットに繋げるのに6時間以上かかってしまったけど上手くいってよかった

781:デフォルトの名無しさん
08/02/26 21:53:13
>>774
「因数」のことか?代わりに突っ込んどくか。

引数(ひきすう)が正しい。

782:デフォルトの名無しさん
08/02/26 22:20:34
if(lpBufSize[0]=='\0')lstrcpy(lpBufSize,"5000000");
BufSize=(atol(lpBufSize))+1;

とか

lpszBuf=(char *)GlobalAlloc(GMEM_FIXED,sizeof(char)*BufSize);
memset(lpszBuf,0x00,sizeof(char)*BufSize);

とか突っ込みどころ満載だな

783:デフォルトの名無しさん
08/02/26 22:36:56
いんすうwwwwwwwwwwwwwwwwww昔の俺だwwwwwwwwwwwww

784:デフォルトの名無しさん
08/02/26 22:50:34
>>782
どう直すと良くなる?

785:デフォルトの名無しさん
08/02/26 22:52:30
今時クリップボード以外でGlobalAlloc使う意味あんの?

786:デフォルトの名無しさん
08/02/26 22:52:31
GlobalAlloc使う理由がわからん
HeapAllocのがよろしいと思うんだけどね 0梅とかシングルスレッド用オプションとか多機能だし

787:デフォルトの名無しさん
08/02/26 22:58:16
スレ的にはnew使うのは無しか

788:デフォルトの名無しさん
08/02/26 23:01:08
lpBufSizeがどこから来ているかわからないが、
初めから整数型にしておけよ。特に関数の引数なら尚更。

789:デフォルトの名無しさん
08/02/26 23:05:12
音訓交じりな"ひきすう"より"いんすう"と読む方が国語的にはセンスがある筈なんだけどね

790:デフォルトの名無しさん
08/02/26 23:06:54
それだと因数と同じ発音だから「ひきすう」と読むと説明される。

791:デフォルトの名無しさん
08/02/26 23:07:03
正直HeapAllocも使わない
malloc/callocやnew使ったほうがデバッグビルドでメモリリーク検出できるし

792:デフォルトの名無しさん
08/02/26 23:08:47
引数が「ひきすう」なら因数は「よりすう」と読むべき。

793:デフォルトの名無しさん
08/02/26 23:11:29
音訓が何か勉強しなおしてこいや

794:デフォルトの名無しさん
08/02/26 23:12:04
>>792
なんてこったいwww

795:デフォルトの名無しさん
08/02/26 23:21:44
美肌(びはだ)
という読み方が気にならないならおk


796:デフォルトの名無しさん
08/02/26 23:25:48
魅せるとか言ってもいいですよ

797:デフォルトの名無しさん
08/02/26 23:27:30
美姫と間違えるくらいなら びはだ でおk

798:デフォルトの名無しさん
08/02/26 23:31:42
淫吸

799:デフォルトの名無しさん
08/02/26 23:32:06
そろそろ用語の読み方スレ池

800:デフォルトの名無しさん
08/02/27 00:41:28
HeapAllocのメリットはCreateして丸ごとDestroyできる
とか

801:デフォルトの名無しさん
08/02/27 05:31:21
VMwareみたいなものを動かしていると、仮想ディスクのファイルの
断片化が著しいですが、固定サイズに設定した時のWindowsの
ページファイル(意味伝わるでしょうか?)の様に、
ディスクの物理的な、ある領域区画だけしか使わないようにファイルを
更新する方法ってないでしょうか?
デバイスドライバを書かないとだめでしょうか?


802:デフォルトの名無しさん
08/02/27 07:02:08
defragしたいの?

803:デフォルトの名無しさん
08/02/27 07:08:16
>>801
FDISKで小さい区画を作ってそこだけ使わせればいいじゃん

804:デフォルトの名無しさん
08/02/27 12:48:39
ウィンドウのタイトルバーをクリックされて何もせず離された時って
プロシージャにはなんていうメッセージが送られるんでしょうか?


805:デフォルトの名無しさん
08/02/27 13:05:33
Spy++で監視

806:デフォルトの名無しさん
08/02/27 13:16:29
質問です。

クリップボードへのコピーが発生したとき、
それが自分のプロセスからかどうかを調べる
一般的な方法ってあるのでのしょうか?

お願いします。

807:デフォルトの名無しさん
08/02/27 16:06:08
コピーが発生したとき通知するAPIはあるけど
プロセスまではわかんなかった気が

SetClipboardData見てれば

808:卍凹
08/02/27 18:01:52
質問です
ただいまゲーム作成中なのですが他のPCで実行したらバグが起こりました
環境
OS XP home
開発環境 VS 2005
Win32API
C言語で作成
何を書いていいかわからないのでほかいってくれればすぐに書きます

バグは自分の開発しているPCと他の自分のPCは実行できるが、
なぜか友人のPCでは途中で動きが遅くなりフリーズしてしまう…(;_:)こんな感じです。




809:デフォルトの名無しさん
08/02/27 18:25:35
エスパーのさらに上を期待してるのかw

810:デフォルトの名無しさん
08/02/27 18:29:51
スペック足りてないんじゃね

811:デフォルトの名無しさん
08/02/27 18:34:30
>>808
1208行目のループ文が無限ループしてる

812:デフォルトの名無しさん
08/02/27 18:38:57
>>808
メモリとかリソースの解放漏れ

813:卍凹
08/02/27 18:47:15
>>810
自分のPCよりスペックの高いPCを友人が持っていたのでためしたが駄目だった
んでスペックが足りないってこともないと思います。
>>811 812
812だとすれば自分のPCでも症状は出ると思うのですけど、今のところはでていません


814:デフォルトの名無しさん
08/02/27 18:56:33
今日からスッドレの勉強はじめました。

歯痛制御って何ですか?
セマホって何ですか?
クリテカルスポットって何ですか?

815:デフォルトの名無しさん
08/02/27 19:32:43
そのまま勉強を続ければ時季に分かるだろう。

816:デフォルトの名無しさん
08/02/27 20:13:54
>>808
それはその友人の罠だな。すぐ逃げた方がいい

817:デフォルトの名無しさん
08/02/27 20:21:27
クリティカルセクションつかって
会社の女のまんこに挿入したいのですが、
どうすればいいですか?


818:デフォルトの名無しさん
08/02/27 20:33:45
自分では面白いと思って書き込むんだろうね。
リアルでも空気が読めずに相手にされないのがもろわかりな内容。

819:デフォルトの名無しさん
08/02/27 20:53:17
>>818

820:卍凹
08/02/27 20:53:52
自分のPCはCeleronで友人のはPen4これぐらいしか大きなちがいはないのですが
なぜ動かないのでしょうか?うpするからみてもらえませんか??

821:デフォルトの名無しさん
08/02/27 21:10:15
嫌です

822:デフォルトの名無しさん
08/02/27 21:13:34
何故、他人が作ったもののデバッグをやらなきゃいかんのか、と

823:卍凹
08/02/27 21:15:39
すいませんでしたm(__)m

824:卍凹
08/02/27 21:16:22
すいませんでした

825:デフォルトの名無しさん
08/02/27 21:35:06
マジで回答期待してるなら
うpロダにソース晒せ


826:デフォルトの名無しさん
08/02/27 21:47:26
俺もゲームやりたい

827:デフォルトの名無しさん
08/02/27 22:03:14
CeleronがCovingtonなら、十分すぎるほど違いがあるな。

828:デフォルトの名無しさん
08/02/27 23:57:47
フォントの10.5ポイントとかとCreateFontの高さを相互変換するにはどうしたら良いですか?

829:デフォルトの名無しさん
08/02/28 00:04:25
MFC や WTL の CreatePointFont の実装をパクる

830:デフォルトの名無しさん
08/02/28 00:07:08
ポイント/72*DCのdpi = pixelという計算式がある。

MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

831:デフォルトの名無しさん
08/02/28 00:30:14
>>829-830
ありがとうございます。
そこらへんから調べてみます。感謝。


832:771
08/02/28 00:50:22
誰も覚えてないだろうけど>>771はどうにもならんかったのでフックで何とかした。
以上報告まで。

833:デフォルトの名無しさん
08/02/28 04:07:03
MSDNライブラリを読むと、BitBltやStretchBltは使えない環境もあるようですが、
AlphaBlendやTransparentBltにはそのような記述がないということは、
BitBlt等はデバイス(GPU?)が行い、AlphaBlend等は全てCPUが処理するということで合ってますか?

834:デフォルトの名無しさん
08/02/28 07:00:34
Vista以降を除けば合っていない。
GetDeviceCapsのSHADEBLENDCAPSで対応状況が解る。

835:デフォルトの名無しさん
08/02/28 07:01:10
AlphaBlendやTransparentBltはハードウェア処理できたらハードウェア処理するができなかったらソフトウェア処理だったと思う

836:デフォルトの名無しさん
08/02/28 10:40:58
エクスプローラやAPIのCopyFileを使った巨大ファイルのコピー中に(完了まで数分掛かる)
現時点でのコピーされたバイト数を取得する方法は無いでしょうか?

よろしくお願い致します。

837:デフォルトの名無しさん
08/02/28 10:49:50
CopyFileEx

838:デフォルトの名無しさん
08/02/28 22:22:29
BitBltが使えない環境なんて考えたことない。
そんなのが実在するなんて恐ろしいわ。

839:デフォルトの名無しさん
08/02/28 22:41:33
BItBltはオペレータの組み合わせ具合で
ドライバのまずい部分をつつく可能性はあるね

840:デフォルトの名無しさん
08/02/29 00:52:06
>>833
「HDCは画面だけのものじゃない」ってのをよく考えれ。

>>836
アプリが動かしてるのを取得したいんならフックするのがベストかな。
自前ならどーとでもお好きなように。

841:デフォルトの名無しさん
08/02/29 18:38:33
質問があります。
プログラム中で、マウスホイールを禁止したいと思ってます。
またはプログラム中でホイール動作時の移動量情報を自分で決めたいと思っています。
できれば、WM_CREATE内で。。
ホイール動作時にWM_MOUSEWHEELメッセージが来るのは分かったのですが。。
環境はVC.net + SDK です。よろしくお願いします

842:デフォルトの名無しさん
08/02/29 18:44:39
C#のArrayListみたいなのに相当する
出し入れ自由なコレクションって自作するしかない?

843:デフォルトの名無しさん
08/02/29 18:56:20
どう考えても、OSの面倒見てくれる範囲じゃないだろ

844:デフォルトの名無しさん
08/02/29 19:17:04
大抵のライブラリにはあるだろ

845:デフォルトの名無しさん
08/02/29 19:58:24
CLISTってのはMFCとかいうのの機能なんでしょ?

846:デフォルトの名無しさん
08/02/29 19:59:47
>>842
どの言語?いずれにしてもその言語のスレ行きな、ここはスレ違いだから。

847:デフォルトの名無しさん
08/02/29 21:38:35
>>842
Dynamic Pointer Arrayという物がある。
比較的最近のSDKでないと定義されてないけど実はWin95でも使える枯れたAPIだったりする。

848:デフォルトの名無しさん
08/02/29 22:09:33
>>841
WM_MOUSEWHEELでdeltaを好きなようにしたらいかんべ

849:デフォルトの名無しさん
08/02/29 22:16:20
GUI部分と実際の処理部分を別々のソースファイルに書いています。
内部処理のソースファイルで定義した関数から
SetWindowTextでEDITコントロールの内容を変更出来ないんですけど、原因分かりますか?

850:デフォルトの名無しさん
08/02/29 22:16:58
WinAPI難しいなぁ

851:デフォルトの名無しさん
08/02/29 22:21:18
URLリンク(wisdom.sakura.ne.jp)
テンプレの上記のサイトのメッセージボックス項の
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
CHAR chStr[128];

wsprintf(chStr , "インスタンスハンドル : %d" , hInstance);
MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK);

return 0;
}
上記のコードを実行しようとすると
error C2664: 'wsprintfW' : 1 番目の引数を 'CHAR [128]' から 'LPWSTR' に変換できません。
error C2664: 'MessageBoxW' : 2 番目の引数を 'CHAR [128]' から 'LPCWSTR' に変換できません。
このようなエラーが出ます
chStrをLPWSTR[128]で宣言してもエラーは相変わらずです。
これはどうすればいんでしょうか?コンパイラはVS2005です

852:デフォルトの名無しさん
08/02/29 22:23:54
>>851
マルチバイト文字セットに変更汁

853:デフォルトの名無しさん
08/02/29 22:29:54
>>851
CHAR→TCHAR

>chStrをLPWSTR[128]で宣言してもエラーは相変わらずです。
ってLPWSTR chStr[128]ってしたってこと?

854:デフォルトの名無しさん
08/02/29 22:36:59
またWISDOMかw

855:デフォルトの名無しさん
08/02/29 22:39:24
>>852
>>853
TCHARにすると
error C2664: 'wsprintfW' : 2 番目の引数を 'const char [26]' から 'LPCWSTR' に変換できません。
こんなエラーが出ます
このエラーからすると第一引数にはchar型が入るように見えるんですが、違う、のかなぁ

>>chStrをLPWSTR[128]で宣言してもエラーは相変わらずです。
>ってLPWSTR chStr[128]ってしたってこと?
です、エラーからしてそういうことかなぁと思いまして

856:デフォルトの名無しさん
08/02/29 22:40:49
>>855
TCHAR chStr[128];
wsprintf(chStr , TEXT("インスタンスハンドル : %d") , hInstance);

857:デフォルトの名無しさん
08/02/29 22:41:54
* UNICODE, ANSI ビルド
* TCHAR, CHAR, WCHAR 型
* TEXT, _T マクロ
この辺についてちゃんと調べるなりドキュメント読んだほうが良いと思う

858:デフォルトの名無しさん
08/02/29 22:48:20
>>855
違うよ。>>852の意味は
[プロジェクト]-[プロパティ]-[構成プロパティ]-[全般]-[文字セット]をマルチ バイト文字セットを使用する
に変更するという意味だよ。

859:デフォルトの名無しさん
08/02/29 22:50:30
error C2664:〜〜〜〜  'A’ から 'B' に変換できません。
※ABは char / wchar_t / LPSTR / LPWSTR / LPCSTR / LPCWSTR など

巷のサンプルコードがこのようなコンパイルエラーを発生させる場合、文字セットが適切ではないです。
開発環境の文字コードの設定をソースにあわせるか、ソースを開発環境の設定にあわせるかしましょう。
方法は各々の開発環境のスレへどうぞ。


この辺の文言がテンプレにあったほうがいいような気がするがお前らはどう思うか

860:デフォルトの名無しさん
08/02/29 22:50:41
>>849
コード見ないとわかんね
ここエスパースレじゃねえし

861:デフォルトの名無しさん
08/02/29 22:52:53
>>860
分からないなら無理に答えていただく必要はありません

862:デフォルトの名無しさん
08/02/29 22:55:44
>>861なりすまし乙
>>860エスパーレスが欲しかったんですけど、ダメですかねえ

863:デフォルトの名無しさん
08/02/29 22:58:31
違うプロセスのウィンドウに SetWindowText を使っているとか

864:デフォルトの名無しさん
08/02/29 22:58:37
無茶言うなw

865:デフォルトの名無しさん
08/02/29 23:36:24
>>863
SetWindowText(WM_SETTEXT)は他プロセスでも平気じゃなかったか

866:デフォルトの名無しさん
08/03/01 00:04:58
>>865
WM_SETTEXT は大丈夫だけど SetWindowText は駄目

URLリンク(msdn2.microsoft.com)
>To set the text of a control in another process,
>send the WM_SETTEXT message directly instead of calling SetWindowText.


867:デフォルトの名無しさん
08/03/01 00:15:11
ちょっと占ってみると
HWNDを間違えてる、とでますた。

868:855
08/03/01 00:27:56
ありがとうございました、1~10辺り200回くらい読みなおしてきます

869:デフォルトの名無しさん
08/03/01 00:47:18
VCってどの辺のバージョンからUnicodeビルドがデフォになってるの?

870:デフォルトの名無しさん
08/03/01 00:59:55
2005。Expressロハ化と軌を一にしており
全国の初心者をドツボにハメた。

871:デフォルトの名無しさん
08/03/01 01:07:34
なんかしらんが、Unicodeが楽すぎ。マルチバイトで文字区切りなんて悪夢だ。

872:デフォルトの名無しさん
08/03/01 01:15:58
>>871
で、油断してるとサロゲートペアとかにはまると。

873:デフォルトの名無しさん
08/03/01 01:19:47
UTF16じゃなくて32ならよかったのにな

874:デフォルトの名無しさん
08/03/01 01:32:53
まだWin98が現役だというのに・・・

875:デフォルトの名無しさん
08/03/01 01:34:54
現役じゃねえよバカ
LANケーブル引っこ抜け

876:デフォルトの名無しさん
08/03/01 02:47:15
Windowsフォームアプリケーションでデザイナを使って生成されるコードはMFC?

877:デフォルトの名無しさん
08/03/01 02:47:54
開発環境のスレで聞け

878:デフォルトの名無しさん
08/03/01 03:17:58
>>870
VS2005インスコして確かめてみたら、マジだ
なんでデフォの動作をころころ変えるかねぇ・・・

つうかメモリ128MBでVS2005が予想以上に重いw

879:デフォルトの名無しさん
08/03/01 03:24:58
オレは今どきデフォでMBCSの方が嫌だよ

880:デフォルトの名無しさん
08/03/01 04:49:41
>>849ですが解決しました、Win32APIと関係無いところでミスってたようです。
どもでした。

881:デフォルトの名無しさん
08/03/01 04:58:54
ktbr

882:デフォルトの名無しさん
08/03/01 07:44:23
ころころ動作を変えてねぇだろ。
いままでずっとMBCSだったじゃないか。
というかおれとしては2002か2003の時点で変えてほしかった。

883:デフォルトの名無しさん
08/03/01 08:41:54
2005でもコマンドラインからclやnmake叩いてコンパイルすればデフォはMBCSじゃないの?

884:デフォルトの名無しさん
08/03/01 08:53:56
プロジェクト作ったときに、デフォルトで/DUNICODE /D_UNICODE
あたりが定義されるだけだからなー。
だから、nmakeについてはMAKEFILEをどうやって作ったかにもよるんじゃね?
あと、環境変数CLとかw

885:デフォルトの名無しさん
08/03/01 10:35:16
つーか今時メモリ128MBで開発しようなんて思うほうがどうかしてるよ。

886:デフォルトの名無しさん
08/03/01 11:23:20
UNICODE文字が全角幅か半角幅か簡単に調べる方法はありますか?
デバイスコンテキストに固定長フォントセットしてGetTextExtentPoint32()呼び出すしかないでしょうか?


887:デフォルトの名無しさん
08/03/01 11:36:01
一部罫線系の記号なんかは、フォントによって
全角半角の扱いがちがったりするし。
UNIXなら、wcwidthでいけるんだけどね。
まー、64Kbit程度のテーブル一回作れば終わるわけだし作れば。

888:デフォルトの名無しさん
08/03/01 11:37:29
日本語ターゲットなら、SJISに変換して何バイト取るか調べる手もあるか。
BMP外にあるSJIS表現不能な連中はシラネ。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4299日前に更新/212 KB
担当:undef