ふらっと C#,C♯,C#(初心者用) Part160

レス数が950を超えています。1000を超えると書き込みができなくなります。
2024/02/11(日) 09:17:20.44ID:8k78Qd14M
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part159
http://mevius.5ch.net/test/read.cgi/tech/1691454079/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
875デフォルトの名無しさん (ワッチョイ fe84-9KYK)
垢版 |
2025/01/17(金) 22:12:41.15ID:vC4u56dQ0
dllとWinFormsのプロセス間通信したいのに名前付きパイプで簡単なサンプルをChatGPT、Gemini、Claudどれでやってもまったく通信できん!

こいつらにいろいろ聞いてそれぞれなんで間違ってるのか聞いてもぜんぜん通信できん!
昨日と今日ずっとこいつらに聞いてるんだよ

もういやになる
2025/01/18(土) 06:30:27.44ID:04pFIoXI0
ネットの資料見てやることもできずに生成AIに頼るような輩にできることではない
877デフォルトの名無しさん (ワッチョイ 7a53-TRKB)
垢版 |
2025/01/18(土) 06:49:02.31ID:iOeEhf+m0
ネットの資料は正誤があるからそれらを概ね見極めたのがAIだと思うが?
いずれも読解力がなければ駄目だ
2025/01/18(土) 08:16:40.63ID:XKxoLP5O0
AIも間違ったコードを普通に出力するぞ?
879デフォルトの名無しさん (ワッチョイ 7a53-TRKB)
垢版 |
2025/01/18(土) 09:06:43.05ID:iOeEhf+m0
>>878
たからぁ概ねと書いたじゃん?
880デフォルトの名無しさん (アウアウウー Sa91-HZB4)
垢版 |
2025/01/18(土) 11:59:58.70ID:7Jaib8zoa
AIに正誤を見極める力は無い
ネットの情報を適当にコピペして
もっともらしい会話してる人工無能レベル
平気で間違うし自信もって答えるから性質が悪い
2025/01/18(土) 12:05:09.07ID:J08wIrH9M
ここで聞けば答えは出るよ
AIより正しいかどうかは不明だけど
2025/01/18(土) 13:33:02.99ID:04pFIoXI0
>>879
逃げ道作ってみっともねぇなw
2025/01/18(土) 14:16:14.14ID:CTlmYVce0
そもそも、dllってプロセスじゃないし。
dllとプロセス間通信って段階で意味不明なんだが

意味不明な質問にそれっぽい答え返すAIは良いのか悪いのか
2025/01/18(土) 14:27:38.37ID:7E9dQxGN0
そこでDLL Injectionのソースを吐き出して来たら評価するw
885デフォルトの名無しさん (ワッチョイ a93d-9KYK)
垢版 |
2025/01/18(土) 14:31:39.51ID:cxzb7ykI0
875だけどClaudが共有メモリでのプロセス間通信でやったら?とアドバイスとコードを示してそれをGeminiに添削させてやっとできたよ

名前付きパイプはWinForms側でパイプサーバーがすぐに停止されてしまってよくわからず

イベント駆動でDLL内にイベントハンドラを生成してWinFormsで購読する方法はなかなか購読できずダメだった
2025/01/18(土) 14:48:48.23ID:J08wIrH9M
そもそもが何のプログラムなのかが不明だから

C++で書かれたアプリのDLLプラグインとC#のサーバ間のプロセス間通信とかそんな感じだろうか
2025/01/18(土) 16:04:15.92ID:cxzb7ykI0
C++アプリがDLL読み込めるようになっていてそのアプリからデータをWinFormsに流したかったってこと
単にアプリ間でデータを渡したいだけなのにいろいろ面倒なんだなって思った
2025/01/18(土) 18:03:24.71ID:J08wIrH9M
何かの病気なのか?
2025/01/18(土) 18:07:54.24ID:Ojz+5Dwq0
自分が病気だと気づかず他人が病気と思い込む奴っているよな
890デフォルトの名無しさん (ワッチョイ 9581-147x)
垢版 |
2025/01/18(土) 20:15:32.30ID:ZIGRjNp60
>>887
境界知能なのか?
2025/01/18(土) 20:16:29.06ID:SKgV7K5U0
皮肉言いたいのはわかるけど
もっとブーメランにならない表現にすればいいものを、といつも思う
2025/01/18(土) 20:22:30.41ID:J08wIrH9M
コミュニケーション能力に難があるのだけははっきりとわかる
2025/01/18(土) 20:27:10.22ID:nN020jd00
>>887
コードがないから何とも言えないけど、たぶん単純に実装が間違ってるだけだと思う
2025/01/18(土) 21:02:48.61ID:J08wIrH9M
自分の問題がうまくいかないからと言って特に詳細について語らず入門者コミュニティーに来て愚痴を言う
そして見た人間を不愉快にさせて楽しむ
自分に関わった人間を不幸にして喜ぶ

