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


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

Win32API質問箱 Build86



1 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 15:23:00 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

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

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

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build85
pc12.2ch.net/test/read.cgi/tech/1262430441/

236 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:17:54 ]
printfだって英語になってないがな
もしかして「適切な訳語」のことを言いたかったのか

237 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:29:02 ]
>>225
マルチすんな

238 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:29:17 ]
わかってるんなら、わざわざ聞くなよ。

239 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:36:08 ]
開き直ってその態度。笑っちゃうね。笑わないけど。

240 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:37:46 ]
>>225>>232は同じ人間のような気がする

241 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:38:10 ]
何言ってんだ。

242 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:41:43 ]
>>241

243 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:44:32 ]
条件反射的に一言多いというかなんとうか
そういう人間がそうそう近い時間に複数来るってのは無いしな

244 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:47:08 ]
>>242
241は239当てな。



245 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:48:50 ]
何言ってんの

246 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:51:26 ]
条件反射的に一言多いというかなんというか
そういう人間がそうそう近い時に複数来るってのは無いしな

247 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:52:09 ]
>>245
いや、「開き直って」とか言われたから、何考えてるんだろうと思って、241のレスしただけのこと。

248 名前:デフォルトの名無しさん [2010/02/20(土) 18:53:22 ]
ではやはり上げておくべきですね。

249 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 18:56:45 ]
いいからAPI出せや

250 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:06:38 ]
APIを出す話だったのか

251 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:11:07 ]
わろた >>249は天然


252 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:19:06 ]
ふぁびょおおおおってんなよ

253 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:21:56 ]
>>252
API

254 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 19:49:39 ]
>>253
API



255 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:02:23 ]
>>254
あぴ

256 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:16:19 ]
>>255
AIP

257 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:41:53 ]
A・P・I!A・P・I!

258 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:42:36 ]
次世代型匂い付きAPI

259 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 20:43:14 ]
>>249
そういうのはID出る板でスレ立ててやれ
ここじゃ一生apiなんて出ないぞ

260 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 22:01:04 ]
↑ちなみにこれは「IDに〜〜を出す」系のスレに掛けている

261 名前:デフォルトの名無しさん [2010/02/21(日) 05:28:41 ]
質問です。

LPCWSTR型の文字列を返却する関数を、
TextOut関数で画面に表示すると、文字化けしてしまいます。

問題となっている関数の中身をコピーして、

TextOut関数の存在する関数の中にペーストし、

返却する変数をそのまま表示するようにした場合は、正しく表示されます。

色々試行錯誤しましたが、見当が付かないので教えていただけるとありがたいです。


---参考 問題の関数---

LPCWSTR get_chart_size(void){
  char dataBuff[] = "alphabet0123カタカナひらがな漢字";
  wchar_t pwsz[sizeof(dataBuff)*2];

  std::locale::global(std::locale("japanese"));

  MultiByteToWideChar(CP_ACP, 0, dataBuff, strlen(dataBuff)+1, pwsz, sizeof(pwsz));

  LPCWSTR Data = pwsz;

  return Data;
}

262 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:33:41 ]
関数出たら解放されてしまってるんだろう
malloc 汁

263 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:34:14 ]
char dataBuff
これはマルチバイト

wchar_t pwsz
これはワイド文字

文字コードが違う

MultiByteToWideChar
これはマルチバイトからワイド文字に変換する関数?

264 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:36:00 ]
>>261
pwszは非静的な局所変数なので、returnした時点で無効になる。



265 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:37:42 ]
呼ぶ方
  wchar_t pwsz[sizeof(dataBuff)*2];
  pwsz = get_chart_size(pwsz, sizeof(pwsz));
  TextOut(hogehoge);

呼ばれる方
LPCWSTR get_chart_size(wchar_t *pwsz, size_t size){
  char dataBuff[] = "alphabet0123カタカナひらがな漢字";
  std::locale::global(std::locale("japanese"));
  MultiByteToWideChar(CP_ACP, 0, dataBuff, strlen(dataBuff)+1, pwsz, size);
  return (LPCWSTR)pwsz;
}

266 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 05:57:19 ]
というか、char、wchar、TCHARはちゃんと区別しようね。みんな。

