Visual Studio 2019 Part5

■ このスレッドは過去ログ倉庫に格納されています
2020/08/18(火) 12:43:43.24ID:Kg5PamBJa
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

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

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

リリースノート
https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes#

過去スレ
Visual Studio 2019
https://mevius.5ch.net/test/read.cgi/tech/1548765663/
Visual Studio 2019 Part2
https://mevius.5ch.net/test/read.cgi/tech/1562077164/
Visual Studio 2019 Part3
https://mevius.5ch.net/test/read.cgi/tech/1569978087/

※前スレ
Visual Studio 2019 Part4
https://mevius.5ch.net/test/read.cgi/tech/1585715794/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/01/22(金) 06:50:13.37ID:vo2BGFnD0
>>655
エディタの波線だけでなくてヒント表示やエラー一覧の警告も表示されないの?
https://i.imgur.com/jcl1TQJ.png
658デフォルトの名無しさん (エムゾネ FF7f-rvE3)
垢版 |
2021/01/22(金) 12:33:40.93ID:pJ+Dy7HCF
>値入力したら使ってるんじゃね

1.宣言部分をコメントにしたら使ってたら警告出るだろ
2.全部constにしたら再代入してるかしてないかは判る
2021/01/22(金) 13:24:12.30ID:hRbCIOLy0
値に代入されてると警告出ないみたいです
2021/01/22(金) 13:25:29.51ID:hRbCIOLy0
後、それを回避しても取得した値をログ出力しているので本処理で使用しているかどうかはやはり人力になりそうです
2021/01/22(金) 13:37:44.73ID:vo2BGFnD0
ログ出力しているのであれば、その出力関数で変数の値を利用(参照)しているのでIntelliSenseは未使用の変数と判断できない
全く何処からも参照されない変数であれば警告表示される
2021/01/22(金) 13:51:56.55ID:EZ8YpMi2a
C++ならコンパイラの警告レベルを4にすれば、一度代入したけど参照してない変数は、コンパイル時の警告として一括で表示はできるね
2021/01/22(金) 22:35:37.27ID:WXxL8Q/50
そもそもそれ潰す工数に対するリターンがね
気持ち悪いのはわかるが
2021/01/23(土) 00:00:26.63ID:JcAhMBxy0
そもそも警告レベル最大にしとくのがデフォだと思ってた
2021/01/23(土) 09:06:21.36ID:LPDMRZtK0
定義しといて使ってないのはともかく
代入しといて使ってないのはポカミスの疑いがある
2021/01/23(土) 09:12:11.03ID:XHKedqhC0
いや、ファイルから値読んでるんだけど
その値を使用しなくなっちゃうときがあるのよ
2021/01/23(土) 09:37:11.09ID:QtjuJLmO0
>>653
自分でプラグイン作る
2021/01/23(土) 10:19:35.49ID:LPDMRZtK0
ファイルから読み取るのに代入すんのか?
2021/01/23(土) 10:25:49.95ID:XHKedqhC0
>>668
ファイルから取得したデータの塊からローカル変数に一旦移す必要があるのよ
まあ、これがすべての元凶なんだけど
2021/01/23(土) 10:29:34.51ID:XHKedqhC0
あ、わかった
ローカル変数に移すとき
Dictionary<int id,object value>に移せば未使用問題は解決するかな?
2021/01/23(土) 12:45:05.97ID:4VL29Q1J0
>>664
同意なんだけどマイクロソフトが提供しているヘッダーファイルで警告出るのはなんとかして欲しい
2021/01/23(土) 15:13:08.33ID:E2XTqnevd
>>665
いろんな仕組みを使ってると
代入したけど使わない
なんてザラにあるんだよね

コンパイラの警告は最低限にして
ちゃんとコードを確認するときは
ちゃんとした静的解析ツールを使う