幼稚で良くない行動だよ
2025/01/18(土) 23:26:49.31ID:ZREBf0IK0
>>894
お前みたいな老害雅一番面倒なんだよ
ネチネチとうるせえんだわ
スレの1を読んでから書き込め
まあ読めたらの話だが
2025/01/19(日) 00:35:58.19ID:IALgBqxE0
プロセス間通信はプラットフォームを問わないソケットで設計した方がいいよ
パフォーマンスが重要でPCを跨がないなら匿名パイプが使い易い
それと共有メモリは原始的な同期処理が別途必要だからその辺もAIに聞いといた方がいいよ
2025/01/19(日) 02:37:56.24ID:9/Z57kyd0
私もソケットでやるかな
名前付きパイプってわざわざ新規プログラムで選ぶことないわ
2025/01/19(日) 06:32:36.54ID:ugzsMDEi0
>>887=889=895
自分の拙さを棚に上げて、IDコロコロして自演擁護はダサい
2025/01/19(日) 08:57:04.70ID:Q2C+nQ4y0
ここは初心者スレで下らない質問低レベルな質問でもいいスレなんだよ
理解できないなら出ていけばいい
2025/01/19(日) 09:35:54.93ID:9ZaKfB7aM
そもそもがそいつは質問してない
自分がイライラしたという嫌な体験を書きに来ただけだろ?
2025/01/19(日) 09:40:34.23ID:9ZaKfB7aM
質問は書いてない
> 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
に当てはまらない

自分が憶測で内容を書くとそれを見なかったことにして
同じ内容を書いて来る
当てられたのが気に食わないんだろう

幼稚すぎる
2025/01/19(日) 10:01:28.91ID:Q2C+nQ4y0
初心者がchatGPTやgeminiに質問してうまくいかなかったけど結果的に解決して質問待ちしていたジジイたちがスルーされてイライラw
2025/01/19(日) 10:13:23.60ID:9ZaKfB7aM
自分が状況読めないで >>899 みたいな勘違いレスしてて
それが判ったらくだらない煽りレスしてくる人間がいます

と言う状況です
2025/01/19(日) 10:18:01.62ID:Q2C+nQ4y0
ジジイたちがAIに取って代わられたといういい事例になったな
まあ寂しいのはわかるけどメソメソすんな
2025/01/19(日) 10:22:49.97ID:9ZaKfB7aM
> 理解できないなら出ていけばいい

勘違いしてここまでかいちゃったから恥ずかしいのかな?
2025/01/19(日) 10:33:41.35ID:ugzsMDEi0
ブーメラン刺さって辛いんでしょきっとw >理解できないなら出ていけばいい
2025/01/19(日) 10:42:03.45ID:Q2C+nQ4y0
恥ずかしいとか辛いとか掲示板でそんな感情出るのか?
アンタら年寄りが血圧上がってることに心配してやってるんだよ
冬だから血管大切にしなさい
908デフォルトの名無しさん (ワッチョイ 03b8-fJ3P)
垢版 |
2025/01/19(日) 10:54:13.59ID:44cEK1wd0
笑うな初心者ばっかりだからなぁ
2025/01/19(日) 12:07:08.01ID:m9nx1hIg0
アホな書き込みしちゃったからって必死過ぎだろw
2025/01/19(日) 12:21:51.91ID:ystGmr/H0
>お前みたいな老害雅一番面倒なんだよ
>ジジイたちがスルーされてイライラw
>アンタら年寄りが血圧上がってることに心配してやってるんだよ

これは恥ずかしいw
100%自分のことじゃん
>>875を見れば一目瞭然
911デフォルトの名無しさん (ワッチョイ ffb7-21aq)
垢版 |
2025/01/19(日) 12:56:33.29ID:xvplCwC20
WIndowsのパイプなんて、知ってる人あんまいねえだろう
2025/01/19(日) 15:30:02.05ID:URsD3mvT0
MAILSLOTと同じぐらいには使われないな
2025/01/19(日) 15:42:17.57ID:w2t4Zrxp0
名前付きパイプ、結構使ってるけどな。
socketと違ってポートを開けなくていいし。