267 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 08:23:56 ]
       /|
       |/__
       ヽ| l l│<ハーイ
       ┷┷┷

268 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 09:05:42 ]
間違えた、wchar_tだった

269 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 12:42:28 ]
>>261
スレ違い。C言語質問スレに池

270 名前:デフォルトの名無しさん [2010/02/21(日) 13:01:11 ]
以下のような例で、vdCreateToolBar(VOID) と hdCreateToolBar(HWND hwndParent) とで
関数の中身は全く同一で、親ウィンドウのハンドルにグローバル変数を使うのと、関数の
引数を使うのとでは、作成されるツールバーの表示が (1) と (2) で異なるのですが、
なぜでしょうか???
HWND g_hMain;
WinMain() {
  HWND hMain;
  hMain = CreateWindowEX();
  g_hMain = hMain;
  vdCreateToolBar();-------------------(1)
  hdCreateToolBar(hMain);--------------(2)
  …
}
vdCreateToolBar(VOID) {
  g_hMain; グローバル変数でツールバー作成 (1)
}
hdCreateToolBar(HWND hwndParent) {
  hwndParent; 引数を使ってツールバー作成 (2)
}

271 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 13:25:42 ]
ちなみに、vdCreateToolBar(VOID) と hdCreateToolBar(HWND hwndParent) は,
WinMain() とは別の C ファイルです。

vdCreateToolBar(VOID) の g_hMain は extern で取得してます。

272 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 13:26:51 ]
vdCreateToolBarとhdCreateToolBarの内容が違うから

273 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 13:30:43 ]
デバッガで動きを比べてみな。

274 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 14:30:18 ]
キャストしたらどうなりますか?APIを教えてくだしあい



275 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:30:42 ]
extern "C" {} の内か外かで、結果が違ってくるとかありますか?

276 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:33:16 ]
呼び出し規約の不整合があると、どうなるんでしょう??

277 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:57:28 ]
>>274
キャスト用のAPIなんてない

>>275
ある可能性は否定できないんじゃない?

>>276
最悪の場合、期待どおりの動作にならない

278 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:01:18 ]
なんでキャストがでてくるんだ
キャストなんて
「俺(プログラム書いてる人)は型が違うのわかってて書いてる
からお前(コンパイラ)は気にしなくていいよ。」と教えてるだけなのに
(厳密にはいろいろあるようだが

279 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:46:44 ]
たまに>>278みたいな対して上手くもない例え話を載せてる入門書ってあるよね!(* ゜∀゜)ムッハー!!

280 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:51:06 ]
>>279
事実そうじゃん
関数の引数でconst char* hogeとかやるけどあれだって
書き換えするようなコードを書かないようにする安全策なだけだし
アセンブラレベルで考えればconst とか知ったことじゃねえって
感じだしなあ

281 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:55:52 ]
「俺」とか「お前」にご丁寧に括弧書きで想定する対象を書いてるのがダサいねぇ
人間が読むのに、わざわざキャストしてどうすんの

282 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:27:59 ]
キャストするAPIがないとか(笑)

283 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:29:25 ]
>>282
あるなら紹介してあげなよ。

284 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:40:11 ]
>>281
俺は逆で型変換でキャストなしソースのほうが読みにくくて初心者乙だなぁ
コンパイラの警告レベル上げたとたん警告が何百も出てくるとかだせぇってなる



285 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:44:22 ]
何言ってんだお前

286 名前:270 mailto:sage [2010/02/21(日) 17:44:25 ]
270 ですが、xxCreateToolBar() で関数が引数をとる形にすると、グローバル変数でも
引数渡しでも、ツールバーの動作が”不安定?”になります。

原因のヒントだけでも、ないでしょうか…、、、、

287 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:45:36 ]
知るかハゲ
ソースもなんも出さずに。

288 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:48:23 ]
すべてAPIが悪い

289 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:56:09 ]
APIが何の略かも知らないくせに

290 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:57:15 ]
あぴのせいにするな!大抵手落ちは自分にあるんだ!

291 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:00:02 ]
そうですねWindowsに欠陥があるわけないですね^^

292 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:04:48 ]
こういうキチガイがマジ多くて困る。

293 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:08:15 ]
>>270>>271の情報だけで原因を特定できるエスパーなんていないだろ

