トップページ⇒tech
1001コメント304KB

Win32API質問箱 Build43

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/05/19(金) 11:25:09
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

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

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvencedWindowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで。
0232デフォルトの名無しさん2006/05/25(木) 21:14:07
玄人っぽくみえるからです
0233デフォルトの名無しさん2006/05/25(木) 21:21:42
>>230
ハードウェア毎に違うんじゃないの?
ドライバ直接叩くとかしないと
0234デフォルトの名無しさん2006/05/25(木) 21:24:07
>>229
ありがとうございます。
一応思ってたことはできました。

>>231
CRTを使いたくないからです。
0235LCD派2006/05/25(木) 21:29:58
CRTを使うと素人っぽいからです。
0236デフォルトの名無しさん2006/05/25(木) 21:34:36
”ディレクトリを開く”ダイアログを作成するAPIってありますか?

”ファイルを開く”ダイアログがあったから、ディレクトリもあるかと
思ったんですが、見つからないのでよろしくお願いします。
0237デフォルトの名無しさん2006/05/25(木) 21:34:54
あります
0238デフォルトの名無しさん2006/05/25(木) 21:43:38
なんていうAPIですか?
0239デフォルトの名無しさん2006/05/25(木) 21:44:32
SHGetPathFromIDList
0240デフォルトの名無しさん2006/05/25(木) 21:45:02
SHBrowseForFolder
0241デフォルトの名無しさん2006/05/25(木) 21:54:46
memset で crt なんか使われるかな・・・?
0242デフォルトの名無しさん2006/05/25(木) 21:58:01
memset自体がcrtでしょうに。
0243デフォルトの名無しさん2006/05/25(木) 21:59:00
組み込み関数だからCRTいらないんじゃ
インライン展開されるはずだし
0244デフォルトの名無しさん2006/05/25(木) 21:59:43
gcc でも VC でも凝ったオプションつけなければビルトイン関数として
その場にインラインで展開されると思うけど。
0245デフォルトの名無しさん2006/05/25(木) 22:07:00
インライン展開されようがどうだろうが、crtはcrtだぞ。
0246デフォルトの名無しさん2006/05/25(木) 22:12:31
>>245
ZeroMemory って書いておけば、コードにも crt 由来の行はないし、
出てくるオブジェクトにも存在しなくなる。

それはともかくとして、memset とか memcpy は AMD のサイトに有る
プリフェッチ使って最適化した奴使うのが良いと漏れは思うな。
入れ替えるだけで僅かながら高速化されるからラク。
0247デフォルトの名無しさん2006/05/25(木) 22:13:16
>>239,240
ファイルと違って難ずくわからん。でもサンクス。
0248デフォルトの名無しさん2006/05/25(木) 23:47:15
>>233
ドライバ書くのはたぶん無理です…
0249デフォルトの名無しさん2006/05/25(木) 23:55:33
#pragma intrinsic (memcpy)
0250デフォルトの名無しさん2006/05/26(金) 00:16:44
>>248
出来るとすればここから情報を拾うこととか。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/bluetooth/bluetooth/bluetooth_start_page.asp
0251デフォルトの名無しさん2006/05/26(金) 01:23:31
>>250
んで、結局Sockにたどり着くんじゃなかった?
0252デフォルトの名無しさん2006/05/26(金) 02:04:38
わたしはTCHARやTEXTマクロをウィンドウズアプリケーションでしかつかったことはありませんでした。
ですので、windows.hがかってにtchar.hをインクルードしているものだとばかり思っていました。

それで先日久しぶりにコンソールのプログラムを作ろうと思いました。
そしたらTCHARやTEXTマクロはないといわれました。
_tcharや_Tマクロはありましたけど・・・

もしかしてTCHARやTEXTマクロはウィンドウズアプリケーション固有のものなのでしょうか?
0253デフォルトの名無しさん2006/05/26(金) 03:27:38
ところでCRTって何?
0254デフォルトの名無しさん2006/05/26(金) 03:39:10
>>253
マジレス: Cランタイムライブラリ
ネタレス: 栃木放送

好きなほうを選べ
0255デフォルトの名無しさん2006/05/26(金) 03:45:21
ttp://ruffnex.oc.to/kenji/text/dll_inj/