Linux開発ではsocketを使いまくってる。
2025/01/19(日) 22:38:17.71ID:URsD3mvT0
WindowsもUNIX SOCKET使えるようになったのを知らない?😱
2025/01/19(日) 22:51:23.05ID:w2t4Zrxp0
前世紀から知ってるけど?
916デフォルトの名無しさん (ワッチョイ ff9a-21aq)
垢版 |
2025/01/20(月) 04:44:35.18ID:MJ/AeiBg0
あるかどうかを知ってるかのレベルの人間と、実際に使って結構違うと思ってる人間と、相当な差があるだろうな
2025/01/20(月) 08:39:46.90ID:NbX5YcxAM
前世紀には実装されてないな。

釣宣言にマジレスカッコ悪い❤
918デフォルトの名無しさん (アウアウウー Saa7-C2Lh)
垢版 |
2025/01/20(月) 13:34:29.49ID:G+ryJ45Ga
WinSock2があるということはWinSock(無印)かWinSock1があったということかな
2025/01/20(月) 22:56:37.11ID:FRLVe9xN0
Chameleonとかがそうだね~
920デフォルトの名無しさん (アウアウウー Saa7-C2Lh)
垢版 |
2025/01/21(火) 08:32:52.81ID:yRL5l1cZa
あれがそうなんか
2025/01/21(火) 09:57:02.93ID:leJPG7vFM
Creamlemon?
922デフォルトの名無しさん (ワッチョイ 337b-2JEj)
垢版 |
2025/01/21(火) 10:51:39.95ID:1I1icUr60
亜美飛んじゃう
2025/01/21(火) 10:54:57.10ID:1m/IUWna0
>>914
C#の場合UNIXドメインソケットのためだけにNET5以降に限定するのは馬鹿げてるから
pinvokeで使う事になるね
2025/01/21(火) 17:13:29.68ID:QUnOoTqO0
>>918
winsock zero
winsock return
winsock reborn
2025/01/22(水) 18:26:18.47ID:0O95Qohn0
WinSock2の本まだもってるわ…
2025/01/22(水) 21:24:34.94ID:MIf/sAJr0
C#使うのにwinsockとかww
2025/01/23(木) 06:57:25.61ID:juwbDZ3u0
WindowsでSystem.Net.Sockets.Socketがwinsockじゃないと思ってる?
2025/01/23(木) 09:02:55.86ID:OQt5VYXf0
生で使う必要無いだろw
2025/01/23(木) 09:04:13.27ID:kfksRUHC0
生で使わなくとも理解はしといた方が良いぞ
2025/01/23(木) 09:34:15.00ID:OQt5VYXf0
カプセル化されてるものをいちいち中身の動きまで知りたく無いw
2025/01/24(金) 00:30:56.25ID:v06s0zgG0
そうだな、.netの全dllはアセンブラレベルで確認すべきだな
2025/01/24(金) 09:58:39.09ID:PxgZMw2N0
.NETのdllファイルはアセンブラではないが
2025/01/28(火) 10:29:27.90ID:q8xQ82Vup
マシン語だなw
2025/01/28(火) 11:48:46.29ID:OP/rUwOja
生の方が気持ちいいんだけど後が怖いからな
935デフォルトの名無しさん (ワッチョイ 5feb-mxMC)
垢版 |
2025/01/28(火) 14:07:31.05ID:+55qGrkc0
>>933
ILだけど?Javaと同じ
2025/01/28(火) 14:16:47.75ID:OP/rUwOja
>>935
ILも最終的にはアセンブラレベルに落ちて実行されてる。ILなんてc#と変わらないじゃん。そこで見るの止めてもなんの意味もない
2025/01/28(火) 15:27:34.67ID:0NldUbHb0
基地 vs 基地の不毛なキチキチ合戦スレ
2025/01/28(火) 16:52:08.34ID:ZY1xpaUG0
元の話が見えないアウアウ君w
2025/01/28(火) 17:03:27.17ID:B5BP0B6K0
マシン語なんて甘え
俺クラスになるとハードウェアの電子の動きぐらいまで把握する
940デフォルトの名無しさん (ワッチョイ db49-wGhS)
垢版 |
2025/01/28(火) 17:20:05.18ID:m3lC4nL/0
電子の動きなんて甘え
俺クラスになると量子力学的な電子の存在確率の概念まで把握する
2025/01/28(火) 18:09:19.54ID:VBw8QKYPp
>>940
まあ、1か0かなんて確率論的な分布でしか無いのは確かだけどさぁ
942デフォルトの名無しさん (ワッチョイ 5a4b-QkE2)
垢版 |
2025/02/01(土) 08:30:36.21ID:4kSN6ZeX0
複数クライアントにデータを送信するUDPサーバーを作っているのですが動作に不明点があります。
https://ideone.com/6MTfO2

