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


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

Win32API質問箱 Build51



1 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 03:44:55 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

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

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

686 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:00:46 ]
日本語でおk

687 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:12:48 ]
アドバイスありがとうございます。
とりあえずWS_CHILDとWS_POPUPは共存できないようです。

D-Pixedのツールウインドウが同じ実装になっていたのを思い出し、Spy++で覗いてみました。
>>683さんの言うとおりのオプションを使っていましたが、それが原因で望んだ挙動をしているわけではないようです。

とりあえず下記を、親と子両方に入れてやったところ上手く狙った挙動ができているようです。
なので問題ないといえばないのですが、より上手い方法があれば教えていただけると幸いです。

if (WA_INACTIVE != wParam)
{
 ::SetWindowLong(hChildWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW | WS_EX_TOPMOST);
 ::SetWindowPos(hChildWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
else
{
 ::SetWindowLong(hChildWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
 ::SetWindowPos(hChildWnd, hParentWnd, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
 ::SetWindowPos(hParentWnd, hChildWnd, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}


688 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:13:57 ]
他アプリウィンドウ - オーナー - ポップアップ - (最前面) で
他アプリウィンドウをタスクバーのクリックでアクティブにすると、
オーナー - 他アプリウィンドウ - ポップアップ - (最前面)
ってなることがあるんだよなあ。
Alt+Tabだと発生しないけど、なんだかなあと思う。

689 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:25:44 ]
>>687
共存できないとわざわざ書いたのはなぜ?
もしかして>>682を誤解してる?

690 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:29:41 ]
>>687
>より上手い方法があれば教えていただけると幸いです。

そういうウィンドウはOwned Windowと言います。>>685のリンク先を読んでください。

691 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:29:47 ]
…なぜに SetWindowLog & SetWindowPos なんだ?
CreateWindowEx でのスタイル指定で解決できるのに…

ターゲットの窓が他プロセスの持ち物なのか?

692 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:32:35 ]
>>689-691
すいません、682さんを誤読した上に、685さんのレスとレスがすれ違いました。
WS_POPUPとは、親ウインドウを持つウインドウのことだったのですね。

正直、オーバーラップウインドウと、ポップアップウインドウの区別がわからず
今ググっていて682さんの文章に対する誤読に気づきました。
685さんのリンク先を実践してみます

693 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:50:25 ]
解決できました。
WS_POPUPの解説である「ポップアップウインドウを作成する」の「ポップアップウインドウをはなんぞや?
という知識が無かったのが問題でした。

ポップアップウインドウそのものが、私の望んでいたもののようです。
WM_ACTIVEなどをまったく使わずWS_POPUPを指定しただけで解決できました。

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

694 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 00:43:50 ]
DOS窓で、CreateWindowてどうやるの?
メッセージループとか。



695 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 00:53:29 ]
どうやってやるも何も普通に出来るだろ。
いったい何を言っているんだ?

696 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:40:30 ]
>>694
日本語でおk

697 名前:デフォルトの名無しさん [2007/04/12(木) 03:17:19 ]
ソースコードを読んで勉強したいのですが、C言語 + Win32 API で書かれたオープンソースのアプリケーションでお薦めって何かありますか?
実践的なコードの書き方を勉強したいので、お手本になりそうなアプリがあったら教えてください。
また逆に、「このソフトの書き方は真似するな」的なのもあれば教えて頂けると有り難いです。
宜しくお願いします。


698 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 04:13:51 ]
> お薦めって何かありますか
猫でもわかる

> このソフトの書き方は真似するな
猫でもわかる

699 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 04:16:14 ]
>>698
禿道と言わざるを得ない

700 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 07:39:02 ]
あまりにも禿同杉てワラタw

701 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 08:18:22 ]
ヒントにはなるが真似は出来ない

702 名前:デフォルトの名無しさん [2007/04/12(木) 09:19:39 ]
左右分割ウインドウをMFCを使わずに作っているのですが、相談させてください。