GetModuleHandle って、プログラムの仮想空間に配置されている
モジュールのベースアドレスを返すわけだよね?
これの例が毎回成功するってことはKernel32 って、
どのプログラムでも同じアドレスに配置されるの?

それとも根本的におれの考え方間違ってる?
0256デフォルトの名無しさん2006/05/26(金) 03:56:54
ネタレス: 陰極線管
0257デフォルトの名無しさん2006/05/26(金) 04:03:13
リストビューって一列目しか選択することは出来ないのでしょうか?
LVS_EDITLABELSのあるリストビューで二列目のデータを変えたりしたいのですが
0258デフォルトの名無しさん2006/05/26(金) 04:19:14
>>252
とりあえず
ttp://www.kab-studio.biz/Programing/Codian/MxA/09.html
で「LPTSTRとLPCTSTR」のところを読んだらいいと思う
0259デフォルトの名無しさん2006/05/26(金) 06:00:40
PlatformSDKってどこからダウンロードできるんでしょうか?
ググってみると
ttp://www.microsoft.com/msdownload/platformsdk/sdkupdate/
ってリンクが色んなところから張られているんですが、
今この先には、Server 2003 SP1 Platform SDKしかないようです。
Download Centerで「core platform sdk」と検索しても
ヒットしないですし、公開終了してしまったのでしょうか・・・。

getaddrinfoを使おうと思ってWinsock2のヘッダをインクルードしても
見つからないよって言われてしまい、仕方なくMSDNに載っていた
関数の宣言をそのままコピペして使ってみたのですが、
危険な呼び出しだとか言われてしまい途方に暮れています。

公開終了してしまっているなら、
winsock2.hかws2tcpip.hにあるgetaddrinfoの宣言を
どなたかコピペしていただけませんか・・・?
0260デフォルトの名無しさん2006/05/26(金) 06:05:37
> Server 2003 SP1 Platform SDK
これのどこがPlatform SDKじゃないんだよ。
0261デフォルトの名無しさん2006/05/26(金) 06:24:31
>>260
ありがとうございます。

え、Win98とかに対応していないみたいだから違うのかと思ったんですが、
これでよかったんですか。
Serverとか思いっきり書いてあるので、なんか入れたらアプリが
NT系専用になってしまいそうで、不安で・・・。

getaddrinfoの宣言にWINAPIつけたら問題なく動くようになってしまったので、
とりあえずこのまま行こうと思います。
自己解決すみません。
0262デフォルトの名無しさん2006/05/26(金) 06:38:27
Win98とかに対応していないみたいだから違う
0263デフォルトの名無しさん2006/05/26(金) 07:08:58
>>261
Platform SDKに書かれているWindowsのバージョンは対応している一番新しいものを表す。
古いWindowsのプログラムを書くのには使えないということは決してない。
流石にWin16は無理だけど。
0264デフォルトの名無しさん2006/05/26(金) 07:31:30
古いVCを使ってると、PSDKの古いのが必要だが
0265デフォルトの名無しさん2006/05/26(金) 08:00:30
そのためにMSDNにこのAPIは○○以降でしかサポートされていませんとか
断り書きがあるわけだしな
0266デフォルトの名無しさん2006/05/26(金) 08:01:01
>>264
新しいのだと、
WTLやATLでコンパイルエラーが出たりするんだよね。
0267デフォルトの名無しさん2006/05/26(金) 09:27:55
>>259
MicrosoftR Windows Server 2003 R2 Platform SDK - March 2006 Edition
も出てるよ
02682572006/05/26(金) 13:14:10
リストビューで一列目以外は値を通常のやり方では変更できないということがわかりました。
ですので
リストビューのセルの上でクリックしたときにエディットコントロールを表示し
そこに入力した値をそのセルの値にしようと考えました。

それで下記のものが作りかけのソースです。