コードでは二つのスレッドのうち片方でクライアント検知、もう片方で検知されたすべてのクライアントにデータを定期送信しています。
これで1つ目のクライアント、2つ目のクライアント、、と順にクライアントから何かしらの送信をするとそれぞれのクライアントにデータが飛んでくるようになります。
ただ、いずれかのクライアントを閉じると、サーバー側のクライアント検知のためのReceiveの待機部分で以下のようなエラーが発生するようになり待機されなくなってしまいます。
UDPは一方的にデータを投げるだけなのでクライアントを閉じたところでサーバー側には影響はないと思っていたのですがなぜこのようになるのでしょうか。
同じサーバーも複数クライアントもマシン内で動作させていることが関係するのでしょうか。
https://i.imgur.com/N6oLDqF.png
2025/02/01(土) 08:40:26.08ID:4kSN6ZeX0
同じ〜マシン内 → 〜同じマシン内 です。
一応ですが環境は.NET8.0です。
2025/02/01(土) 09:04:51.96ID:37vz3mLh0
クライアント側のコードも貼りなよ
2025/02/01(土) 11:11:36.44ID:dQW8A9nv0
クラ側のコードは関係ない
ちょっとググったらWindows環境の場合はWin32APIから例外出さないように内部のWinSockオブジェクトにアプローチ書けないとダメっぽいな
なので手っ取り早く安全に行きたいなら65行目のforeach中に一つ一つtry-catchいれて例外の型がSocketExceptionで且つコード10054の場合はClientsリストから削除していくのがいい
その場合はforeachだとその中で削除できないから逆順forでRemoveAtすればいい
2025/02/01(土) 11:19:07.25ID:37vz3mLh0
いやまあそれを確認するためにまずは再現できるコードを貼れって言ってんだが
お前の先走りでそれもできなくなったかもしれないが
2025/02/01(土) 11:27:36.70ID:pNyJBYQvM
pub/subがやりたいだけならMQTTみたいなメッセージングプロトコル使えばいいんじゃないの
勉強なら止めないが
2025/02/01(土) 11:43:18.07ID:LNgv56j/0
尋ねられてる問題とは全然関係ねぇけど
クライアント検知のOK返送とデータ定期送信のタイミング同期取って無くてえぇんか?
2025/02/01(土) 11:46:59.69ID:LNgv56j/0
同期取るっつーか、Clients.Addするタイミングって言った方がいいか
950デフォルトの名無しさん (ワッチョイ 5a4b-QkE2)
垢版 |
2025/02/01(土) 12:07:19.60ID:4kSN6ZeX0
すみません、クライアントはこれです
https://www.vector.co.jp/soft/dl/winnt/net/se506180.html

>>945
Sendの部分では例外は発生しないんですよね…
例外が発生するのはReceiveのほうです
2025/02/01(土) 13:18:54.72ID:m26c//aC0
これ?stackoverflow.com/a/7478498
952デフォルトの名無しさん (ワッチョイ 5a4b-QkE2)
垢版 |
2025/02/01(土) 14:33:58.55ID:4kSN6ZeX0
Send時に相手が閉じているとICMPパケットが返るので相手が閉じたことがサーバー側で認識されてReceive時にエラーで返すようになってしまうので、特殊な設定でICMPパケットは無視するようにするということですね…
これで動くようになりました、ありがとうございます!
2025/02/04(火) 02:13:39.41ID:RZu1A42I0
神がいる
いや
神を超えた神がいる
2025/02/07(金) 18:04:03.84ID:prMQrKbT0
visual studioでソリューションをgitで管理していて、ソリューションを右クリックして例えばテストプロジェクトとか追加します
でこのプロジェクトを書いて、追加したプロジェクトをコミットやプッシュしようとしてgit変更を開いてもそのテストプロジェクトがgitの対象になっていないんです。
どうすればいいんでしょうか
2025/02/07(金) 18:39:38.58ID:wGzb9z6Q0
多分だけどフォルダ構成に問題があるのでは?
Git管理対象のフォルダの下に各プロジェクトのフォルダが含まれなければならない。

あるべき形
- Hoge/
- .git/
- Hoge.sln
- Hoge/
- Hoge.csproj
- HogeTest/
- HogeTest.csproj