まず、ウインドウ全体を親ウインドウとします。

子ウインドウとして
「左側用にWS_THICKFRAMEを使ったウインドウをちょっと大きめに作って配置」
「右側に余り部分の大きさ分のウインドウ」
を貼り付けて実現しています。
左側用のウインドウの大きさが変化するたびに、右側のウインドウの大きさも変更されるようにしています。

ただ、WS_THICKFRAMEは角の近くだと「マウスドラッグで縦横の大きさを変えられる」モードになってしまいます。
まず「横の大きさしか変えられないウインドウ」は作れないのでしょうか?

それをさせないために今は「上下に大きめに作る」ようにしているのですが(角付近を触れないように)、ウインドウはデスクトップウインドウのサイズより大きくは作れないようです(?)。
そのため親ウインドウをデスクトップ画面並に大きくされてしまうと困ってしまいます。
何か対策はありませんでしょうか?

左右ができれば、上下はその応用で作成可能だと思います。


703 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 09:30:11 ]
>>702
左右の境界に少し隙間を開け、そこをドラッグすると左右に大きさが変わるようにする。
というようにMFCはなってたと思う。

704 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 09:47:03 ]
>>703
なるほど。つまり自前でドラッグシステムを作っているわけですね。
WS_THICKFRAMEを使った方法も、この斜め問題さえ解決すれば実用に耐えるのですが…。

とはいうものの、WM_SIZEを捕まえて上下の大きさが変更されたら強制的に元に戻す処理は入れています。
ただそれは格好悪いもので、もし良い方法があればと思って相談しにきました。



705 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 10:44:16 ]
WM_GETMINMAXINFO捕まえたらどうだろう
MFCしか使ってないんで良く分からないけど

706 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 11:34:55 ]
>>705
できました!
まったく知らないWMでした。ありがとうございます。

これで
tagMINMAXINFO *p = (tagMINMAXINFO*)lParam;
p->ptMaxTrackSize.y += 128;
としてやることで、デスクトップサイズよりでかいウインドウを作ることに成功。
期待通り動作できるようになりました。

707 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 11:48:53 ]
>>702,706
WM_NCHITTESTを捕まえてDefWindowProc()が
HTTOP,HTBOTTOM,HTTOPLEFT,HTTOPRIGHT,HTBOTTOMLEFT,HTBOTTOMRIGHTのときだけ
もみ消してしまう方がいいのでは?

708 名前:デフォルトの名無しさん [2007/04/12(木) 11:53:52 ]
スクリーンショットを撮るAPIってありますか

709 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:00:33 ]
>>707
ウィンドウの四隅(スプリットバーの端っこ)が使えなくなるんでお薦めできない
それで無効になる領域って結構大きいし

710 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:02:23 ]
>>708
GetDC

711 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:29:16 ]
>>709
言われてみれば確かに…。16*16ほどか。
なら、座標計算して嘘の値を返すなんてのはどう?
例えば、DefWindowProc()がHTBOTTOMRIGHTの場合で
マウスが右の方にあるときはHTRIGHTを返し、下の方にあるときは0を返すとか。

712 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:35:13 ]
>>710
その答えで>>708が報われる事は絶対に無いだろう

713 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:36:19 ]
>>707
そこまでするぐらいなら普通に>>706でいいと思うんだが…
まあどっちみちWM_NCHITTESTは使うんだけど。
例えば左右に動くスプリットバーがあったとして、
その端っこにポインタを合わせたら斜め向いたカーソルが出るんじゃ
格好がつかないんで
HTTOPLEFTを受け取ったらHTLEFTを返す、みたいなことをする

714 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:37:31 ]
なんかアンカー間違えたり誤読したりで嫌になってきた



715 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:40:03 ]
適当にぐぐったらすぐサンプルコードが見つかったんで、ついで。
>>708
ttp://www13.plala.or.jp/kymats/study/MULTIMEDIA/ScreenCapture.html