使い捨てコードならとりあえず動けば良いし
2021/01/23(土) 16:31:30.66ID:LPDMRZtK0
>>672
上から目線したそうだが
厚みが全く感じられないな
どんな分野にいたって言うんだ?
2021/01/23(土) 17:15:18.87ID:5Na5U87Z0
#if とか #ifdef とかでコンパイル時に分けて
プログラミングしてたら気付いたら使ってないってのはあるな
2021/01/23(土) 17:36:27.92ID:QtjuJLmO0
条件でfileから読み取ったものを格納したいとき
if の中で新規に変数宣言しちゃうと
そこ抜けた後使えないから
最初に宣言しちゃうと条件に合わないときは unusedになっちゃうんじゃない

たぶん
2021/01/23(土) 18:21:42.54ID:4VL29Q1J0
>>672
どんな仕組みを使うとザラにあるって言う状況になるんだ?
2021/01/23(土) 18:25:40.71ID:4VL29Q1J0
>>675
int a = ...; // ファイルから読み出し
if(...){
… = a;
}
みたいなコードを言ってるのか?
この場合はunusedにならないよ
678デフォルトの名無しさん (ワッチョイ 5f43-XRRf)
垢版 |
2021/01/23(土) 20:39:15.41ID:f2Vc7d500
int len;

if ( os.lang = japan ) {
len = new String ( file.bytes, “iso2022jp” ).length();
)

上司「やっぱutf8でながさ気にしないやつな」

lenに代入をコメントアウト
とかでは?
2021/01/23(土) 21:01:22.83ID:4VL29Q1J0
>>678
ああすまん、そっちだったな
ただそれunusedじゃなくてuninitializedでしょ
680デフォルトの名無しさん (ワッチョイ 275f-rvE3)
垢版 |
2021/01/24(日) 11:20:00.29ID:wSlEv8S70
os.lang = japan
2021/01/26(火) 12:25:03.22ID:LbY2oecZ0
あのグチャグチャなwindows.hとようやくオサラバできる?
https://forest.watch.impress.co.jp/docs/news/1301910.html
2021/01/26(火) 12:50:09.76ID:p+srJuugp
年末リリースかよー
C#の最初からやってりゃよかったのに
2021/01/26(火) 14:15:10.33ID:wf18ET4H0
なんかwinformsのリソースエディタおかしくね?
編集時の画面と実行時の画面も違うし
なんかsizeプロパティに値を入れたときのリソースエディタの画面のサイズなんかチガクネ?
2021/01/26(火) 14:44:01.27ID:knzRnZbz0
ディスプレイの設定で表示スケールが100%になってないとか?
2021/01/26(火) 15:53:33.74ID:wf18ET4H0
>>684
100%でもなる
プロパティのスクロールバーも変な位置に出るし
2021/01/26(火) 16:03:45.15ID:vg4ieDj5d
スクショ貼ってみて
もしくは再現するプロジェクトどっかに上げて
2021/01/26(火) 16:05:54.55ID:wf18ET4H0
ユーザコントロールを新規で追加してSizeプロパティ変更すると100%起きるのに
みんなはそうならないのか?
2021/01/26(火) 16:16:40.84ID:rXsHTqKLd
高DPIかな?
2021/01/26(火) 16:23:51.44ID:wf18ET4H0
667,248

とか
690デフォルトの名無しさん (ワッチョイ 2790-8PYP)
垢版 |
2021/01/26(火) 22:40:57.98ID:64uDtU+H0
部分的な書き方になっちゃってすまない。。
ActiveXObject("Microsoft.XMLDOM") がedgeでは動作しないみたいだ。

ネットで調べると、以下のように書くと、
解決しそうなこと書いてあった。

これなら、IEもChromeもedge も動作するかな?
if(ActiveXObject) {
domObject = new ActiveXObject("Microsoft.XMLDOM");
} else {
domObject = document.implementation.createDocument(...);
}
691デフォルトの名無しさん (ワッチョイ 2790-8PYP)
垢版 |
2021/01/26(火) 22:42:34.78ID:64uDtU+H0
>>690

.Net の話。。
文章へたくそ、ゴメンなさい。。
2021/01/31(日) 14:55:03.21ID:QuI6Fit80
C#で作ったアプリケーションをビルドしました。