不適切な例
- Hoge/
- .git/
- Hoge.sln
- Hoge.csproj
- HogeTest/ # Gitの対象外
- HogeTest.csproj
2025/02/07(金) 19:40:55.91ID:prMQrKbT0
あーなるほど、最初にソリューションとプロジェクトを同じフォルダに配置するのチェックボックスを外さないといけなかったんですね
hoge.csprojがslnと同じフォルダに入っちゃって不適切な例の形になる

あれ、そうすると一度作っちゃったら修正効かないのか作り直しか……
2025/02/07(金) 20:13:51.40ID:prMQrKbT0
できた……ありがとうございました。
誰か同じようなミスをしたときのために書いておきます。
.git/と同じ階層にあたらしくHogeフォルダを作って、hoge.csprojをそこに移動。
それでslnをひらくとHogeプロジェクトがねぇよって言われるからvisualstudioでhogeを削除。それで既存のプロジェクトを追加でさっき移動したcsprojを追加すればオッケー
あとはテストプロジェクトを追加するときも.git/と同じ階層にする。

何時間もかかったのに解決策がわかってみれば単純な話だよ……
958デフォルトの名無しさん (アウアウエー Sabf-J/8e)
垢版 |
2025/02/08(土) 12:00:23.54ID:+3qBIV3va
C#はCより速いωωω=2πf
2025/02/10(月) 11:57:56.86ID:5nUxeaay0
https://agree.5ch.net/test/read.cgi/operate/1730416546/

https://agree.5ch.net/test/read.cgi/operate/1724143380/
960デフォルトの名無しさん (ワッチョイ e5c7-a1aX)
垢版 |
2025/02/18(火) 09:02:29.76ID:j/Ngy8Tp0
Winformsなんだけど
非同期の初期化処理をawaitで呼び出したい時ってコンストラクタasyncにできないけどどうするのがベスト?

FormLoadでやる
Formを返すCreateForm()的なものを作る

なんかモヤっとするんだけど他にいい方法あったら教えてください
2025/02/18(火) 09:19:19.73ID:mekUXLb1M
UI的にはとりあえず画面出して頑張ってまーす表示でもしたほうがいいんじゃね?
何分かかるのかしらんけど
2025/02/18(火) 11:03:24.07ID:WqZtGUNA0
コンストラクタに、非同期にしなきゃいけないような処理時間の読めない処理書いたらあかん
2025/02/18(火) 11:03:48.66ID:WqZtGUNA0
フォームのコンストラクタに、だった
964デフォルトの名無しさん (ワッチョイ e535-a1aX)
垢版 |
2025/02/18(火) 13:35:36.79ID:j/Ngy8Tp0
>>963
使いたい外部コントロールの初期化処理が非同期しかないのでどうしようもないのですよ
2025/02/18(火) 13:40:42.42ID:EOZTpUGhp
初期化処理じゃ無くて、新たにイニシャル処理を書いて、適当なタイミングで非同期待ちすりゃいいんだよ
966デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/18(火) 18:42:55.90ID:lFymebEC0
Loadedイベントなりで遅延初期化すればいいだけ

async voidでawaitしてエラーハンドリングは中で行う
967デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/18(火) 18:43:41.45ID:lFymebEC0
コンストラクタに副作用のある操作を書くのはNG
テストもしづらくなる
2025/02/19(水) 11:30:43.17ID:WA7OixNvM
async awaitはただのシンタックスシュガーなのでTaskそのまんま使ってwaitしたらよいけど
対象が外部コントロールなのはお作法的にはよくないね
2025/02/19(水) 11:46:36.96ID:w6OGH7sR0
そもそもコントロールの初期化を全部コンストラクタでやらなきゃいけないわけじゃないしな
970デフォルトの名無しさん (ワッチョイ e5d0-a1aX)
垢版 |
2025/02/19(水) 12:17:04.45ID:3B96FmgC0
イベントとかでやらない限りは結局どこでやっても呼び出し元を遡ってコンストラクタまでasyncが連鎖しない?
971デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/19(水) 12:20:19.78ID:DrShOcOZ0
>>970
イベントハンドラではasync void使ってやればいいんだぞ
ただエラーハンドリングはその中で行う
2025/02/19(水) 12:47:35.71ID:sDswMLTyM
自分はCreateFormでもモヤッとしないな
2025/02/19(水) 14:32:26.09ID:mGrw3aeq0
awaitは「あっ待って」で覚えた
オススメ
2025/02/19(水) 14:35:52.58ID:WpIlRpZyp
せっかくのタスク化を同期待ちしちまったら旨みが無いよなぁ
2025/02/19(水) 15:09:50.72ID:ttPeeOLl0
UIが固まらないってメリットはある
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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