- Visual Studio 2015 Part3©2ch.net
220 :デフォルトの名無しさん[sage]:2015/10/22(木) 04:35:27.04 ID:rWP1FQIU - C++ の Win32 プロジェクトですけど、LoadImage 関数の第2引数でリソースIDを指定する時
VS2013 だと MAKEINTRESOURCE マクロを使わないとコンパイルエラーが発生してたのに VS2015 だと逆にこのマクロ使うと LPTSTR を WORD に切り詰めたと警告が出ます。 VS2015 では仕様が変わったのですか? MSDN 調べてもそれらしい項目が見つかりません。 何かわかる方おられますか?
|
- Visual Studio 2015 Part3©2ch.net
221 :デフォルトの名無しさん[sage]:2015/10/22(木) 04:41:20.09 ID:rWP1FQIU - >>220
誤 LPTSTR 正 LPWSTR
|
- Visual Studio 2015 Part3©2ch.net
223 :デフォルトの名無しさん[sage]:2015/10/22(木) 05:03:58.08 ID:rWP1FQIU - 自己解決しました。
VS2015ではリソースIDを定義している組み込みヘッダーの WinUser.h でリソースIDそのものが MAKEINTRESOURCE マクロ込みで定義されてた。 結果的にソースとヘッダーで2重にマクロを適用していることになってしまってる。 少しでもソースのコーディング量を減らしてあげようという改良なんだろうけど、ソースの互換性 という点では微妙な変更だなあ。
|
- Visual Studio 2015 Part3©2ch.net
238 :デフォルトの名無しさん[sage]:2015/10/22(木) 13:40:50.33 ID:rWP1FQIU - >>234
呼ばれた気がするのでレス アプリケーション定義だろうがシステム定義だろうがリソースID(数値)にはMAKEINTRESOURCEは必要 不要なのは直接 文字列 でリソースを指定する時だけ
|
- Visual Studio 2015 Part3©2ch.net
243 :デフォルトの名無しさん[sage]:2015/10/22(木) 13:56:03.91 ID:rWP1FQIU - >>239
リソーススクリプトファイル(.rc)にリソース名を直接記述するか、IDE上のリソースのプロパティでダブルクォーテションで囲って リソース名を記述すれば、MAKEINTRESOURCEマクロ使わなくても LPTSTR で直接リソースを指定できる。 リソースID(WORD)の場合はMAKEINTRESOURCE で LPTSTR に変換する必要がある。 https://msdn.microsoft.com/en-us/library/windows/desktop/ms648029(v=vs.85).aspx
|