実行ファイルが作成されたbin>releaseのフォルダに、実行ファイルがあると正常に実行できるのですが、
他のフォルダにコピーすると実行できない(ダブルクリックしても反応しない)
状態です。

なぜなんでしょう?
2021/01/31(日) 15:53:02.38ID:2WBeknRq0
>>692
.dllとかもいるんとちゃうか?
2021/02/02(火) 00:37:25.08ID:eKjK+90p0
そんなときにILMerge
2021/02/02(火) 05:31:40.82ID:K9rz1pjI0
>>692
そういう動作をするように作った
管理者権限
セキュリティーソフト
その他なんか見落としてる
2021/02/02(火) 10:32:20.43ID:ecX0Yfuo0
>>692はマルチポストしててもう解決してる
2021/02/02(火) 10:56:56.59ID:n0oY7m3v0
>>696
安心した
2021/02/02(火) 20:02:51.13ID:Fo96HejD0
いい奴かよ
2021/02/03(水) 07:48:39.24ID:JpHt3wBCM
>>696
良かった良かった
2021/02/03(水) 19:39:24.98ID:FJQE1f2p0
MSVCに限った話もここで良いですか?Community 2019 Version 16.8.4を使用しています
https://i.imgur.com/qMgkY59.png

URLのスクリーンショットは新規コンソールアプリで上記インラインアセンブリだけを挿入し
cppソースからxorとincにブレークポイント、xorでブレーク&再開後・再びブレークした物です
しかし逆アセンブリを見るとcppソースと異なり、incではなく"Hallo World\n"まで進んでいます

どうもインラインアセンブリ内のラベルが原因のようで、同行にしてもセミコロンを入れても意味はなく
行単位のズレならまだしも、バイト単位でずれて居ると見えブレーク位置によって不正な命令に変化します
Releaseも同じ症状になるのでデバッグ形式は関係ないようですが、これは環境依存の問題でしょうか?

一応Developer Communityやgithub.com/Microsoft周りをinline assembler+label+breakpoint辺りで
探ってみましたが巧く見つけられず…Visual Studio 2019自体を入れ直してみても改善しませんでした
701デフォルトの名無しさん (ワッチョイ 797c-L6Wt)
垢版 |
2021/02/04(木) 11:57:03.48ID:4/57iig+0
label: nop 入れてみたら?
2021/02/05(金) 04:58:27.99ID:32PxEni70
>>701
nopを挿入しnopにブレーク設定すればincで停まりますが、incにブレーク設定するなら結果は同じですね
その分後ろに行くだけなので命令の頭にCCが書き込まれない場合も同様。むしろおま環なのかどうかです
2021/02/05(金) 07:30:37.56ID:XbPEadHi0
ブレークポイントはインラインでなくともずれる事がある
Releaseビルドのような最適化が行われたコードは当然としてDebugビルドでも

おまかんかどうかは後で試してみるよ

アセンブラを使いたい理由はわからんけど
32bitがそろそろオワコンだし
64bitだとインラインは使えないし
インラインじゃない普通のアセンブラを使ってみたら?
2021/02/05(金) 08:05:41.23ID:32PxEni70
>>703
最適化はともかく、ご指摘のずれるというのは設定しようとした行ではなく、実際に作用するコード行へ移されるという意味ではなくてですか?
アセンブリなら命令とネイティブコードは対ですし、ましてや命令の頭以外にSBPが挿入されて不正命令化するのは不具合にしか見えないけども…

インラインアセンブラの用途は主にレガシーアプリをラップする関数スタブです。前処理や__stdcall→__fastcallにして引数増やすとか
EBP経由で前フレームを参照する事もありますし、C/C++ではテイルコールに出来ないと大分増長なネイティブコードが出来上がるので
MASMの方が端々で堅牢だと思いますが、C/C++ソースと手軽に連携する分には…という感じです。bitの点は元アプリがx86しかありません
2021/02/05(金) 08:13:56.36ID:32PxEni70
誤字脱字失礼…「前処理→前後処理」、「増長→冗長」です
2021/02/05(金) 08:22:49.40ID:XbPEadHi0
バイト単位でずれて不正命令化?
まあそれはお気の毒で