716 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 13:10:09 ]
>>713
斜め向いたカーソルがでないように、上下64ドットずつ大きいウインドウを作りました

717 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 17:35:48 ]
普通は自前で全部やるものだよ。作り直したほうがいい。

718 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 18:12:40 ]
>>717
______   _      _| ̄|_  _         _
|____   |   |  | 口口  |_  _|  \\       | |  __     __ __
     / /   |  |        | |  _   ̄ ___  | |  |__|  _| |_| |_
    / /    |  |   _    | |  _| |_  |___| | |        |_  _  _\
    | |      |  \_/ /   / / /。 _|        | |  ___    .| |.|__|/ /
    \\     \   /     ̄  \/           | | |___|    |__|   ̄
       ̄       ̄ ̄                      ̄

719 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 18:30:06 ]
>>702
Splitterなんて死ぬほどサンプルあるよ
www.codeguru.com/cpp/w-d/splitter/

君の場合は、手を抜こうとして逆に面倒なことになってる気がする。
素直にフルスクラッチした方が楽だと思うよ。

720 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 21:06:03 ]
WTLのスプリッタのソースが見やすいと思われ

721 名前:デフォルトの名無しさん [2007/04/12(木) 21:58:22 ]
すみません
いまコンソールのC言語のプログラムを
WinMainで始まるプログラムでも使えるようにしようとしている
のですがエラーがでてしまいコンパイルできません
エラーの内容はunsigned char*をchar*に変換できません等のものなのですが
なんとかソースを書き換えずにコンパイルできるようにできないものでしょうか?

722 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:04:32 ]
え、キャストしちゃいけないの?

723 名前:デフォルトの名無しさん [2007/04/12(木) 22:10:59 ]
キャストすると1000ヶ所以上あってどうにもならない感じです

724 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:12:58 ]
BCCにするんだ



725 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:14:49 ]
置換使えないのかい

726 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:18:07 ]
1000箇所ぐらいなら1時間で何とかなると思うが・・・
というかSuletiGay

727 名前:デフォルトの名無しさん [2007/04/12(木) 22:20:01 ]
置換も使えなさそうです
文字列の型にunsigned char*を使っているのが問題のようで
置換をしようにもどうにも絞れません

728 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:23:39 ]
#define unsigned

729 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:29:26 ]
charをデフォルトでunsignedとみなすコンパイルオプションがなかったっけ?

730 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:29:47 ]
VCには存在するな

731 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:05:42 ]
unsigned char*からchar*へ変換できないなんて、
単にWindowsプログラムのほうではC++としてコンパイルしているだけだと思う。
Cなら(警告は出るだろうが)エラーにならずにコンパイルできるはず。

732 名前:デフォルトの名無しさん [2007/04/12(木) 23:21:58 ]
コンパイルオプション/Jでは配列のunsignedchar*がchar*に変換できないらしく
だめでした情報ありがとうございます

733 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:26:48 ]
とりあえず F4 でエラー行に飛べることを知ってるだけで
効率はかなり変わると思うよ
F4 → カーソル移動 → Ctrl+V → (以下ループ)

734 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:27:36 ]
ごめん、VC 限定ね… VC スレと勘違いした



735 名前:デフォルトの名無しさん [2007/04/12(木) 23:52:06 ]
いえ、ありがとうございます
ですが元のソースはいじるわけにはいかないんですよ
ちょっと勝手に書き換えるとまずい事情がありまして

736 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:59:12 ]
WinMainから始まろうと、mainから始まろうと、
同じCのソースコードであることに変わりはない。

片方でコンパイルできたものが、もう片方でコンパイルできないなんて、
(argc/argcやmainそのものに依存している場合などを除いて)有り得ない。

>>731は試した?

737 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:00:18 ]
>>735
そういうことってよくあるよね。
あ〜邪魔臭いコードでもいじれない。

