Visual Studio 2022 Part3

レス数が950を超えています。1000を超えると書き込みができなくなります。
945デフォルトの名無しさん (アウアウウー Sa85-H7iN)
垢版 |
2025/11/18(火) 23:47:50.67ID:+AochNn2a
間違えた2022スレだった2026行ってくる
2025/11/19(水) 00:49:00.59ID:R5nvtzxr0
>>944
Rusutcのコンパイラーはwindows 環境だとリンカーだけしかvisual studio に依存しないよ
リンカーはどれ使うかもコンフィグでいじれるし、とりあえず好きにしたらええ
llvmとかmsvcとかどれでコンパイルしたからってたいして変わらん
947デフォルトの名無しさん (ワッチョイ fe2a-GKbP)
垢版 |
2025/11/20(木) 23:30:56.41ID:lYGH520W0
17.14.21来てたけどバグフィックばっかりだな
2025/11/21(金) 08:51:31.68ID:a5a6CuoN0
まぁ新バージョン出た後だし
2025/11/21(金) 20:13:06.78ID:QnmGeYD4p
つか、今後2022はBUG FIXしか無いだろ
2025/11/21(金) 20:15:02.64ID:EbjQ7dVnM
今回のバグフィクスのせいか何故かwindowがちらつくようになった
951デフォルトの名無しさん (ワッチョイ 4761-j3nM)
垢版 |
2025/11/26(水) 21:36:54.35ID:ZPc/Zrgt0
むかーしVC++6.0を使ってて久しぶりにVS2022をMFCなしで使っている。
ファイルをダイアログからオープンしようとして、CFileDialogみたいなものを使おうとして、GetOpenFileName を見つけて使おうとしたんだが、windows.hをインクルードしてもそんなのないと叱られる。
GetOpenFileNameはもうなくなったの?どしたらいいですか
952デフォルトの名無しさん (ワッチョイ 674f-f/ND)
垢版 |
2025/11/27(木) 00:45:14.32ID:SOU+9FvP0
ChatGPTにそのままコピペすると答えが出てくる
2025/11/27(木) 06:15:50.08ID:xvpFNUUm0
commdlg.hつことけ
2025/11/27(木) 08:01:18.24ID:UEijD4WZ0
>>951
framework.hのdefine WIN32_LEAN_AND_MEANを消すか、直接commdlg.hをincludeしたらいい
今、windows.hの中でWIN32_LEAN_AND_MEANが定義済みだと除外される記述になってるから。
955デフォルトの名無しさん (ワッチョイ 47e6-j3nM)
垢版 |
2025/11/27(木) 09:49:11.37ID:yTPYpgBk0
commdlg.h 入れたら出来ました。でもなんでなくなったの?
てか、今ではGetOpenFileNameは使わずに他の方法でやってるのかな?
今デフォルトでは何を使ってるの?
2025/11/27(木) 13:46:38.57ID:I+Uuo5vt0
アイちゃんあてにならないな
> AI による概要
GetOpenFileName関数は廃止されていませんが、Windows Vista以降、新しいアプリケーションでは
**Common Item Dialog API の使用が推奨されています**。
WIN32_LEAN_AND_MEAN マクロは、コンパイル時間を短縮し、依存関係を減らすために、
windows.h に含まれる一部のヘッダーファイルやAPI定義を省略するためのものですが、
GetOpenFileName が定義されている commdlg.h は通常含まれるため、
このマクロによって機能が利用できなくなることはありません。
957デフォルトの名無しさん (ワッチョイ 47e6-j3nM)
垢版 |
2025/11/27(木) 14:14:22.36ID:yTPYpgBk0
Common Item Dialog APIとはなんぞや、調べてみます。ありがと
それと今まで3時間くらいぐだぐだやって発見したバグ??がありました
ウインドウの上に表示されるタイトルですが、SetWindowTextでいくらやっても最初の1文字だけしか表示されないのです
でわかったことは、Projectの一番下のPropertiesの中でCharacterSetをUnicodeからMultibyteにしたらそうなりました
Unicodeのままだと問題ありません。Multibyteにすると、1文字だけしか表示されません
これって報告されていると思うのですが改善策ってありますか
ググってSetWindowTextはSetWindowTextAとSetWindowTextWを切り替えてくれるってのは見つけたのですが、機能してないのかな
2025/11/27(木) 22:31:10.16ID:25Wz9US+0
文字列を_T()で囲え
959デフォルトの名無しさん (アウアウウー Sa0b-WraW)
垢版 |
2025/11/28(金) 04:21:36.33ID:YehK5uv+a
最初の1文字ωωω
L"hoge"と"hoge"の違いね
SetWindowTextWとSetWindowTextAのどっちが使われてるのか意識するべきだね
自分でMultibyteに切り替えてSetWindowTextA使ってるのにL"hoge"を渡した状態になってるんだろう
#define _UNICODE を自分で描いてても環境変わるしな
960デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 09:14:28.88ID:AdDA4gRo0
_T()でくくるのは試してみましたが、ダメでした
SetWindowTextA(hWnd, "ABCDE");としてもダメです
Propertiesの中でCharacterSetをMultibyteにしたので、
SetWindowTextW(hWnd, _T("ABCDE"));はエラーを出します
SetWindowTextA(hWnd, _T("ABCDE"));もエラーを出します
そもそも書いたようにSetWindowTextは自動で、SetWindowTextAにしてくれています
961デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 09:16:31.45ID:AdDA4gRo0
間違えた
SetWindowTextA(hWnd, _T("ABCDE"));もエラーを出します
はエラーではなく、やはり1文字だけしか出しません
2025/11/28(金) 09:19:00.36ID:SsJh5WIk0
そら途中が00になってるから\0判定になって文字終わるわ
2025/11/28(金) 09:20:00.89ID:M7Ad/nI+0
なぜC++関係のスレでやらずにIDEスレでやるんだろう?
2025/11/28(金) 10:26:36.94ID:uGW95kQpa
プロジェクトをマルチバイトにしてるけど、どこかにW系の変数/関数が残ってるんだろうなぁ