static HWND hList, hEdit;
LVHITTESTINFO HitTest;
case NM_CLICK:
GetCursorPos(&HitTest.pt);
ScreenToClient(hList, &HitTest.pt);
ListView_SubItemHitTest(hList, &HitTest);//押したセルを取得
lvColumn.mask = LVCF_WIDTH;
SendMessage(hList,LVM_GETCOLUMN,HitTest.iSubItem,(LPARAM)&lvColumn);//列の幅を得るため(高さはどうやって取得するの?)
lvItem.iSubItem = HitTest.iSubItem;
lvItem.iItem = HitTest.iItem;
lvItem.mask = LVIF_TEXT;
SendMessage(hList, LVM_GETITEM, 0, (LPARAM)&lvItem);//選択したセルの文字列取得
SetWindowText(hEdit, lvItem.pszText);//取得した文字列をhEditに格納←一列目はちゃんと文字列が表示されるのに二列目はなぜか文字化けする
MoveWindow(hEdit, わかんない, わかんない, lvColumn.cx, わかんない);//選択したセルの上にhEditを被せる
SetFocus(hEdit);//hEditにフォーカス移動←これをしたらなぜか文字列がかわらない
break;

見てもらったら最初に目に付くと思われるMoveWindowの「わかんない」ですが
これは選択したセルの左上の座標がわからないのと、セルの高さが取得の仕方がわからないということです。
だれかこのソースにこうしたらいいと思うと指摘してもらえないでしょうか?
根本的に間違っているところがあるならそれも指摘お願いします。
0269デフォルトの名無しさん2006/05/26(金) 13:20:02
>>255
exeのベースアドレスをkernel32.dllと同じにし、再配置情報を付けなかった場合、下記のエラーが発生する。
>app.exe - システム DLL の無効な再配置
>システム DLL kernel32.dll がメモリ内で再配置されました。アプリケーションは正常に動作しません。
>再配置が起きたのは、DLL app.exe が、Windows システム DLL のために予約されているアドレス範囲を
>使用していたためです。この DLL のベンダに連絡して、新しい DLL を入手してください。
しかし64bitプロセスと32bitプロセスでは、ベースアドレスや関数アドレスも違いそうだ
0270デフォルトの名無しさん2006/05/26(金) 13:23:12
>>268
LVM_GETSUBITEMRECT
02712682006/05/26(金) 14:39:18
>>270
いけました!
ありがとうございます。
0272デフォルトの名無しさん2006/05/26(金) 15:08:16
BUTTONコントロールのフォントサイズだけ変えたいと思っています。
そういうことをするには、
SendDlgItemMessageのWM_GETFONTでフォントを取得。
フォントサイズを変える。
SendDlgItemMessageのWM_SETFONTで新しいフォントを入力。
ということをしないといけないのでしょうか?
0273デフォルトの名無しさん2006/05/26(金) 15:13:05
いけないのです。
0274デフォルトの名無しさん2006/05/26(金) 15:22:01
めんどくさいですね。
もっといい方法があったら楽なのに・・・
0275デフォルトの名無しさん2006/05/26(金) 15:57:33
リソースファイルでボタン記述してる場合はフォントサイズ指定出来た様な
0276デフォルトの名無しさん2006/05/26(金) 17:01:11
>>269
どうもありがとう。
レスの内容で検索したらいい記事が見つかった。
http://japan.internet.com/developer/20050830/26.html#appendixes
02772682006/05/26(金) 18:09:14
もしかしてLVM_GETEDITCONTROLを使ったら、
自分でエディットコントロール用意する必要ない?
02782772006/05/26(金) 18:54:42
http://www.codeguru.com/Cpp/controls/listview/editingitemsandsubitem/article.php/c1077/
これを見てそう思ったんだけどそんなことを言ってるのかな?
自分にはこのソースわかんないッス!!
0279名前が欲しい名無しさん2006/05/26(金) 21:11:53
こんばんわ。
winsock2のWSASocketにてWSA_FLAG_OVERLAPPEDを指定したいのですが、当方VB6につき自前で値を指定しなければなりません。
Googleで検索したのですが見つからず、とうとう根負けしてしまいました。
ご存知の方、もしくは調べるヒントなどお持ちの方がいらっしゃいましたら教えて頂けませんでしょうか?
何卒宜しくお願いします。

板違いでしたら申し訳有りません。
0280デフォルトの名無しさん2006/05/26(金) 21:20:20
#define WSA_FLAG_OVERLAPPED 0x01