294 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:10:34 ]
こういうキチガイがマジ多くて困る。



295 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:14:41 ]
  ▄▄      ▄▄▄     █  ▄█
▄██▄▄   ▄▄▄▄▄  ▀▀▀▀▀▀█▄▄▄▄▄  █
▄█▄▄▄▄  ▀   █   ▀▀▀▀▀▀  █    █
 █▄         █   ▀▀▀▀ ▀▀▀█▀▀▀ █
  █▄  █    ▄█   █▀▀█    █    █▄
   ▀▀▀   ▀▀▀    ▀▀▀▀    ▀     ▀▀
    ▄▄▄▄▄▄      ▄▄▄
 ▀▀▀▀ █▀▀ ▀▀▀▀▀█▀    █
     █▀        █    ▀▀█▀      ▀▄
     █         █▀▀▀   █   █▄   ▀
     █▄▄▄      █  ▄▄▄      ▀▀
               ▀    ▀▀▀


296 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:17:06 ]
vbとhdが何の意味なのかわかればエスパーが出てきてくれるかもしれん、ちょっと気になった

297 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:17:56 ]
Visual Basic

298 名前:デフォルトの名無しさん [2010/02/21(日) 18:23:23 ]
あげとくよー

299 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:31:39 ]
あげた途端レスストップとかw


300 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:40:04 ]
一通り語り終わった後に上げるのが悪い

301 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 09:01:37 ]
VerticalとHorizontalだろ……常考

302 名前:デフォルトの名無しさん [2010/02/22(月) 09:48:55 ]
p

303 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 01:52:16 ]
GDI+でアルファ値を含むbmpファイルをロードして描画すると
透明になるべき部分が真っ黒になってしまいます。
Image::GetPixelFormat()でARGBではなくRGB形式となってました。

LoadImageで読み込んだ後、GetObjectで生データを取り出して
ARGB形式での生成も試したのですが
生成はできたもの描画ができない状態です。

LoadImageとAlphaBlendではうまくできたのですが‥‥
GDI+でアルファ値のbmpは駄目なのでしょうか?

304 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 01:55:02 ]
bmpの32bitはそもそもリザーブになってるはず
本気でアルファを考えるならpngを読ませないとだめなんじゃないの?



305 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 01:56:27 ]
>bmpの32bitはそもそもリザーブになってるはず
bmpの32bitのアルファにあたる部分はそもそもリザーブになってるはず

306 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 02:54:46 ]
>>303
そもそもARGBなフォーマットがBITMAP形式では定義されてない。

307 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 03:22:16 ]
ビットマップにアルファは仕様外って事でしょうか。
ヘッダをBITMAPV4HEADERにしてもGDI+では駄目でした。
LoadImage/AlphaBlendを使うか、GDI+/pngで行く事にします。

308 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 04:19:49 ]
BITMAPがアルファをサポートしたとか聞いたことないしなあ
vistaとか7のペイントは知らんけど、xpのペイントはアルファをきっちり潰してくれるしな・・・
そういう状況を見るとサポートしてないと考えるしかないだろ
それにpngがあるんだしわざわざbmpがサポートする必要もないしな

309 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 08:41:52 ]
一般的な画像で透明度を持ってるのってgifかpngだけだろ。
ビットマップの場合は「この色だけ描画しない」って指定してやって、
画像側ではなくアプリケーション側で透明度を調節するタイプじゃね?

310 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 10:15:51 ]
>>309
カラーキーは別に後でも指定できるはずだよ
一時期のゲームなのどでは原色の緑をカラーキーに使ったりしてたはず

311 名前:デフォルトの名無しさん [2010/02/23(火) 11:23:12 ]
フォームを最善面に表示するAPIを教えてください

312 名前:デフォルトの名無しさん [2010/02/23(火) 11:36:55 ]
もういいです役に立たないクズ共だなあ

313 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 11:38:46 ]
フォームを最善面に表示するAPIを教えてくださいを解決するAPI

つ ぐぐれカス

314 名前:デフォルトの名無しさん [2010/02/23(火) 12:34:41 ]
ここって>>313みたいなゴミしかいないのかな?



315 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 13:11:53 ]
>>314
つ 鏡

316 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 13:29:14 ]
レス乞食乙