Cのコード中にアセンブラで命令を追加して
いつでも正しく動作する
って方が無茶な要求かと思います

処理的にはラッパ関数を経由するのが普通だと思うけど
何でそんなトリッキーな方法を使おうとしたの?
2021/02/05(金) 08:42:05.86ID:32PxEni70
他者のバイナリかつ元の引数だけでは飛ばす関数への処理に足りず、ローカル変数を参照せざる得ない場合とかですかね
趣味レベルの話なので是非については…という所ですが、デバッグ情報かデバッガがおかしいのか記憶にない挙動ゆえに
フォーマッタもIntelliSenseも__asmブロックには関知しませんし、x64での廃止も悪い意味でレガシーとなりましたか
2021/02/05(金) 08:50:30.85ID:32PxEni70
ああ、もちろん実際の関数スタブには__declspec(naked)付けてますよ、完全マニュアルです
2021/02/05(金) 10:52:50.21ID:w+kp50Zw0
ちょっと調べてみたけど、
2019ではソースの行番号とアドレスの対応がおかしいデバッグ情報を出力しているみたい。
2015では正しくブレークポイントを設定できる。

デバッグ時のみ古いバージョンでコンパイルするか、
__asm内でのラベルが問題なので、__asmブロックをラベルの前後で分割して、ラベルを__asm外に移動させる
というくらいしか回避策は思いつきません。
2021/02/05(金) 12:13:00.10ID:Q0mSqgAC0
OSがWindows8以降で、シーケンシャルな処理なんて出来るの?
デバッグ環境なら、途中で止まるからシーケンシャル動作可能になるだろうけど。
2021/02/05(金) 20:37:13.40ID:32PxEni70
>>709
2015情報まで、有り難うございます。この再現性でPreview抜けてくるかと訝しんでいたのですが
まぁ設定やWindows SDKが影響する道理ないですか、凡そ検証機会も失われたという事でしょうか

__asmブロックの分割…ラベルだけのCコードなら出力変わらず、後続命令なしのアライメントは可能
__asm外ならラベルも大文字小文字を区別・インデントへ悪影響なし、回避策以上に良いかもです
712デフォルトの名無しさん (ワッチョイ bfda-g7o/)
垢版 |
2021/02/06(土) 16:14:53.40ID:xYsncZSh0
2年ぶりに無償の2019起動したらサインインできず電話番号を要求された
Win7ですが電話番号を入れたら使えるようになります?
使ってる人は新しいアカウントを取ってます?
Win7はもう無理?
オフラインで動かす方法はあります?
2021/02/06(土) 16:23:33.01ID:ROiZJzWf0
>>712
電話番号なんかいらんやろ
大丈夫か?
2021/02/06(土) 16:42:56.79ID:DxNVmrefM
>>712
Microsoftアカウントのこと?
2021/02/06(土) 16:49:22.75ID:ROiZJzWf0
バージョン管理というか
ベータとして作ったものをとっときたいんだけど
gitでバージョン管理としてとっとくしかないの?