調べ方としては、Platform SDKをインストールしてヘッダ見るのが確実かな。
あとは、Googleで"define WSA_FLAG_OVERLAPPED"みたいに
defineを付けて""で括って検索してみるとか。
0281名前が欲しい名無しさん2006/05/26(金) 21:25:53
早速の返信有難う御座います。
""で括る・・・でしたか;
""無しでは検索かけてみたのですが。。。
Platform SDKという物も早速見てみたいと思います。
有難う御座いました!
0282デフォルトの名無しさん2006/05/26(金) 22:25:04
VB6でオーバーラップソケットを扱うためにAPIを叩くというのはなかなか骨だろーなー
0283デフォルトの名無しさん2006/05/27(土) 07:06:02
ありがとうございました。これで何の迷いもなくNASMで書きまくれます。
後はTEBとPEBですね・・・Webには断片的な情報しかないみたいです。
0284デフォルトの名無しさん2006/05/27(土) 12:56:18
このウィンドウのサブクラス化ってさ
http://www.kumei.ne.jp/c_lang/sdk/sdk_36.htm
自作のウィンドウプロシージャを作って、元々のウィンドウプロシージャと入れ替えるって事? 
元々のウィンドウプロシージャに機能を追加する事はできないのですか?
0285デフォルトの名無しさん2006/05/27(土) 13:02:47
自作のほうで処理したくないことを元々のやつに押し付けることは可
0286デフォルトの名無しさん2006/05/27(土) 13:03:57
つーかそのページに書いてあるじゃないか
0287デフォルトの名無しさん2006/05/27(土) 13:11:18
いや、その元々のウィンドウプロシージャの定義はできないのかな?と思って。ダイアログボックスみたいに。

なんで、わざわざ別のウィンドウプロシージャを定義して入れ替えたりしてるんだろう、と思いまして、、
0288デフォルトの名無しさん2006/05/27(土) 13:20:52
>>287
元をどうにかすることができないから、サブクラス化で後付するんだ。
0289デフォルトの名無しさん2006/05/27(土) 13:28:36
DefaultWindowProc をただのおまじないだと思ってませんか?
0290デフォルトの名無しさん2006/05/27(土) 13:31:02
おぉ、、そういえば、、、そういう事だったのか、、、、すっきりしたよ
0291デフォルトの名無しさん2006/05/27(土) 19:36:36
リストビューにてLVM_GETITEMTEXTを使ってテキストを取得しようと思っています。

それで受け取るbufサイズを出来るだけで抑えたいのですが
調べた限りGetWindowTextLengthと同等の動きをするメッセージが見当たりません。
これはもしかして最大サイズのbufを用意するしかないのでしょうか?
0292デフォルトの名無しさん2006/05/27(土) 21:17:23
構造体にサイズがあったはず
0293デフォルトの名無しさん2006/05/27(土) 21:53:05
LVITEM.cchTextMax は渡すバッファのサイズだぞ?
02942912006/05/27(土) 22:24:55
ちょっと確認させてください。
LVM_GETITEMTEXTのマクロ、ListView_GetItemTextは
void ListView_GetItemText(
HWND hwnd, //リストビューのウィンドウハンドル
int iItem, //行
int iSubItem, //列
LPTSTR pszText, //バッファのアドレス
int cchTextMax //バッファのサイズ
);
ですよね。
つまりpszTextに指定するバッファを
自分で用意しなくてはいけない。
cchTextMaxの文字数も自分で指定しなくてはいけない。
ということではないのでしょうか?
ですので前もってバッファを用意するためには文字数を取得しなくてはいけないですよね?

どっかまちがってるのかな・・・
0295デフォルトの名無しさん2006/05/27(土) 22:34:01
>>294
pszTextが指すバッファをオーバーして書き込まないように最大文字数を指定してね、ということ。
入りきらない場合は切り詰められる。

文字数を取得する方法は無い(と思う)ので、十分な大きさのバッファを用意するか
全部取得できるまでバッファを拡張しつつループするようにする。
MFCやWTLでは後者の方法を採っている。
02962912006/05/27(土) 22:34:31
cchTextMaxに2を指定したら1文字+\0がpszTextに入りますよね?
ということは十分なバッファとサイズを指定しなくてはいけない!
そういうことだと思ったのですが・・・
0297デフォルトの名無しさん2006/05/27(土) 22:38:56
バッファが足りてなけりゃ切り捨て。ほとんどのWin32APIはそうなってるはず
その為のバッファ長なんだから。
0298デフォルトの名無しさん2006/05/27(土) 22:44:37
>全部取得できるまでバッファを拡張しつつループするようにする。
ということは下記のような同じ処理を何回もするということですよね?
1.GlobalAllocで領域確保
↓
2.LVM_GETITEMTEXTで文字列取得
↓
3.領域が足りなかったら領域を開放をして1に戻ってやり直し
↓
4.取得した文字列をどっかに表示して領域の開放
という処理をするのですよね?