738 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:22:56 ]
>>735
Cでは警告は出ないようだ。
こんな感じでC++とCのコードは混ぜることが出来る。

extern "C" {
#include "古いコード.h"
}

cl 新しいコード.cpp 古いコード.c


739 名前:デフォルトの名無しさん [2007/04/13(金) 01:03:16 ]
とりあえず古いソースのヘッダをincludeしている箇所を
extern "C"{}で囲ってみましたが効果ないっぽいです
情報ありがとうございます

740 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 01:18:34 ]
>>739
意味わかってないだろ

741 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 01:26:44 ]
IDEから使うと /TP がデフォになってるな。
これをはずせば拡張子に応じたコンパイルをしてくれるが、
プリコンパイルヘッダーやら他のところで引っ掛かりが出てるよ。
混ぜるのはこいつのレベルじゃ無理かもしれんね。

742 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:35:23 ]
文字列に付けるszってなんですか?

743 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:39:19 ]
Win32APIでは構造体のサイズを取得してそのサイズを構造体にセットするというのをよく使いますが、
何故このようなやり方をするのでしょうか?

744 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:42:10 ]
>>742
ハンガリアン記法



745 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:43:57 ]
>>743
バージョンが上がって仕様が変わって構造体の内容が変わっても
互換性を維持するため。

746 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:06:09 ]
まじ?

747 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:09:16 ]
>>742
zero(\0)終端string(文字列)の略

748 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:36:38 ]
nsはなんですか?

749 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:46:51 ]
>>748
質問まとめてしろよ

750 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 12:01:00 ]
>>746
>745のことならマジ。

751 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:47:56 ]
ちょっと思うんだけど、
ファイルパス長ってMAX_PATHバイト?MAX_PATH文字数?
MAX_PATHバイトだったら、マルチバイト文字で半分になるんだけどいいの?
それとも、
#define MAX_PATH_NAME (MAX_PATH * (2 / sizeof(TCHAR)))
な事すんの?

752 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:50:14 ]
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するからMAX_PATH自体あまり意味無いような・・・

753 名前:751 mailto:sage [2007/04/13(金) 13:50:49 ]
補足
TCHAR szFile[MAX_PATH_NAME + 1];

とつかうとして

754 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:57:06 ]
まあDOS/Windows 3.1時代の遺物なんで



755 名前:751 mailto:sage [2007/04/13(金) 14:01:31 ]
>>752
CreateFileの説明の通り
In the ANSI version of this function,
the name is limited to MAX_PATH characters.To extend this limit to 32,767 wide characters,
call the Unicode version of the function and prepend "\\?\" to the path.
For more information, see Naming a File.

ワイド文字で32767文字って事は、65534バイト宣言しとけばいいの?
ちょいもったいない気が・・・

756 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 14:19:59 ]
必要に応じて動的に確保すればいいんじゃないの?
どうしても固定長にしたいわけ?

757 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 14:24:08 ]
OPENFILENAME の戻り用の器は MAX_APTH 使った固定長だな。

758 名前:751 mailto:sage [2007/04/13(金) 14:36:11 ]
>>756
固定長にしたい理由というわけじゃありませんが、
明確な理由があれば、それに準じたいと思っています。

もちろん、実用的な側面でも判断しますが

759 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 15:23:35 ]
ぐだぐだ言ってないで実用的な面でどうなるか
試してみろよ。
FAT32,NTFS,共有ドライブで長い名前のファイル名作るくらいできないの?


760 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:02:48 ]
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから

761 名前:デフォルトの名無しさん [2007/04/13(金) 17:07:47 ]
>>760
うるさいばか

762 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:12:13 ]
>>758
9x系OSでANSI版のAPIつかってみなはれ

ちなみにMSでは、MAX_PATHは文字数としてあつかっとるよ
稀にMS社内でも開発者が混乱してしもて、
大穴あけてしもうたこともあるけどね

763 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:13:42 ]
まったく1文字1Byteの連中はこれだから・・