プロジェクトごとコピーとかって無理なの?
2021/02/06(土) 16:59:31.40ID:JdsD+Ic/0
ZIPに固めてOneDriveに保存でいいじゃ無い
2021/02/06(土) 17:57:47.99ID:AF/+RoMra
なんだかんだいって、結局はそれが一番最後の砦になったりすることが
まれによくあるから侮れない
2021/02/06(土) 18:00:53.24ID:ps8IV24p0
フォルダこと保存
が最強だよ
2021/02/06(土) 18:11:31.42ID:LwIa9kRI0
バージョン管理とバックアップはそもそも目的が違うしなぁ。
アーカイブがいっぱいあってもどれがなんのバージョンだっけ?ってなりかねない。
2021/02/06(土) 18:25:21.80ID:tpGSBvGQM
GitHubリポジトリにはリリースを保存しておく場所があるのでそこでいいよ
リリースが.NETパッケージならNuGetリポジトリとかでもOK
非公開だったら社内にリポジトリサーバーを構築して管理するといい
2021/02/06(土) 18:32:37.88ID:xYsncZSh0
>>714
2年ぶりに無償の2019起動したらライセンスが古くなったため更新する必要があります。インターネットに接続して(略)と出て使えません。
正しいパスワードでサインインしたらご使用のアカウントがロックされました。アカウントの解除(略)と出て電話番号を要求されます。
Microsoftアカウントのことです。
サインインも2年ぶりです。
2021/02/06(土) 18:44:27.48ID:RC+saUqk0
コールドスリープしてるような間抜けはそうそう居ないだろ
2021/02/06(土) 18:54:27.06ID:DxNVmrefM
>>721
うん、じゃあ電話番号登録すればいいんじゃないの?
2021/02/06(土) 19:09:06.95ID:a6ymKAOD0
>>721
要求というか確認だよ
アカウント作成した時に登録した番号と入力した番号で本人確認を行うだけ
入力した番号が正しければSMSでキーが送られてくるのでロック解除できる
2021/02/06(土) 22:20:43.87ID:0MPuH4rg0
アンチMSおじさんの香りがしてきた
2021/02/06(土) 23:13:09.09ID:MdWn+J3B0
>>719
ちゅうか、gitも、(差分方式と似た)増分方式なので、
差分よりはましだが、それでも基点となるファイルが壊れてしまえば
最新版以外は恐らく再現できなくなってしまうだろうから、
バックアップとしては意味無いと思われる。
ちなみに、差分方式は、直前に対しての変化を記録していくが、
増分方式は、ある基点となるファイルからの違いを記録しておくらしい。
差分方式は連鎖のどれか一箇所でも壊れればそれ以後が全て再現できなくなるが、
増分方式は、記録を開始した時点のファイルが壊れない限りは、
全損はしない。
だから、どこかの時点のバックアップがいくつかとってあれば、
全損する可能性は低いと言うことになるようだ。
よう知らんが。
2021/02/06(土) 23:19:04.67ID:MdWn+J3B0
>>726
[補足]
増分方式の場合、ある日時T0のファイルのバックアップがしっかりとってあれば、
T0以後の増分記録がいくつか破壊しても、破壊した日時のソースは欠損してしまうが、
破壊していない日時のソースは再現できる。
T0のソースが壊れてバックアップからも復元できなくなった場合のみ、
それ以後のソースが全損する。