そういうことをしたら遅くなりませんかね?

つまりこういうことですか?
最初にこれぐらいあったら充分だろと思える領域を確保!
それから1をする・・・のかな?
0299デフォルトの名無しさん2006/05/27(土) 22:47:35
LVM_GETITEMTEXTの返り血が文字数返さなかったっけ?
0300デフォルトの名無しさん2006/05/27(土) 22:50:09
>>299
>it returns the number of characters in the pszText member of the LVITEM structure.
俺は英語苦手なんで合ってるか分からないが、あくまで取得できた文字数を返すと書かれてるように思える
0301デフォルトの名無しさん2006/05/27(土) 22:52:36
>>298
GlobalAllocを使う理由がわからんが、そういうこと。
文字列長によるが、バッファ長を2倍2倍していけばそんなに回数かからないと思う。
0302デフォルトの名無しさん2006/05/27(土) 22:53:12
OCX内の関数Aから、DLL内の関数Bを呼び出し、その関数BからDLL内の関数Cを呼び出すと、
OCXの登録ができなくなりますが、

それはなぜでしょうか?

OCX
void FuncA()
{
FuncB();
}

DLL
void FuncB()
{
FuncC();
}

DLL
void FuncC()
{

}
0303デフォルトの名無しさん2006/05/27(土) 23:06:19
>>301
WINAPIって領域を確保するのにmallocではなく、
GlobalAllocを使わないといけないのではないの?

それとC++ではないのでnewを使えないからというつもりだったのですが・・・
もしかしてまたなんか間違えたかなかな?
0304デフォルトの名無しさん2006/05/27(土) 23:19:26
>>303
今はGlobalAlloc/LocalAllocよりもHeapAllocのほうが推奨されている。
また、mallocやnewだって使いたければ好きに使ってよい。
0305デフォルトの名無しさん2006/05/27(土) 23:21:03
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/globalalloc.asp
>The global functions are slower than other memory management functions and do not provide as many features.
>Therefore, new applications should use the heap functions.
>However, the global functions are still used with DDE, the clipboard functions, and OLE data objects.
0306デフォルトの名無しさん2006/05/27(土) 23:30:26
それくらい日本語で読ませてやってもいいだろうに。
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_globalalloc.htm
> 注意 グローバル関数は他のメモリ管理関数より低速で、提供する機能も多くありません。
> そのため、新しいアプリケーションは「heap functions」(ヒープ関数)を使うべきです。
> しかし、DDE 関数とクリップボード関数では、依然としてグローバル関数が使われています。
0307デフォルトの名無しさん2006/05/27(土) 23:44:53
日本語版のMSDN Libraryは余計な文章付け加えてたり
逆に重要なのを消しちゃったりするから困る

まぁその部分については問題ないが
0308デフォルトの名無しさん2006/05/27(土) 23:45:56
英語が多少読めるならこれくらいどうってことないだろうし
読めなないならこれを機会に英語を勉強してもらおうと思った。
日本語版MSDNは不完全で訳がイマイチだし。
0309デフォルトの名無しさん2006/05/27(土) 23:53:48
あぁ、そういうことか〜
>>305の文章読んだことありました!
翻訳サイトでちょっと読んだだけだったので
「依然としてグローバル関数・・・」のところを見て
まぁいいかぐらいにしか思ってませんでした。
DDE 関数とクリップボード関数ではだったのですか・・・
0310デフォルトの名無しさん 2006/05/28(日) 02:19:00
すいません、くずたれな質問ですが教えてください。
ダイアログを表示さし、入力終えてOK押すとダイアログは消え
別に用意しておいたウィンドウにスイッチしてそのウィンドウに
結果を表示させたいのですが
まず、最初にウィンドウクラスでバックグラウンドをNULLで塗って
その登録したやつを、クリエイトウィンドウでつくってその真上に
ダイアログを表示させて......
この最初の時点でつまづいてます。
ふつうにウィンドウのメニューからダイアログを表示させる事は
できるのですが.....
オーナーウィンドウがクリエイトをメッセージした時
リソースからダイアログのハンドルを作って
ShowWindowして、描画したいオーナーウィンドウを
ダイアログがデストロイした時にオーナーをShowWindow
すれば良いのか、もうわかんなくなってしまって。
くずたれで、質問内容も中途半端なのは承知してます。
ただ、何かヒントを頂けないでしょうか。お願いします。
0311デフォルトの名無しさん2006/05/28(日) 02:42:46
>ウィンドウにスイッチして
>クリエイトをメッセージした

