Visual Studio 2022 Part3

レス数が950を超えています。1000を超えると書き込みができなくなります。
2023/07/09(日) 09:22:39.10ID:RX9cYl8RM
!extend:checked:vvvvv:1000:512
前スレ

Visual Studio 2022 Part2
https://mevius.5ch.net/test/read.cgi/tech/1657709270/

Visual Studio 2022 の新機能
https://docs.microsoft.com/ja-jp/visualstudio/ide/whats-new-visual-studio-2022?view=vs-2022

The Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/

リリースノート
https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes#
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
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
そんなところで躓いてるとまだまだ先は色々あるよ
まぁがんばれ
976デフォルトの名無しさん (ワッチョイ 7fdc-Gjxk)
垢版 |
2025/11/28(金) 13:25:45.99ID:I/1lWP7z0
まあ頑張るのはじゃんじゃん頑張ってくれていいんだけどこのスレでやらないでよ
AI相手にコーティング教えてもらえば?
977デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 13:45:10.81ID:AdDA4gRo0
SetWindowTextの問題はすぐに答えが出てくると思ったんだけどなあ
Multibyteでは1文字だけしか出てこないよ。わたしの質問はそもそもこれだけなんだけどね
2025/11/28(金) 14:26:12.41ID:g9K8s8X60
>>972
DEBUGとRELEASEで別々に設定があるとか昔からじゃがw

まぁ6.0はデフォがANSIだから意図的に変えようとしないとならんか
2025/11/28(金) 16:11:13.77ID:SsJh5WIk0
>>977
>>962が答えだから
2025/11/28(金) 16:14:12.20ID:PtF1oC/q0
>>977
ANSI関数にUnicode文字列渡したら1文字で切れるのは理解できるよね?
出来ないの?
981デフォルトの名無しさん (ワッチョイ 674f-f/ND)
垢版 |
2025/11/28(金) 16:23:46.74ID:lEyqtJjt0
プログラマに向いていないよ
転職しなさい
2025/11/28(金) 17:14:37.88ID:g9K8s8X60
>>968の最後の1行見ても自分が何も理解できてないだけなのに
まるで他人が無能のようにふるまうこの不思議ちゃんw
2025/11/28(金) 17:28:25.34ID:saUpZhFZ0
2026でC++のWindowsデスクトップウィザードで既定のテンプレートプロジェクト生成してやってみたが
プロジェクトのプロパティ含めて修正すべきとこ修正したら普通にABCDEになるよ

VSの問題だとかアレな事言ってるけど
結局自分がWin32APIの種類やコードマクロの中身を理解してないだけでしょ
2025/11/28(金) 17:32:13.60ID:saUpZhFZ0
本当に6.0でプログラムしてたのか?
テンプレートから生成されるコードを眺めれば、どこをどうすれば切り替え対応できるか
Win32API触ってれば当たり前の基礎知識部分しか関わってないんだけどなこれ
985デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 18:01:22.16ID:AdDA4gRo0
じゃあ、改めて教えてください
VS2022でMultibyteでSetWindowTextで正しくウインドウのタイトルを表示させるにはどうすればいいですか?
VC++6.0では
SetWindowText( hWnd, "ABCDE" );
で問題なく表示できました。
2025/11/28(金) 18:15:41.11ID:saUpZhFZ0
2022でも2026でも同じ事だが、>>983で言ってるように
プロジェクトのプロパティの文字セットをUnicodeからマルチバイトに変更したうえで
コード内の関連個所すべて適切に修正しろ
そしたらSetWindowText(hWnd, "ABCDE")で動く
2025/11/28(金) 18:47:27.73ID:g9K8s8X60
VC++6.0では動いたww
相変わらず何も理解できてないなw
VC++6.0でも同じ状態のコード作れば同じ結果になるわ
2025/11/28(金) 19:10:40.47ID:SsJh5WIk0
>>985
新規作成したプロジェクトで
SetWindowText( hWnd, "ABCDE" );
これはどうなんの?
989デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 19:26:12.17ID:AdDA4gRo0
>>988
新規作成したプロジェクトでデフォルトはUNICODEですが、プロジェクトのプロパティのCharacterSetをMultibyteに変えて、それだけで実行すると、
SetWindowText( hWnd, "ABCDE" );
では、ウインドウのタイトルにAだけしか表示されませんよ
2025/11/28(金) 19:32:08.28ID:saUpZhFZ0
アホな噛みつきしてないで>>986の通りやれ
もし>>986が理解できない、もしくはできたけどそれでなんで動くようになるのか分からないなら
VSがどうたらカバチ垂れてないで勉強しなおせ
2025/11/28(金) 19:42:59.02ID:SsJh5WIk0
>>989
その時
SetWindowTextAか
SetWindowTextWか
どっちが呼ばれてんの?
992デフォルトの名無しさん (ワッチョイ 47b3-j3nM)
垢版 |
2025/11/28(金) 20:16:24.12ID:AdDA4gRo0
>>991
SetWindowTextA です
993デフォルトの名無しさん (ワッチョイ a758-dXd3)
垢版 |
2025/11/28(金) 23:11:41.13ID:1eY1wF5H0
''ABCDE"を"あいうえお" にしてみ
レスを投稿する

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

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