[過去ログ] C#, C♯, C#相談室 Part96 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1: (ワッチョイ 7633-kUv4) 2021/12/20(月)11:03 ID:sdn/+VfW0(1/3) AAS
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
外部リンク:www.visualstudio.com
■コードを貼る場合はこちら
外部リンク:ideone.com
■前スレ
C#, C♯, C#相談室 Part94
2chスレ:tech
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。 VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
876: (ワッチョイ 675f-3TNT) 2022/12/13(火)19:27 ID:F3XmmT6D0(1) AAS
第5版出たとこだし独習C#でいいんじゃね?
プログラミング自体初心者なら新・標準プログラマーズライブラリも悪くないと思う
どっちも細かい部分で説明気になる所はあるが
877: (ワッチョイ df79-SFrr) 2022/12/13(火)19:29 ID:ABNjcxD20(1) AAS
難しい本だな
個人的には作って覚える系の本がいいと思う
unityでゲームみたいな本の方がやる気が出るんじゃないだろうか?
878: (ワッチョイ 7fbb-dmwH) 2022/12/13(火)19:32 ID:Rosh3bMe0(1) AAS
最初の一冊は基本概念と用語定義の正確性に特化した体系的な学習ができるやつがいいと思う
それが身につけば、ネットの記事も参考にできるようになるからな(参考にして良いいかどうかが判断できるようになる)
俺は独習C#使った
それなりに良かったと思うよ
879(1): 649◆xETmWn3d3U (ワッチョイ 67b1-8z17) 2022/12/13(火)21:03 ID:meL+AHJk0(1) AAS
>>866
On,NETって、もしかして
動画リンク[YouTube]
の事?
チラッと冒頭だけ動画見てみたが、機械翻訳が必要な程難しい表現は無かったけど。
YouTubeで自動音声認識で文字起こしされたものを機械翻訳したのは、音声認識の段階で高確率で間違ってるから、余計分からなくなるだけ。
慣れない内は難しいかもしれないが、これくらいの英語なら、翻訳無しで聞き取れるだろ。
「ファスタボー」 → 「first of all」
「レイボー」 → 「label」
「ウィーガナトーカバウッ」 → 「we are going to talk about」
みたいに、カタカナ英語ばかり聞いてると、最初の内は聞き取るのが難しいとは思うけどな。
Apple公式サイトの動画なら、ちゃんと字幕起こしされてるから、そういうので英語字幕を表示させて英語のまま直接聞き取る練習はした方がいい。
880: .NET MAUI HighSchool (ワッチョイ df01-1zqz) 2022/12/13(火)23:12 ID:sdBWNgeV0(4/5) AAS
>>879
それそれ!
881: .NET MAUI HighSchool (ワッチョイ df01-1zqz) 2022/12/13(火)23:14 ID:sdBWNgeV0(5/5) AAS
ReactiveX勉強したかったから見たかった…
動画リンク[YouTube]
882: (ワッチョイ e701-wOZi) 2022/12/14(水)01:16 ID:Kld1dmXe0(1) AAS
横からだけど独習C#、幸いにも近くの図書館にあったから読んでくる
ありがとう
883(1): (ワッチョイ bfcb-d2tu) 2022/12/14(水)10:30 ID:R3/45qGH0(1/3) AAS
アルゴリズムは頭の中だけでなく、視覚化が必要ですか?
頭がぐちゃぐちゃになるんすよ
フローチャートみたいなのは少し苦手なんですが
884: (アウアウウー Sa6b-Fzhe) 2022/12/14(水)10:37 ID:qCKaCA+pa(1/5) AAS
絵がないとぐちゃぐちゃになるなら必要なんじゃね
885: (ワッチョイ e701-wOZi) 2022/12/14(水)10:41 ID:r7cuLH/s0(1) AAS
俺はコーディングする前はいつも流れを文章化して書き出してる
白紙に文字と矢印だけの簡易フローチャートみたいな感じ
886: (アウアウウー Sa6b-Fzhe) 2022/12/14(水)10:46 ID:qCKaCA+pa(2/5) AAS
データ構造じゃなくフローの話をしてるなら普通に関数分けしながら頭を整理すればいいじゃん
ローカル関数を使えば簡単に論理ツリーが構築できるからアイデアプロセッサ的な使い方もできる
887: (ワッチョイ bfcb-d2tu) 2022/12/14(水)10:48 ID:R3/45qGH0(2/3) AAS
んー、じゃあ全ての機能を関数化して名前や役割を与える、ということですか?
それが図と似たようなものと
888: (アウアウウー Sa6b-Fzhe) 2022/12/14(水)10:50 ID:qCKaCA+pa(3/5) AAS
処理のまとまりとはっきり認識できるものは名前をつけるべき
他の人や数年後の自分のためにいちいち図を残しとくわけにはいかんだろ
889: (アウアウウー Sa6b-DK8R) 2022/12/14(水)11:01 ID:H6Aj/5/Ga(1) AAS
ていうか名前だけでも良いくらい
890(1): (アウアウウー Sa6b-Fzhe) 2022/12/14(水)11:03 ID:qCKaCA+pa(4/5) AAS
ループを書くときも外側から順に書くやつ多いよな
あれは一番内側から書くんだよ
その処理を行うにはどういう情報が必要かを整理してそれを引数にする
処理をした結果どういう出力が欲しいのかを整理してそれを戻り値(必要ならタプル)とする
そうすれば関数が一つできあがる
あとはその関数に引数を与えて呼び出すだけだからループなりLINQなりメモ化再帰なり木探索なり好きなのを選べばいい
891(1): (ワッチョイ 7fbb-dmwH) 2022/12/14(水)11:04 ID:EUJoHYXL0(1/3) AAS
今どきはコメント書けば適当なループ処理までAIが補完してくれるぞ
892(2): (スップ Sdff-ROsr) 2022/12/14(水)11:11 ID:M2KpFDpmd(1) AAS
>>890
そもそもそんな行き当たりばったりでコード書いてる時点で目糞鼻糞じゃない?
関数なんて最初に名前と入出力を決めたら中身は自ずと決まる
893: (アウアウウー Sa6b-Fzhe) 2022/12/14(水)11:16 ID:qCKaCA+pa(5/5) AAS
>>892
お前FizzBuzzを関数分けせず書くタイプだろ
後で修正が必要になったら全部読んでごっそり書き換えるわけだ
今は構造化のし方を書いてるがそれを設計段階でやるか実装時にやるかはその時の状況次第だ
アジャイルだとざっくり設計なんてザラにある
894: (アウアウウー Sa6b-DK8R) 2022/12/14(水)11:28 ID:JwWlAqMNa(1) AAS
関数分けという発想で行くと間違うというのはある
必要なもの集めて組み立てる感じ
895: (ワッチョイ 7fbb-dmwH) 2022/12/14(水)11:35 ID:EUJoHYXL0(2/3) AAS
FizzBuzzを関数に分けたりしたら、文字数が増えちゃうじゃん
896: (アウアウウー Sa6b-Fzhe) 2022/12/14(水)11:37 ID:RHCcNLTna(1) AAS
文字数増えて何の問題がある?
全部mainに突っ込むのを効率化と思ってるやつもいるがそんなもの計算量の少ないアルゴリズムを選んだら軽く吹っ飛ぶぞ
897(1): (アウアウウー Sa6b-tIJK) 2022/12/14(水)11:40 ID:/uk0szJ+a(1) AAS
>>883
ズバリ答えましょう
アルゴリズム実装に必要なものはユニットテストです
898: (ワッチョイ 7fbb-dmwH) 2022/12/14(水)11:40 ID:EUJoHYXL0(3/3) AAS
ゴルフでゆーしょーできねーじゃん
899: .NET MAUI HighSchool (ワッチョイ ff01-1zqz) 2022/12/14(水)12:28 ID:giMMsIqE0(1/2) AAS
ReactiveXでFizzBuzz作りたい
3が流れてきたらFizzって言うsubscribeと5が流れてきたらBuzzっていうsubscribeと15が流れてきたらFizzBuzzっていうsubscribeをつくって1から100に順に上がっていくオブザーバブルプロパティを作って発行し合う
900: .NET MAUI HighSchool (ワッチョイ ff01-1zqz) 2022/12/14(水)12:33 ID:giMMsIqE0(2/2) AAS
>>891
テキトーすぎて話にならなさそう
901: (ワッチョイ 47a7-3TNT) 2022/12/14(水)13:34 ID:c/UXUhCI0(1) AAS
>>892
逆
入出力さえ正しいっぽければ中身なんてどうだっていい
それゆえのAIブームでもある
902: (ワッチョイ bfcb-d2tu) 2022/12/14(水)17:31 ID:R3/45qGH0(3/3) AAS
>>897
ユニットテストとは、全部関数化するということですか?
903: .NET MAUI HighSchool (ワッチョイ df01-1zqz) 2022/12/16(金)16:23 ID:3qj0lL1U0(1) AAS
たけのこなんとかってYou Tubeチャンネル再生数少ないけどかなりためになるよな
外部リンク:youtube.com
904(1): (アウアウクー MMf3-hy4/) 2022/12/18(日)02:41 ID:bGOfc0DhM(1) AAS
アマゾン見たらmaui本が1月14日発売だけど、年末出版には間に合わんかったんか?年明けは勉強時間取れる人少ないと思うが。
905: (ワッチョイ 1f02-O3WS) 2022/12/18(日)04:18 ID:v5fQ3NDq0(1) AAS
学生の春休みや新学期には合うだろ
906: .NET MAUI HighSchool (ワッチョイ 6a01-IBS7) 2022/12/18(日)07:57 ID:kMWioX0P0(1) AAS
>>904
別によくね?
増田さんにはお世話になってる
外部リンク:booklog.jp
C#やVBなどの.NET系以外にもRustとかも書いておられる
907: (オイコラミネオ MM1b-e5AJ) 2022/12/18(日)09:09 ID:ses1WoSTM(1/8) AAS
mauiに興味を持てるのはごく一部の異端者だけだからどちらでもいいだろ
908: (ワッチョイ a301-laf+) 2022/12/18(日)11:48 ID:HNplfub60(1/2) AAS
WinFormsにだけ注力してりゃいいのにバカなMicrosoft
909: (オイコラミネオ MM1b-e5AJ) 2022/12/18(日)11:56 ID:ses1WoSTM(2/8) AAS
それはないけど同じところをずっと行ったり来たりしてるね
10年ぐらい停滞しっぱなし
net frameworkを.net coreに書き直し
winforms WPFを.net core用に書き直し
対応するためにVSを書き直し
reunionしてUWPのAPIを使うために書き直し
xamarinをMAUIにして書き直し
今後monoも置き換えするんだろうけど結局停滞してるだけでとてつもない開発リソースを浪費してる
910: (ワッチョイ 535f-f2OJ) 2022/12/18(日)12:21 ID:unD+40ms0(1) AAS
停滞してるか?
めちゃくちゃ便利になってるんだが…。
911: (アウアウウー Sa9f-840Q) 2022/12/18(日)12:46 ID:lQqYZof8a(1) AAS
停滞してるのはエコシステムではなく勉強してない自分達だったというオチはこの業界ではよくある話
身近なC#ディスりおじさんに詳しく話を聞いたらC# 1.0〜2.0ぐらいの知識で止まってたなんてことがよくあった
まあこれに関してはJava 7の印象でいまだにJavaが大嫌いな自分にも当てはまるんであまり言えんけど
912: (ワッチョイ 1f02-JDfe) 2022/12/18(日)13:03 ID:LK87z1ML0(1) AAS
便利になったのはWPFまでだな
それ以降のUIが迷走を続けている
MAUIはあの完成度でよくリリースする気になったもんだと思うわ
913: (オイコラミネオ MM1b-e5AJ) 2022/12/18(日)13:22 ID:ses1WoSTM(3/8) AAS
迷走だよ
GPSやセンサー類のAPIはUWPにだけ実装とか迷走だろ
それを今統合も出来ずに上位にWinUI3のガワだけかぶせてる
実質WinUI3はWPFの部分をwin32とか使ってc++で置き直してUWPを中に含めてるだけ
914: (オイコラミネオ MM1b-e5AJ) 2022/12/18(日)13:25 ID:ses1WoSTM(4/8) AAS
非GUI部分のAPIをUWPやwinformsやWPFから切り離せていなかったのが一番の問題
915: (ワッチョイ 535f-8Cre) 2022/12/18(日)19:27 ID:Wdso+RO70(1/2) AAS
そしてその問題をWindows App SDKで解決したと
916: (オイコラミネオ MM1b-e5AJ) 2022/12/18(日)19:29 ID:ses1WoSTM(5/8) AAS
いや現状変わっていない
917: (ワッチョイ 535f-8Cre) 2022/12/18(日)21:10 ID:Wdso+RO70(2/2) AAS
Why?
918: (ワッチョイ f3b1-3QHA) 2022/12/18(日)21:34 ID:cciNjKw00(1/2) AAS
var rst = src.Select(c =>
if(c == 'a') c = '1';
else if(c == 'b') c = '2';
else {そのまま}
);
とある文字列に対してSelectで条件分岐の操作ってできるんでしょうか?
このような操作はエラー出てしまいます。
for文使う意外でLinqで可能ですか?
919: (ワッチョイ f3b1-3QHA) 2022/12/18(日)21:35 ID:cciNjKw00(2/2) AAS
var rst = src.Select(c => {
if(c == 'a') c = '1';
else if(c == 'b') c = '2';
else {そのまま}
});
920(1): (ワッチョイ f376-dmHX) 2022/12/18(日)21:43 ID:/B6+jV4p0(1) AAS
Selectは、 TResult Func(TSource c); 相当の関数を求めてる。
1文で書けないラムダは{}で囲ってreturnする必要がある。
var rst = src.Select(c => {
if(c == 'a') return '1';
else if(c == 'b') return '2';
else {return c;}
});
条件がそこそこ複雑になるから関数化した方が読みやすくなるけどね
static char func(char c){
if(c == 'a') return '1';
else if(c == 'b') return '2';
else {return c;}
}
var rst = src.Select(func);
921: (ワッチョイ a301-laf+) 2022/12/18(日)23:07 ID:HNplfub60(2/2) AAS
普通にif文書きゃええやん
922: (オイコラミネオ MM1b-e5AJ) 2022/12/18(日)23:17 ID:ses1WoSTM(6/8) AAS
お前ら大丈夫か?
落ち着け
とある文字列と書いてあるのを意図的に無視してんのか?
923: (オイコラミネオ MM1b-e5AJ) 2022/12/18(日)23:35 ID:ses1WoSTM(7/8) AAS
追加情報
三項演算子を二回使うと二回分の変換を式で表せる
c++なんかでは多用されるテクニック
実際に使うとなると
string.Replace
924: (オイコラミネオ MM1b-e5AJ) 2022/12/18(日)23:58 ID:ses1WoSTM(8/8) AAS
ごめんごめん
すげーまちがえてんな
3項演算子二重で使って3つの値を出せる式になる
それと古のテクニックを使う方法もあるけどもう寝る時間だな…
925: (アウアウウー Sa9f-6ae9) 2022/12/19(月)10:29 ID:l2DO4th2a(1/3) AAS
お前こそ落ち着けよ...
とある文字列 = src
だろ
926: 649◆xETmWn3d3U (ワッチョイ f3b1-oovO) 2022/12/19(月)16:18 ID:Q+XXk/bX0(1/2) AAS
>>918-924
こんな感じかな?知らんけど
string src = "beef steak";
var rst = src.Select(c => c == 'a' ? '1' : (c == 'b' ? '2' : c));
927: (ワッチョイ 6a2f-8Cre) 2022/12/19(月)18:16 ID:wIMiDvp90(1) AAS
つか正規表現で良い気がする
928: 649◆xETmWn3d3U (ワッチョイ f3b1-oovO) 2022/12/19(月)18:49 ID:Q+XXk/bX0(2/2) AAS
string rst = src;
rst = rst.Replace('a', '1').Replace('b', '2');
でもええんちゃう?知らんけど
929: (ワッチョイ beb9-E2zE) 2022/12/19(月)19:34 ID:346Jf6ym0(1) AAS
今風に書くなら
var rst = src.Select(c => c switch {
'a' => '1',
'b' => '2',
_ => c,
});
としておきたいかな
930: (アウアウウー Sa9f-6ae9) 2022/12/19(月)19:36 ID:l2DO4th2a(2/3) AAS
多重に三項演算子使うぐらいならswitch式の方がマシじゃね?
var rst = src.Select(c => c switch{ 'a' => '1', 'b' => '2', _ => c });
931: (アウアウウー Sa9f-6ae9) 2022/12/19(月)19:36 ID:l2DO4th2a(3/3) AAS
あっ、被った...
932: (アウアウウー Sa9f-3QHA) 2022/12/19(月)19:45 ID:3uxWIf14a(1/2) AAS
皆様分かりにくい質問だったのにありがとうございます😭
933: (アウアウウー Sa9f-3QHA) 2022/12/19(月)19:47 ID:3uxWIf14a(2/2) AAS
もちろんReplaceでいいんですけどSelectの理解のために知りたかったです
>>920分かりやすかったです。
934: (ワッチョイ 9749-QolP) 2022/12/20(火)09:21 ID:VUWojem40(1) AAS
いえいえ
935: (アウアウウー Sa9f-bKpv) 2022/12/20(火)11:21 ID:Z1Fhbyfda(1) AAS
文と式の区別ついてないしelseだけ変なブロックついてるけどなw
936: (ブーイモ MM17-LnhB) 2022/12/20(火)12:14 ID:l/hyvVydM(1) AAS
一度に置換する関数ってなかったっけ?
937(1): (アウアウウー Sa9f-bKpv) 2022/12/20(火)13:50 ID:409NV00Ga(1/4) AAS
正規表現とDictionaryで一度に置換できる
938(1): (スッップ Sd8a-JDfe) 2022/12/20(火)15:26 ID:pH7eiimed(1/9) AAS
MSストアアプリをリリースしてみたいけど難読化できるか気になっている。
中間言語(IL)のコードだと簡単にリバースエンジニアリングされてしまいそうで不安。
ストアアプリは中間言語ではないファイルにストア側で変換されますか?
自分で書くコードはC#です。
あと.NET7だとネイティブでビルドできるらしいけど.NET7で開発すると、
ローカルもストアアプリもネイティブコードで生成されるんでしょうか?
939(1): (アウアウウー Sa9f-bKpv) 2022/12/20(火)15:40 ID:409NV00Ga(2/4) AAS
機械語ならできないと思ってるのか
940(1): (スッップ Sd8a-JDfe) 2022/12/20(火)15:44 ID:pH7eiimed(2/9) AAS
>>939
難易度がけた違いでしょう?
機械語からリーバスエンジニアリングできるような人なら
ゼロから自分で書いたほうが速いはず。
ILだとC#初心者でもロジック理解できちゃうしパクリアプリも作られてしまう。
941: (ワッチョイ db2d-z22/) 2022/12/20(火)15:54 ID:GGhGhggz0(1/2) AAS
どうせ完璧な対策は無理だし、ConfuserEXで強めに難読化しておくのじゃ駄目かな
942(2): (ワッチョイ aa7c-e5AJ) 2022/12/20(火)15:59 ID:cyGUI4Ab0(1/2) AAS
C#のバイナリは中身もMSILだし難読化してもある程度ソースは分かる
ILSpy等で難読化した後のファイルを見てみれば分かるよ
943(1): (ワッチョイ 6a01-6ae9) 2022/12/20(火)16:05 ID:k+1oqZ2P0(1/4) AAS
>>937
どうやってやるの?
944: (アウアウウー Sa9f-bKpv) 2022/12/20(火)16:15 ID:409NV00Ga(3/4) AAS
>>940
難易度ならそこまで変わらん
945(1): (アウアウウー Sa9f-bKpv) 2022/12/20(火)16:17 ID:409NV00Ga(4/4) AAS
>>943
Regex.Replaceのオーバーロードにラムダ式を取るやつがあるから引数をキーにしてDictionaryから置換先を取り出せばいい
946: (ワッチョイ 0f33-oCck) 2022/12/20(火)16:42 ID:e6Ld54kx0(1) AAS
>>938
今のところネイティブコード作れるのはコンソールだけってのをどっかで見た記憶がある
違ってたらごめん
947: (ワッチョイ 6a01-6ae9) 2022/12/20(火)16:57 ID:k+1oqZ2P0(2/4) AAS
>>945
なるほど、サンクス
948(1): (スッップ Sd8a-JDfe) 2022/12/20(火)17:06 ID:pH7eiimed(3/9) AAS
>>942
ストアアプリも読める?読めたらまずくない?
949: (スッップ Sd8a-JDfe) 2022/12/20(火)17:17 ID:pH7eiimed(4/9) AAS
半分自己解決。UWPはnative codeになるようだ
非UWPはまだわからん。
.NET nativeのおかげだな。.NET7では全アプリ対応になってるのかも
外部リンク:microsoft.github.io
UWP apps written in C# or other managed languages submitted to the store must be built using the .NET Native toolchain. This is the default when building C# apps in Release mode, but not in Debug, so apps built in Debug will be rejected by the Store.
950: (スッップ Sd8a-JDfe) 2022/12/20(火)17:21 ID:pH7eiimed(5/9) AAS
native codeじゃないと商用アプリリリースする気にならないわ
認証まわりとかコード見られたくない
.NET7でもしWPFとかもnative codeふつうにはけるのなら
c#人気復活する気がする
951: (ワッチョイ 8be5-974H) 2022/12/20(火)17:32 ID:yIApGVlC0(1) AAS
盗んだコードで売りに出す♪
952(1): (ワッチョイ aa7c-e5AJ) 2022/12/20(火)17:33 ID:cyGUI4Ab0(2/2) AAS
>>948
visual studioで空のUWPプロジェクト作って
releaseで.NETネイティブツールチェインをオンにして生成されたApp1.exeをILSpyで見ても
普通に中身見れるなw
953: (ワッチョイ db2d-z22/) 2022/12/20(火)17:33 ID:GGhGhggz0(2/2) AAS
>>942
難読化を強い設定にしたらILSpyでファイルを開いただけじゃソースコードは読めないよ
954: (スッップ Sd8a-JDfe) 2022/12/20(火)17:37 ID:pH7eiimed(6/9) AAS
>>952
MSのストア側でnativeになるとかじゃない?
955(2): たすけて!!!!!1!!11!!1!!!1!!111 (ガックシ 0676-ZR1D) 2022/12/20(火)19:28 ID:nMZXsv/b6(1) AAS
C言語でボードゲームを作成する課題についてです。重力付き4目並べを最終的にコンピュータと対戦可能にするように、テンプレートのコードに穴埋めしていく課題です。
?横7x縦6の盤面を立てて使用?2人で対戦、以下の0~6のマスを交互に選択?縦横斜めいずれか4コマ並べれば勝ち。以下はテンプレートのコードです(長いので続きはGoogleドライブにも置いてます)、これらの空白部分の穴埋めが分かる方、どうか教えてくださいお願いします。元テンプレコード↓→ 外部リンク:drive.google.com
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define YMAX 6 // 縦方向のマス目の数
#define XMAX 7 // 横方向のマス目の数
int board[XMAX][YMAX]; // 0:未着手 1:先手のコマ● 2:後手のコマ○
int num[XMAX]; // 各列に置かれているコマの数
int choice = 1; // 0:未選択
// 1:人間(先手●)対人間(後手〇)
// 2:人間(先手●)対コンピュータ(後手〇)
// 3:コンピュータ(先手●)対人間(後手〇)
int turn = 0; // 先手か後手かを判定するための着手数
void InitBoard(void);
void DispBoard(void);
int CheckFull(void);
int SetXpos(int);
int CheckBoard(int, int, int);
int ComputeXpos(int);
int SearchConnect(int, int);
int main(void)
{
int xpos; // 入力したコマの置き場所,またはコンピュータが探したコマの置き場所
int player; // 1:先手の手番 2:後手の手番
int win = 0; // 0:プレイ中 1:先手の勝ち 2:後手の勝ち 3:引き分け
int ans;
while (1)
{
srand((unsigned int)time(NULL)); // 乱数を使う場合のseedの初期化
長いので続きはGoogleドライブにあります→ 外部リンク:drive.google.com
956: (スッップ Sd8a-JDfe) 2022/12/20(火)19:43 ID:pH7eiimed(7/9) AAS
>>955
名前とはうらはらにC#とCはぜんぜん違う
ここで聞くべきではない
957: (ワッチョイ 6aad-HqPk) 2022/12/20(火)19:53 ID:3kdd/MdI0(1) AAS
課題についてですが
958(1): (ワッチョイ 535f-f2OJ) 2022/12/20(火)19:56 ID:oMNiRABq0(1/2) AAS
パクられるほどのアプリなんだろうか。
今日日、割られるとしたらパッチが広まるのも一瞬なんだから、それよりもちゃんと利用規約書いた方が良いんじゃないの?
はるかに金払うと思うよ。特に企業内ユーザは。
959(1): (スッップ Sd8a-JDfe) 2022/12/20(火)20:36 ID:pH7eiimed(8/9) AAS
>>958
流行ってきてもすぐにコピーアプリつくられたら
収益激減しちゃうでしょ
利用規約なんて書いても少し変えてコピーアプリつくられたらおしまいだよ
実害がはっきりでる
例えば300円のアプリ、コピーされて100円で売られたらこっちは大損だよ
960(1): (ワッチョイ 6a01-6ae9) 2022/12/20(火)20:36 ID:k+1oqZ2P0(3/4) AAS
困るほど割られるならサーバー用意して認証するかな、俺なら
まあそんなアプリを公開できるとも思わんから取らぬたぬきなんだけどw
961(1): (スッップ Sd8a-JDfe) 2022/12/20(火)20:38 ID:pH7eiimed(9/9) AAS
>>960
native codeじゃないとかんたんに
サーバーの認証のコードが漏れちゃうでしょ
セキュリティ大事
でもNET7でようやくC#でnative codeをMSが許可したのは大きいね
962: (スップ Sd8a-ytDT) 2022/12/20(火)20:43 ID:paaoChG1d(1) AAS
クライアントにAPIキーをハードコードしてるのか?ユーザー認証を実装しろよ
そんな初歩的な設計ミスしといてセキュリティもクソも
963: (ワッチョイ 6a01-6ae9) 2022/12/20(火)21:05 ID:k+1oqZ2P0(4/4) AAS
>>961
もしかして認証ってクライアントからサーバーにログインするような奴しか知らんのか?
964: (スッップ Sd8a-g3+u) 2022/12/20(火)21:41 ID:y3Va6Z2Ud(1) AAS
>>955
馬鹿は死ね
965: (ワッチョイ 535f-f2OJ) 2022/12/20(火)21:55 ID:oMNiRABq0(2/2) AAS
>>959
実際Windows以外ではアプリ作っててそこそこダウンロードされてるけど、コピーアプリが追いついたこと無いぞ。
単純に品質と知名度でしょ。
966(1): (ワッチョイ 535f-8Cre) 2022/12/21(水)02:19 ID:XJm7JjIp0(1) AAS
.NET 7のNative AOTは今のところコンソールアプリとクラスライブラリで使えるらしい
今後範囲を広げていく計画だったと思うが
現状でWindowsアプリでも重要な部分だけクラスライブラリにすれば上で求められてることはできそうだな
967(1): (スッププ Sd8a-ytDT) 2022/12/21(水)08:11 ID:WvXmOK62d(1) AAS
>>966
それはちょっと誤解がある
NativeAOTはコンソールアプリとして発行されるアプリケーション、もしくは(.NETのクラスライブラリではなく)ネイティブの共有ライブラリを作るときだけ使える
つまり、仮にWindowsアプリで部分的に使うならPInvokeが必要
なお、NativeAOTはASP.NET Coreアプリを動かすことをゴールとしており、GUIアプリのサポートは全く計画にない
968: (ワッチョイ 1f02-JDfe) 2022/12/21(水)08:21 ID:NS3BAQGq0(1) AAS
ネイティブのDLL作れるのはええな
わざわざその為だけにC++使う必要なくなるかな
969(1): (ワッチョイ c307-bKpv) 2022/12/21(水)10:09 ID:DxBIri9+0(1/4) AAS
ソースが見られるのを恐れてるのはパクられるのを恐れてるんじゃなくパクったのがバレるのを恐れてるんだよな
お前なんかの作った物をパクるやつなんかいねーよと言いたくなるやつしか難読化難読化言わない
970(1): (ワッチョイ c307-bKpv) 2022/12/21(水)10:17 ID:DxBIri9+0(2/4) AAS
あと.NETのリバースエンジニアリングがしやすいのは静的ライブラリじゃなくDLLを使ってるのと仮想メソッドを多用しているのも大きい
DLLで提供されるクラスを使う時や仮想メソッドを使う時は名前でアクセスせざるを得ないからどのクラスのどのメソッドを使っているかを隠すことができない
これはC++を使っても同じこと
本気で難読化したいなら標準ライブラリを使うのをやめた上でソースコードジェネレータを使ってソースレベルでクラス名や関数名をランダマイズするところから
971(1): (ワッチョイ c307-bKpv) 2022/12/21(水)10:20 ID:DxBIri9+0(3/4) AAS
2chスレ:tech
立てたけどこれ過去スレの履歴要らんだろ
972: (スッップ Sd8a-JDfe) 2022/12/21(水)10:50 ID:Q7xHaIEVd(1/5) AAS
>>967
ASP.NET Coreは.NET8でnative AOT対応してくるかもしれない。
Azure運営してるMSとしては欲しい機能だろうし。
GUI appsもゴールにないという事はないと思うよ
やっぱり速度とかメモリ使用とかでnative有利だし。
MAUIで作ったiOSかMacアプリはnative codeでbuildされるとか見た記憶ある。
他社がnativeで動くならGUI appも対応しないとc#開発者がC#使うのをやめてしまう。
973: (スッップ Sd8a-JDfe) 2022/12/21(水)10:52 ID:Q7xHaIEVd(2/5) AAS
ここみると.NET7の制限というニュアンスで書いてある。
最終的にはふつうのWPFとかもnative AOT目指してるように思える。
外部リンク:learn.microsoft.com
974(2): (スッップ Sd8a-JDfe) 2022/12/21(水)10:54 ID:Q7xHaIEVd(3/5) AAS
>>969
コード見られるのを気にしない人はセキュリティに関して知識と意識が低いだけだと思う。
必要のない情報は極力見せないっていうのがセキュリティの基本だ。
975: (ワッチョイ c307-bKpv) 2022/12/21(水)10:59 ID:DxBIri9+0(4/4) AAS
>>974
何のセキュリティを気にしてんだよw
セキュリティの意味わかってないんじゃね?
976: (ワッチョイ 0f2f-8Cre) 2022/12/21(水)11:21 ID:dQUtHKIl0(1) AAS
>>974
その理論だとつまりオープンソースはセキュリティが低すぎて使い物にならないってことだな
極力見せない以前に、見せていいものと悪いものの判断ぐらいできるようになれよ
977: (アウアウアー Sab6-sLkO) 2022/12/21(水)11:38 ID:XdVZCz4Ta(1) AAS
>>971
それよりVS 2017 からバージョンさせてほしい
978: (ワッチョイ 9749-QolP) 2022/12/21(水)11:46 ID:yXejyiRX0(1) AAS
まあ認証まわりとか、ライブラリを使ってるのか自作なのかすら見せたくないのはわかる
個人のアプリじゃないと重箱の隅をつつかれることにもなるしね
979(1): (テテンテンテン MMe6-w6Ef) 2022/12/21(水)12:14 ID:UGlVD7cdM(1) AAS
カジュアルな解読対策なら既存の難読化で十分だし、ガチのクラッカー相手ならマシン語になった程度じゃ無駄だよ
980: (ワッチョイ 6a01-6ae9) 2022/12/21(水)12:52 ID:j8NGwdcp0(1/2) AAS
そもそもターゲットになるようなアプリを公開できる奴がこんなスレにいるのかと...
981: (スッップ Sd8a-JDfe) 2022/12/21(水)14:51 ID:Q7xHaIEVd(4/5) AAS
native AOTはスピードアップの恩恵も大きい。
C++くらい速いコードになるし欲しいに決まってる
982: (アウアウウー Sa9f-bKpv) 2022/12/21(水)15:00 ID:xeZ9BjZLa(1) AAS
ならんと思うよ
C++は最適化のやり方がえげつないし安全より速度に倒してるから
983: (ワッチョイ 0fa7-JDfe) 2022/12/21(水)15:01 ID:9NcjNPce0(1) AAS
最適化に関しては言語単位ではなくコンパイラ次第だけどな
984(1): たすけて!!!!!1!!11!!1!!!1!!111 (ガックシ 0676-ZR1D) 2022/12/21(水)15:04 ID:PoVpFNoO6(1/2) AAS
C言語でボードゲームを作成する課題についてです。重力付き4目並べを最終的にコンピュータと対戦可能にするように、テンプレートのコードに穴埋めしていく課題です。
?横7x縦6の盤面を立てて使用?2人で対戦、以下の0~6のマスを交互に選択?縦横斜めいずれか4コマ並べれば勝ち。以下はテンプレートのコードです(長いので続きはGoogleドライブにも置いてます)、これらの空白部分の穴埋めが分かる方、どうか教えてくださいお願いします。元テンプレコード↓→ 外部リンク:drive.google.com
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define YMAX 6 // 縦方向のマス目の数
#define XMAX 7 // 横方向のマス目の数
int board[XMAX][YMAX]; // 0:未着手 1:先手のコマ● 2:後手のコマ○
int num[XMAX]; // 各列に置かれているコマの数
int choice = 1; // 0:未選択
// 1:人間(先手●)対人間(後手〇)
// 2:人間(先手●)対コンピュータ(後手〇)
// 3:コンピュータ(先手●)対人間(後手〇)
int turn = 0; // 先手か後手かを判定するための着手数
void InitBoard(void);
void DispBoard(void);
int CheckFull(void);
int SetXpos(int);
int CheckBoard(int, int, int);
int ComputeXpos(int);
int SearchConnect(int, int);
int main(void)
{
int xpos; // 入力したコマの置き場所,またはコンピュータが探したコマの置き場所
int player; // 1:先手の手番 2:後手の手番
int win = 0; // 0:プレイ中 1:先手の勝ち 2:後手の勝ち 3:引き分け
int ans;
while (1)
{
srand((unsigned int)time(NULL)); // 乱数を使う場合のseedの初期化
長いので続きはGoogleドライブにあります→ 外部リンク:drive.google.com
985(1): (スッップ Sd8a-JDfe) 2022/12/21(水)15:06 ID:Q7xHaIEVd(5/5) AAS
>>979
マシン語のリバースエンジニアリングできるやつなんて
プログラマーの1%もいないだろうし時間もかかるからほぼ回避できる。
解析する行為が割に合わなくなる
C#難読化だけとは安心度が全然違う
986(1): (スッップ Sd8a-g3+u) 2022/12/21(水)15:08 ID:QEiYz8egd(1) AAS
>>984
しつこい
死ねよ
987: (ガックシ 0676-ZR1D) 2022/12/21(水)15:46 ID:PoVpFNoO6(2/2) AAS
>>986
ごめんち
988: (アウアウウー Sa9f-bKpv) 2022/12/21(水)15:57 ID:xnCwgzYya(1/2) AAS
>>985
マシン語に夢見すぎだしCのソースコードにデコンパイルできるぞ
989(1): (ワッチョイ 6a01-6ae9) 2022/12/21(水)16:15 ID:j8NGwdcp0(2/2) AAS
まあガチで最適化されてたらまともなCコードにはならんけどね
990: (アウアウウー Sa9f-bKpv) 2022/12/21(水)16:23 ID:xnCwgzYya(2/2) AAS
>>989
少なくとも文法はCになる
991: (オイコラミネオ MM1b-e5AJ) 2022/12/21(水)20:14 ID:RZVo2DHQM(1/3) AAS
文法はCだけど中身はマシン語と変わらないなら地獄だけどそういうものになるんだろ?
ifとgotoとreturnとラベルだらけ
992: (オイコラミネオ MM1b-e5AJ) 2022/12/21(水)20:17 ID:RZVo2DHQM(2/3) AAS
式は漏れなく逆ポーランド記法的になるんだろうし
993: (ワッチョイ 535f-f2OJ) 2022/12/21(水)20:23 ID:rozOpZ0F0(1/2) AAS
自分でやってみればわかるが、言うほど難しくない。
994(1): (オイコラミネオ MM1b-e5AJ) 2022/12/21(水)20:27 ID:RZVo2DHQM(3/3) AAS
と言う妄想
995(1): (ワッチョイ 3b01-ZR1D) 2022/12/21(水)21:29 ID:ye8WaQKn0(1) AAS
Cとアセンブラの最も大きな違いはレジスタへのアクセスなんだよね。
996: (ワッチョイ 535f-f2OJ) 2022/12/21(水)21:48 ID:rozOpZ0F0(2/2) AAS
>>994
慣れだよ。CTFとかやったら良い。
997: (アウアウウー Sa9f-GVz8) 2022/12/22(木)02:21 ID:IYYvjjD3a(1) AAS
>>995
レジスターやスタックを気にしながらプログラムを組むのは地獄だわな
998: (スッップ Sd8a-JDfe) 2022/12/22(木)02:36 ID:F1nh9mbrd(1/3) AAS
C++も終わりになるんじゃないの?
LinuxがRustで書くようになるとかいう噂?ニュースを見たよ
RustってOSも書けるんだな
Rustで安全で高速なコード書けたらC/C++ほぼ要らなくなるんじゃ?
999(1): (スッップ Sd8a-JDfe) 2022/12/22(木)02:37 ID:F1nh9mbrd(2/3) AAS
>>999
LinuxのカーネルがRustで書かれるかもっていう噂、ニュースね
1000: (スッップ Sd8a-JDfe) 2022/12/22(木)02:43 ID:F1nh9mbrd(3/3) AAS
次
C#, C♯, C#相談室 Part97
2chスレ:tech
1001(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 366日 15時間 39分 58秒
1002(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
外部リンク:premium.5ch.net
▼ 浪人ログインはこちら ▼
外部リンク[php]:login.5ch.net
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.228s*