764 名前:デフォルトの名無しさん [2007/04/13(金) 17:25:11 ]
>>763
初心者にこのスレは不向きですよppp



765 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:26:38 ]
>>751
これ以上はスレ違い
APIではなくコーディングの話なら
Cスレに行け

766 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:35:44 ]
>>764
欧米の方ですか?

767 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:47:03 ]
いいえ東亜です。

768 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:52:25 ]
>>763
いや、ワイドキャラクタでも1文字2バイトじゃ済まないはずなんだが。
サロゲートペアとかあると4バイトになる。
あれ、Win32APIってUCS-2のままだったっけ?
まぁサロゲートペア対応しても、そもそも文字の定義ってなに?ってなるし。


769 名前:デフォルトの名無しさん [2007/04/13(金) 18:14:56 ]
ファイルの更新日時を変更するAPIを教えてください

770 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:23:11 ]
GetFileTime

771 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:26:48 ]
Sじゃねーのか

772 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:28:36 ]
お前さん頭いいな。

773 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:36:47 ]
Mですから

774 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:42:44 ]
>>768
ビル・G

数種類の奇妙な文字で文章を書く、親愛なる日本人の皆さん。
私はアルファベット26文字で美しい詩的な文章を綴り、人々を感嘆させるビル・Gである。
ユニコードとは何か。簡単に言えば、あらゆるプラットフォームで様々な言語を共通に扱えるようにするための統一的なコード体系のことだ。
もっと簡単に言おう。アルファベット以外の野蛮な絵文字を使ってコミュニケートする第三世界の人間に対する、心からの配慮だ。
今までも手を焼いてきた。2バイトコードの各国語対応も、少しは楽になるのだけどね。
君たちの国でも、ユニコードの問題が盛んに議論されているようだね。
日本や中国や台湾で使っている漢字コードやフォント違うって? 
それは君たちが今までに勝手な文字を作りすぎてきたツケに過ぎないよ。
また、『固有の文化』という言葉で語られる微妙な差異に関する議論は、
私にはちょうど「靴下は右足から履かなければならない」
「いや、左足から履くのが伝統だ」と言い争いをしているようにしか聞こえない。そんなことはどうでもいいじゃないか!



775 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:54:31 ]
拘りすぎてバカを見るのが東洋人
大雑把過ぎてバカを見るのが欧米人

776 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 19:25:50 ]
CJK以外にもBidiとか言語タグとか対応するのが
遅かったねぇ。
BMPを16bitじゃなくて32bitにしてれば、もう少し問題先送りできたのに。
あとはユニコードまでも取り込んだGB18030とかどうするんだろうっていう。。。


777 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 19:31:01 ]
XP以降のメモ帳で右から左に読むにして
Hello, World打つだけでも軽く死ねるなw


778 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 20:22:24 ]
神の罰です

779 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:24:16 ]
>>748
ナノ秒
冗談じゃなくて素直に考えて

780 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:26:31 ]
>>768
ファイル名の制限という観点ではコードユニットの数で数えるから関係ない

781 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:31:48 ]
ウニコードはうまそうだ

782 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:42:17 ]
>>780
NTFSはどのエンコーディングを使ってんの?

783 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:54:10 ]
>>780
ドキュメント上の問題のことです。
n文字という表現では最大バイト数は判りにくい。


784 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:54:42 ]
>>782
おそらくUTF-16



785 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:55:22 ]
もちろんUTF-16LE

786 名前:デフォルトの名無しさん [2007/04/13(金) 23:01:50 ]
結局、MAX_PATHの単位はなんなんだ?
明らかにバイト数じゃない
文字数も数えてみたがなんかちがう
会社によって1バイトのズレも許さないからこのあいまいな仕様がかなりムカつく
ちなみにファイルダイアログの最長はXPSP1までは0xFFFFだったがXPSP2からはどこまではいるのかよくわからん
ドラッグアンドドロップの限界は一体どこなんだ?






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

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

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