317 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 19:24:13 ]
GDIにおけるビットマップの扱いがWin3.1の頃と変わってないんですね‥‥
ペイントが出力するファイルもWin3.1のビットマップ形式でした。

BITMAPV4HEADER.bV4AlphaMask
BITMAPV5HEADER.bV5AlphaMask

Win9xの時からこういうのがあったもんで、てっきりOKかと思ってました。
腑に落ちなかったので、あれからいろいろ試していましたが
自前でbmpファイルを読み込み、生データをARGB形式として
直接GDI+に食わす方法が一番でした。

318 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 19:40:36 ]
>>317
別にそれでいいというのなら止めはしないけど、
正しい方法が分かってるなら正しい方法を採った方がいいよ。

BITMAPがARGBを正式にサポートしてないことには変わりがないので、
TIFFやPNGなど正式にサポートしている画像形式を使うのがこの場合は正しい。

最初にも言ったけど、動けばいい、という態度なら止めはしない。

319 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 19:50:10 ]
え、MSDNにもしっかり載ってるのに正式じゃないの?

ttp://msdn.microsoft.com/en-us/library/dd183380(VS.85).aspx
ttp://msdn.microsoft.com/en-us/library/dd183381(VS.85).aspx

Photoshopの起動ロゴのような変形レイヤードウィンドウも
アルファチャンネルのあるビットマップを使うみたいだし‥‥
ttp://www.yoshibaworks.com/Ayacy/INASOFT/wpt/ulw.html

320 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 19:57:35 ]
>>317
そもそもビットマップ形式自体が変化してないからでは?
そこが変わっちゃうと互換性問題が強く出る気がする。

それが指してるアルファマスクって、二値の情報で黒いところだけマスクする奴じゃね?

321 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 22:55:36 ]
>>319
>The high byte in each DWORD is not used.

これどういう意味

322 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 23:08:07 ]
>>319
32bitの色情報を格納する構造体RGBQUADを調べてみるといいよ
ヘッダにアルファの文字があっても多分古い規格のカラーキーについてだと思うよ
pngのような最大で1バイトまるまるアルファとかはサポートしてないはず

323 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 23:14:23 ]
あと>>317もpng使えっていわれてるのになんで自前でbmp読み込むことにこだわる
pngだって所定のデコード処理を施せばメモリ上に置かれてるのはbmpと同等だよ

324 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 23:23:24 ]
>>319
後半に関してはDIBにはAlphaがあるがBITMAPにはAlphaが無いってだけ
GDI+の内部では元が何であろうがDIBで扱ってるからAlphaがないと困る

msdn.microsoft.com/en-us/library/ms534412%28VS.85%29.aspx



325 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 23:29:34 ]
1ピクセル64bitとか誰が要求してんだ

326 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 00:12:54 ]
別に叩かれてるわけでもないのに>>319がふるぼっこすぎる

327 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 00:19:46 ]
叩かれてないならいいじゃねえか

328 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 00:23:01 ]
>>325
なんか業界団体はRGBで96bit目指してるらしいけど…。

329 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 00:24:35 ]
そんな細かくグラデーションしてどうすんだよ

330 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 00:34:04 ]
普通ならいらないけど、B/Wな画像(レントゲンとかCTとか)では実質1/3になっちゃうんで、
そういう分野では必要なのかも。

331 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 00:48:45 ]
モノクロ環境は考えてなかったな
なるほどな

332 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 02:14:10 ]
>>284
キャストを全然つけなくてちょいちょい泣いてるのが初心者
泣きたくないのでキャストつけまくるのがトラウマを抱えた初心者
大人になれば必要なとこだけキャストをつけるようになるよ

333 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 06:43:30 ]
複数のダイアログを使いたいんだけど
1つのダイアログごとにプロシージャを別にすることは出来ないの?

334 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 08:53:47 ]
CreateDialog()の第四引数に個々のプロシージャ指定すれば出来るお

ttp://msdn.microsoft.com/ja-jp/library/cc410690.aspx



335 名前:デフォルトの名無しさん [2010/02/24(水) 10:19:03 ]
自分のPCに入ってるSNMPの指定オブジェクトIDに値を書くAPIを教えてください。。

336 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 11:02:01 ]
URLエンコード用のAPIってありますか?






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

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

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