差分方式の場合は、差分連鎖の一箇所でも壊れれば、それ以後は一切合切
壊れてしまう。
なので、全ての差分を全部きっちりバックアップしないと、危険となる。
増分方式の場合は、日時T0のソースを十分にバックアップしておけば、
以後のデータは時々バックアップする程度で、問題ないと考えられる。
2021/02/06(土) 23:22:40.99ID:MdWn+J3B0
>>727
増分方式の場合、起点となるT0さえ無事であれば、それ以後の増分データの
一部が壊れても、壊れてない日時のソースは復元できるので、
全損はしない。つまり、2015年1月1日をT0として、そのソースが無事であれば、
2018/08/16 の増分データが破壊されたとしても、
2020/02/01 のソースは再現できる。
2021/02/06(土) 23:25:01.94ID:MdWn+J3B0
>>728
しかし、増分バックアップの場合、ソースの修正回数を N 回とすると、
全増分データのサイズは、O(N^2)程度の巨大なものになると思う。
差分だと、O(N)程度。
2021/02/07(日) 00:17:26.33ID:KNf11SZT0
>>726
だから目的自体違うんだからそんな考察意味ないって。
2021/02/07(日) 04:32:23.11ID:dqeWyIes0
>>726
根本的な勘違いをしてるみたいだけど
gitは増分保存じゃなくてスナップショット保存だぞ
2021/02/07(日) 15:27:38.50ID:8FC2dJb9d
ID:MdWn+J3B0
長々と書いてるけどgitは増分方式で保存という前提が間違ってるんだよ
733デフォルトの名無しさん (エムゾネ FFbf-6HDI)
垢版 |
2021/02/07(日) 18:16:11.41ID:4v/nAOdwF
たしかにちょっとログインさぼっただけで
pw変えたり間違った訳でもないのに
勝手にアカウントロックされるのは迷惑な仕組みだよな
2021/02/07(日) 18:24:52.04ID:JqeZYMDR0
2年間をちょっとサボっただけとか言われるMS可哀想
2021/02/07(日) 23:10:27.39ID:vT8A6dmF0
なんで2年間もログインさぼるんだw
2021/02/08(月) 07:50:54.84ID:zbMMYuCcM
エルフに攫われて異世界へ
2021/02/08(月) 13:33:55.99ID:5K0v1cAlp
俺もエルフ抱きに行こ
2021/02/08(月) 15:17:33.26ID:W4gxJPVXa
塀の中から出てきたのか
2021/02/08(月) 17:09:17.26ID:57MmUK2B0
結局プロジェクト別ファイルにするやり方よくわからん
2021/02/08(月) 19:17:32.49ID:57MmUK2B0
vs でgitやる時って
マイクロソフトのアカウントでgithub勝手にアカウント取ったりしないよね?
2021/02/08(月) 19:38:30.84ID:oNcg52Qy0
しないよ
2021/02/09(火) 00:21:09.87ID:bserFh320
gitメニュー、ほぼsource treeの代替になりそうでめちゃくちゃ便利だなと思ったけど知らなかっただけで元々こういうことできてたのかな?
2021/02/09(火) 00:52:53.29ID:Ulftf9cH0
git push --tags
に該当する機能なくなってるよね
2021/02/09(火) 06:39:00.77ID:v3NknSV20
gitでやるとき
ゲームのプログラムみたいに
キー操作や画面サイズとか
基本部分だけ作ってゲームに合わせて使いまわすって
やり方だとgitだけじゃ冗長しすぎてだめだよね?
プロジェクトをまんまコピーするの面倒くさそうだけど・・・
2021/02/09(火) 07:13:39.95ID:iu64Jkj80
>>744
そういうのはプロジェクトテンプレート作ろう
gitは個々のソリューションの変更管理のために使うもの
746デフォルトの名無しさん (スフッ Sdbf-BME6)
垢版 |
2021/02/09(火) 07:50:55.56ID:Uf4M5Ahud
gitのモジュール機能は使えないの?
使ったことないけど
2021/02/09(火) 07:53:51.54ID:vwqm8Gq80
>>739
手動でフォルダコピーだとなんかまずいことあった?
2021/02/09(火) 09:10:19.81ID:Ulftf9cH0
>>744
git submodule
2021/02/09(火) 16:54:20.42ID:91cm5OjDM
Java開発はできないの?
2021/02/09(火) 17:02:05.99ID:tBJatxbQM
MSの見解としては、VSCodeを使え
世間一般の見解としては、IntelliJを使え
2021/02/09(火) 22:50:39.34ID:AR59Z9z20
c/c++が一番人気言語なのに扱いがぞんざいだな
ちょっとフォームアプリ作るときにC#とか使いたくねえ
2021/02/09(火) 22:51:29.67ID:AIkEH3Op0
むしろちょっとフォームアプリ作りたい時こそC#だろ
2021/02/09(火) 22:53:14.76ID:OoGqnNNo0
752が正しいけど、751の気持ちの方が分かる
2021/02/09(火) 23:13:15.25ID:/evbX9yr0
C++/CLIでGUI作成するの後から非推奨になったからなぁ
2021/02/09(火) 23:27:40.24ID:iu64Jkj80
今さらC/C++が一番人気はないと思うけど、C++/WinRTの出番?
2021/02/10(水) 00:39:57.02ID:PXY5WDG20
win32でアプリ作るとかもはや修行
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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