意味不明
0312デフォルトの名無しさん2006/05/28(日) 04:01:32
わらた
0313デフォルトの名無しさん2006/05/28(日) 09:57:24
>>310
�@.OK押したら消えるダイアログを作成しる。
�A.ウィンドウの上に、�@を表示し動作を確認する。
�B.ウィンドウの上に、�@を�A回連続で表示するように改造してみる。
作成途中に気付くと思うが。
0314sage2006/05/28(日) 13:02:36
くずたれって何だ
0315デフォルトの名無しさん2006/05/28(日) 13:21:07
お前にお似合いのスレのこと
0316デフォルトの名無しさん2006/05/28(日) 15:39:54
ttp://www.geocities.jp/i96815/windows/win11.html
にてHeapAllocの説明を読んだのですが、
GlobalAllocはHeapAlloc 系だと書いていました。

>>305の文章とこの文章ではなにかがおかしく感じるのですが
とくに「グローバル関数よりヒープ関数を使ったほうがいい」ってとこでが・・・
0317デフォルトの名無しさん 2006/05/28(日) 15:57:16
>>313
わかりました
とにかく一個ずつの処理を追って確認していきます。
一気に作ろうと思った、俺の頭がどうかしてました。
0318デフォルトの名無しさん2006/05/28(日) 16:36:36
>>316
Win32/64ではGlobalAllocは内部でHeapAllocを呼び出すという実装になっている。
だから直接HeapAlloc呼べばいいだろということ。
0319デフォルトの名無しさん2006/05/28(日) 17:12:11
そういう意味だったのですか〜。
つまり無駄な処理はなくそうってことですね!
0320デフォルトの名無しさん2006/05/28(日) 17:18:14
普通のapiならスタックでもいいわけだし
0321デフォルトの名無しさん2006/05/28(日) 19:13:14
GetProcAddressって2番目の引数が
LPCTSTRじゃなくてLPCSTRなんだが
GetProcAddress(hDLL,_T(
0322デフォルトの名無しさん2006/05/28(日) 19:14:28
すまん、切れた。

GetProcAddressって2番目の引数が
LPCTSTRじゃなくてLPCSTRなんだが
GetProcAddress(hDLL,_T("HogeHoge"));
じゃなくて
GetProcAddress(hDLL,"HogeHoge");
で呼べってこと?
0323デフォルトの名無しさん2006/05/28(日) 19:39:32
英数字のみでいいからそうなんだろう。
0324デフォルトの名無しさん2006/05/28(日) 19:58:13
なのにWindows CEではLPCWSTRという罠
03253222006/05/28(日) 20:04:39
LPCWSTR版のGetProcAddressを呼ぶ方法はありませんか
0326デフォルトの名無しさん2006/05/28(日) 20:13:24
WinCEに乗り換える。
0327デフォルトの名無しさん2006/05/28(日) 20:20:49
>>325
W版自体が無いから、自分で文字コード変換する。
03283222006/05/28(日) 20:24:13
おk。
がんばる。
0329デフォルトの名無しさん2006/05/28(日) 22:17:23
「関数の引数すべてLPCTSTRに統一してくれたらいいのになんでしないのかな?」
とか考えてる自分は間違っているのでしょうか?
0330デフォルトの名無しさん2006/05/28(日) 22:27:19
むしろME以前など切り捨ててUNICODEだけにすればいい
0331デフォルトの名無しさん2006/05/28(日) 22:43:59
実行時ならまだしもコンパイル時に切り替えて対応じゃなぁ

結局9x系とNT系でバイナリ2つ用意しないといけないのが面倒
■ このスレッドは過去ログ倉庫に格納されています