テンプレートの「Windowsデスクトップアプリケーション C++」でプロパティだけマルチバイトに変えてもビルドは成功するけどそうなる
(ソースに~Wってのが結構残ってる)
2025/11/28(金) 10:27:10.95ID:3LGCDcxB0
まぁいい加減C++スレかWin32APIスレ行け
966デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 10:44:35.01ID:AdDA4gRo0
以前はVC+6.0でやっていて問題なかったが最近VS2022に変えた。でいろいろ問題も出てきたし新たなtipsもあるからここに来たのです
なのでC++やWin32の問題というよりVS2022の問題
2025/11/28(金) 11:18:38.82ID:edlbl/Jid
環境は2022固定と言うことで
再現する必要最小限のソースを曝そう
出来ればビルドコンパイルリンク関連情報も
968デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 12:09:55.78ID:AdDA4gRo0
>>963
DEBUGモードで問題なくコンパイル出来ていたプロジェクトをRELEASEモードでコンパイルしたらエラーが山ほどでてきた
例えば、SetDlgItemTextはSetDlgItemTextAではなくSetDlgItemTextWになってるよ
なんだかなあ
よくこんなのでみな使っていたね
VC++6.0では全く問題なく動いていたのにねえ
969デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 12:10:53.67ID:AdDA4gRo0
間違えた >>964
2025/11/28(金) 12:13:28.92ID:x4NiH7NXM
MSのやる気がないしなるべくMultibyteは使わない方が良い
Multubyte限定のライブラリのバグを何年も放置した前科有り
2025/11/28(金) 12:15:32.27ID:x4NiH7NXM
>>968
それは設定が悪いだけな気がする
972デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 12:20:54.49ID:AdDA4gRo0
>>971
DEBUGモードで問題なくコンパイル出来ていたものをRELEASEモードに変えたとき、どこかほかの設定も変える必要があるの?
VC++60ではそんなのなかったが
973デフォルトの名無しさん (ワッチョイ a75b-dXd3)
垢版 |
2025/11/28(金) 12:21:22.81ID:5vy0hP2H0
>>968
プロジェクトのプロパティでビルド環境をdebugとreleaseでチェックだよ
974デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 12:27:48.91ID:AdDA4gRo0
>>973
わかった。RELEASEモードではUNICODEのままになってたよ。DEBUGモードとRELEASEモードとそれぞれ別々に設定しないといけないんだねえ
ありがと
975デフォルトの名無しさん (ワッチョイ a75b-dXd3)
垢版 |
2025/11/28(金) 12:34:27.76ID:5vy0hP2H0
>>974
そんなところで躓いてるとまだまだ先は色々あるよ
まぁがんばれ
レスを投稿する

レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況