1 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 19:18:41.95 ID:NohAfdfx0.net] !extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 ■Visual Studio 2022 Community(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part97 https://mevius.5ch.net/test/read.cgi/tech/1671585518/ ■次スレは>>970 が建てる事。 建てられない場合は他を指定する事。 VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
276 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 06:21:31.74 ID:I7bhR46i0.net] スペース2個インデントって言うと、XMLやHTMLを思い浮かべるな
277 名前:デフォルトの名無しさん [2024/12/22(日) 07:48:19.66 ID:dFQQq0VB0.net] >>275 違うぞ 上のはJavaやJavaScript界隈でのデファクト 下はMicrosoft系のC#とかのデファクト 公式が出してるコーディング規約がそうなってるだけ
278 名前:デフォルトの名無しさん [2024/12/22(日) 07:50:46.11 ID:dFQQq0VB0.net] >>276 例えばC#というかasp.net系だとrazor構文でhtmlと一緒にC#のコード埋め込む そうするとインデントは2の方が見やすい
279 名前:デフォルトの名無しさん [2024/12/22(日) 07:53:26.28 ID:dFQQq0VB0.net] >>271 C#はチェーンメソッドのドットを縦に綺麗に並べる文化が有るんでタブだと都合が悪い 2でも4でも良いけどスペースがデファクト
280 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 08:13:40.94 ID:96LlHbpn0.net] >>277 いやだから C#が出る前というか出始めの頃で Cプラプラ使い達が多かった時さ
281 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 08:20:56.74 ID:96LlHbpn0.net] 当時、というか関数書くときって hoge(){ …} て書くのが一般的やったん んでDelphiが出てきたらこの{}をBegin…Endで囲むから hoge() Begin … End ここらへんはVBやVBAとかにも反映されて その後C#で出した際にって感じかな
282 名前:デフォルトの名無しさん (ワッチョイ 5f95-EHcm) [2024/12/22(日) 09:15:42.08 ID:tw4BvM7X0.net] >>279 タブをインデントで使ってスペースをアライメントで使えば理論上ズレないよ Goのフォーマッタはこれに従ってるからタブ幅は任意に設定できる prettierみたいな途中で強制的に折り返すフォーマッタとは相性が悪いけど
283 名前:デフォルトの名無しさん (ワッチョイ 5f95-EHcm) [2024/12/22(日) 09:22:40.24 ID:tw4BvM7X0.net] Indent with tabs, align with spaces https://dmitryfrank.com/articles/indent_with_tabs_align_with_spaces これね これが理想だけどエンジニアのレベルが高くないとこのルールを守るのは難しいからスペースにしてるのが大半 ただしGoは強制フォーマッタでこれを解決してる 個人プロジェクトなら最初から好きなタブ幅にすればいいからタブにするメリットもあまりないし 気分でタブ幅変えれるのは結構メリットあるけどね
284 名前:デフォルトの名無しさん (ワッチョイ b310-3P54) mailto:sage [2024/12/22(日) 09:27:48.67 ID:I7bhR46i0.net] 俺はずっと>>274 の前者でインデントはタブだなぁ なおタブの幅はスペース4個分
285 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 11:59:15.10 ID:US35TJKc0.net] 「自転車置き場の屋根の色」現象発生中
286 名前:デフォルトの名無しさん (スッップ Sdaf-3P54) mailto:sage [2024/12/22(日) 13:03:56.05 ID:ci/BAnbad.net] この手の話は職場のルールで決まるから個人がどうこうは関係ないよな ただ自分のツールなんかは好きにしろだが カッコ、演算子、型と変数の宣言の間の空白などもめる話題はいくらでもある
287 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 16:36:51.22 ID:J7cuP3Nu0.net] >>285 「原子力発電所の建設」について議論したいなら付き合うよ、それで議題は?
288 名前:デフォルトの名無しさん [2024/12/22(日) 17:09:33.96 ID:dFQQq0VB0.net] まあreshaperでテーム共有設定使うだけだしな
289 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 19:48:07.14 ID:US35TJKc0.net] >>287 では失礼して Unity製ゲームのMOD開発なんかでリフレクション使いまくるのもなんかスマートじゃないから、 aelij氏のIgnoresAccessChecksToGeneratorを魔改造させてもらってフィールド含めて全パブリック&readonly解除でゲームのコードに全アクセス出来るようになってめっちゃ捗るようになったのだけど、 欲が出て標準ライブラリにも手を出したくなってやってみたらmscorlibなんかはReferenceAssemblyだからプライベートフィールドはそもそもdll内に含まれてないから書き換えられないんだよね。 ランタイム時の実体dllを決め打って渡せばstring.m_firstCharとかList<T>._sizeとかも全てアクセスできるようにはなるんだけど決め打ち渡しもスマートじゃないからどうにか自動で解決をしたい。 ILSpyやmono.cecilにはランタイム時の実体dllを特定するコードあるんだけどbuildアクションから同じ事するのって可能だろうか?
290 名前:デフォルトの名無しさん (ワッチョイ e376-ZNoy) mailto:sage [2024/12/22(日) 19:55:36.15 ID:zKZ5mRgv0.net] はい
291 名前:デフォルトの名無しさん (ワッチョイ 7b8b-vY+B) mailto:sage [2024/12/22(日) 20:10:00.61 ID:US35TJKc0.net] へー なんだかもうゲームよりMOD開発、MOD開発より開発環境開発の方が長くなっちゃってますわ
292 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 20:35:36.44 ID:96LlHbpn0.net] だって、ここ 別にゲーム開発やないし プログラムやで
293 名前:デフォルトの名無しさん mailto:sage [2024/12/22(日) 20:50:51.80 ID:F7NwxYJ7M.net] いまだにmonoで簡単にいじられまくりゲームあるのか
294 名前:デフォルトの名無しさん mailto:sage [2024/12/23(月) 00:10:04.98 ID:XKMn6iMr0.net] >>289 日本語がややこしいけど ①標準ライブラリのPrivate含む全フィールドにリフレクションを使わずにアクセスして書き換えたりしたい んで、 ②実体DLLを決め打ちで渡せばアクセスできるってところまでできてる あとは ③実体DLL取得を自動化したい ④なおかつビルドプロセスに組み込みたい ってことか MOD開発とか知らんけど面白そうじゃん
295 名前:デフォルトの名無しさん mailto:sage [2024/12/23(月) 00:36:21.82 ID:XKMn6iMr0.net] いまいち細かい要件がよくわからんけどAppDomain.CurrentDomain.GetAssemblies()で現在ロードされているすべてのアセンブリが取得できるらしいが、これ試した? 駄目だったならどういうところがダメだったのか教えてくれ
296 名前:デフォルトの名無しさん mailto:sage [2024/12/23(月) 17:33:16.62 ID:HWay8A+S0.net] >>295 要するにIgnoresAccessChecksToGeneratorの話でMSBuild内のコードとして動くものだからそれやってもMSBuildがロードしてるものが返されるだけとなる ILSpyなんかもtypeof(object)などから解決してるので上記の理屈でそのまま移植はできない
297 名前:デフォルトの名無しさん mailto:sage [2024/12/23(月) 17:42:25.10 ID:HWay8A+S0.net] >>293 マルチメインじゃなくmodフレンドリーなゲームならil2cpp化せずそのまま出してるゲームも普通に多いよ 改変やチート防止のためなら難読化含めてやったところでそこまで難易度上がらないからそれ目的ならRustみたいにカーネルドライバ付けるしかない
298 名前:デフォルトの名無しさん mailto:sage [2024/12/24(火) 18:58:01.04 ID:9YLK2p020.net] 個人開発の局所的な用途のマイナーツールの話が原発の建設並の重大事なのか ちょっと難しすぎてわかんねえな
299 名前:デフォルトの名無しさん mailto:sage [2024/12/24(火) 19:41:54.52 ID:RgkKZ0Pj0.net] 原発ってただの湯沸かし器じゃん 燃料がちょっとヤバイってだけで高尚なC#のプログラムと比較すんなよ
300 名前:デフォルトの名無しさん mailto:sage [2024/12/25(水) 08:00:53.24 ID:vP0zyznod.net] C#だってただの道具 しかもC#だけじゃお湯も沸かせない 高尚とかちゃんちゃらおかしい
301 名前:デフォルトの名無しさん mailto:sage [2024/12/25(水) 08:26:32.01 ID:ML8x6ihA0.net] ツールは手段であって目的はアクセシビリティバイパスだから言語レベルのスケールの話な 実際これ求めてる人は少なくないからUnsafeAccessorが実装された訳で てかリフレクションの方が文字列で指定してる分よっぽど危険だと思うんだけどな
302 名前:デフォルトの名無しさん mailto:sage [2024/12/25(水) 21:07:50.83 ID:G9TljzDw0.net] エロがビデオを進化させてきようにチートがソフトウェアを進化させるんだよ 湯沸かししかできない原発野郎は難しいなら黙ってろ
303 名前:デフォルトの名無しさん mailto:sage [2024/12/25(水) 21:35:48.64 ID:7oEpQVAc0.net] 煽りたいだけのやつが居着いちゃってるのか、このスレ
304 名前:デフォルトの名無しさん mailto:sage [2024/12/25(水) 21:39:40.34 ID:WXVFxdaX0.net] いつものことだよあぼーんしときな
305 名前:デフォルトの名無しさん mailto:sage [2024/12/25(水) 21:44:21.01 ID:WWJbrOfz0.net] だぁ~から ドーンおじはコテ付けろや
306 名前:デフォルトの名無しさん mailto:sage [2025/01/01(水) 16:01:04.94 ID:nGCOTvnw0.net] Enum.IsDefined(enumType, intValue)ってボックス化する? AIに聞いたら最初は「ボックス化しない」とか言われたんだけど、第2引数がobject型として受け取ることを指摘したら「ボックス化するかもしれません」みたいな曖昧な返答されてよく分からなくなってきた
307 名前:デフォルトの名無しさん mailto:sage [2025/01/01(水) 16:03:34.19 ID:zfs+VkVC0.net] object型ならするよ .NETのバージョンにもよるけどgeneric版の方が型がコンパイル時解決されるからパフォーマンスは良い
308 名前:デフォルトの名無しさん mailto:sage [2025/01/01(水) 16:07:11.80 ID:nGCOTvnw0.net] だよね ありがとう
309 名前:デフォルトの名無しさん mailto:sage [2025/01/01(水) 16:23:43.79 ID:nGCOTvnw0.net] 確かにジェネリクスでstruct制約付けたらボックス化回避できそう ありがとう public TEnum ConvertToEnum<TStruct, TEnum>(TStruct value) where TStruct : struct where TEnum : Enum { if (!Enum.IsDefined(typeof(TEnum), value)) throw new ArgumentException(); return Unsafe.As<TStruct, TEnum>(ref value); }
310 名前:デフォルトの名無しさん [2025/01/01(水) 22:57:38.89 ID:tBHA6FMH0.net] JetbrainsやILSpyでIL見てboxあるかどうかみればいいんじゃね
311 名前:デフォルトの名無しさん mailto:sage [2025/01/31(金) 11:32:40.83 ID:jXb+sjQI0.net] ハック的なことなんだけどインスタンスのオブジェクトヘッダに埋め込まれるクラスハンドルへのポインタ?をインスタンス無しで得る方法って無いかな typeof(MyClass)ってすると正にそのポインタが「mov rcx, 7FFB716DE758 -> call clrのtype取得関数」って感じのアセンブラが生成される訳だけど、その7FFB716DE758を得たいんだよね インスタンスがあればUnsafeライブラリ用いて簡単に得られるのだけど
312 名前:デフォルトの名無しさん mailto:sage [2025/01/31(金) 11:34:05.08 ID:jXb+sjQI0.net] 文章修正してたら日本語おかしくなったけどもし知ってる方いたらヒントでも何でも教えていただきたい
313 名前:デフォルトの名無しさん mailto:sage [2025/01/31(金) 12:00:57.31 ID:ejyfLYzx0.net] GetTypeで得られるものとは違うわけ?
314 名前:デフォルトの名無しさん mailto:sage [2025/01/31(金) 12:51:25.22 ID:jXb+sjQI0.net] >>313 GetTypeやtypeofで得られるものはあくまでもType型のマネージドインスタンスだから全く違う だけど逆アセをするとtypeof()時には即値でハンドルへのポインタ?がアセンブラコードとして埋め込まれてるので内部的にはめちゃくちゃ簡単に得る方法があるはずなんだよね
315 名前:デフォルトの名無しさん mailto:sage [2025/01/31(金) 14:52:24.28 ID:jXb+sjQI0.net] 一応自己解決だけどGetTypeやtypeofで得られたTypeインスタンスから「type.TypeHandle.Value」で希望のものは得られた 本来即値で得られるはずなのに冗長でもやもやはするが
316 名前:デフォルトの名無しさん mailto:sage [2025/01/31(金) 15:09:15.71 ID:gpRv5mHv0.net] ChatGPTに聞いたら同じ答えが返ってきたけどRuntimeTypeHandle.Valueは環境によってメソッドテーブルへのポインタじゃなくEETypeへのポインタや実装依存のメタデータへのポインタになる場合もあるから自分で確認しろよとのこと
317 名前:デフォルトの名無しさん mailto:sage [2025/02/01(土) 06:49:44.36 ID:LNgv56j/0.net] そらJITなんだから・・・
318 名前:デフォルトの名無しさん mailto:sage [2025/02/01(土) 10:13:37.11 ID:m26c//aC0.net] いやJITは関係ないぞ
319 名前:デフォルトの名無しさん (ワッチョイ 9a8b-IJXt) mailto:sage [2025/02/01(土) 11:06:41.29 ID:dQW8A9nv0.net] JITだろうが何だろうがconst intなんかは即値で埋め込まれるしね だからクラス名.TypeHandleValueみたいなconst持っててくれたら嬉しいんだけど需要ほぼゼロすぎるか
320 名前:デフォルトの名無しさん (ワッチョイ 1a9d-natb) mailto:sage [2025/02/01(土) 12:12:47.05 ID:m26c//aC0.net] ん?即値で得られない理由の話だったか そっちならJIT関係あるわな
321 名前:デフォルトの名無しさん (ワッチョイ 9a8b-IJXt) mailto:sage [2025/02/01(土) 12:17:46.65 ID:dQW8A9nv0.net] いや関係ないよ なぜなら逆アセすれば分かるけど思いっきりレジスタ長以下のconst同様の挙動を見せてるからね typeof時にね
322 名前:デフォルトの名無しさん mailto:sage [2025/02/01(土) 12:48:59.04 ID:MtSj47O+0.net] 逆アセw
323 名前:デフォルトの名無しさん mailto:sage [2025/02/01(土) 12:53:04.51 ID:LNgv56j/0.net] アドレスとかプロセス起動のたびに変わることは無いんだっけ?
324 名前:デフォルトの名無しさん mailto:sage [2025/02/01(土) 12:59:03.20 ID:dQW8A9nv0.net] >>323 .NETの場合は当然変わるしネイティブでも設定次第では変わり得る でもそもそもC#やJavaは実行時にその都度機械語を組み立てて行く訳だから、であればその都度埋め込めばいいだけの話
325 名前:デフォルトの名無しさん mailto:sage [2025/02/01(土) 13:11:42.17 ID:LNgv56j/0.net] なら結局、ユーザークラスじゃ都度変わりうるってことじゃ?
326 名前:デフォルトの名無しさん mailto:sage [2025/02/01(土) 15:14:32.83 ID:XDtywhx90.net] >>321 それはJITやAOT後のものを見てるからでしょ JIT/AOT時に異なる相対アドレスに配置できる余地を残すためにC#/ILの段階では固定しない
327 名前:デフォルトの名無しさん mailto:sage [2025/02/02(日) 01:00:15.78 ID:U03i5Xdj0.net] ILの段階で定数になるなら決め撃ちで問題ないだろ
328 名前:デフォルトの名無しさん (ワッチョイ 7f10-cJwu) mailto:sage [2025/02/02(日) 06:57:31.12 ID:VLFyjNJe0.net] ユーザークラスがILの段階で決め打ちになるわけないだろ
329 名前:デフォルトの名無しさん mailto:sage [2025/02/02(日) 10:55:04.54 ID:NGhOMzti0.net] ユーザークラスだろうが何だろうが別に関係ないし IL段階で定数になる必要もなくて事実として実行時に機械語になるタイミングで定数化されるんだよ プログラマがその定数にアクセスする手段がないだけで
330 名前:デフォルトの名無しさん mailto:sage [2025/02/02(日) 11:18:20.90 ID:RNSPFW0b0.net] 実行時にならんと決まらんものは定数じゃねぇ
331 名前:デフォルトの名無しさん mailto:sage [2025/02/02(日) 12:43:09.18 ID:NGhOMzti0.net] 定数ってか再三言ってるけど即値だな
332 名前:デフォルトの名無しさん mailto:sage [2025/02/03(月) 22:15:38.62 ID:EtXs2rHFM.net] インスタンスの型の厳密なチェック typeof (X) == x.GetType() やジェネリック型のチェック typeof (T) == typeof (X) はJITで最適化されるから、 質問者のケースがもしこれらに該当するなら変なハックは必要ない
333 名前:デフォルトの名無しさん mailto:sage [2025/04/14(月) 17:39:25.74 ID:XKwEHxpo0.net] Task<T>を返す非同期メソッドをUIスレッドで呼び出して結果を取得したいのですがどうすればいいのでしょうか? ConfigureAwait(false)の後やTask.Runでスレッドプール上?で実行されてる コード内からメソッドをUIスレッドで呼んで結果を取得したいのです
334 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 05:53:28.46 ID:HaWtxdw70.net] イマイチ質問が把握できないがこういうことか? UIスレッドでTaskScheduler.FromCurrentSynchronizationContext();してTaskSchedulerを確保しておく UIスレッドで実行したいメソッドは上記TaskSchedulerを使ってStartするTaskとして実行する public Form1() { this.Button1.Click += ExecuteAsync; } async void ExecuteAsync(object? sender, EventArgs e) { var scheduler = TaskScheduler.FromCurrentSynchronizationContext(); await Task.Run(async () => { using var logger = new Logger("Task"); var task = Task.Factory.StartNew<Task>(() => SetTextAsync(), CancellationToken.None, CreationOptions.None, scheduler); await task; await task.Result; }); } async Task SetTextAsync() { await Task.Delay(1000); this.Text = DateTime.Now.ToString("HH:mm:ss"); }
335 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 05:58:12.67 ID:HaWtxdw70.net] あ、TaskCreationOptionsのTaskが抜けてる… async Task SetTextAsync()の代わりにasync Task<string> GetTextAsync()だったら StartNew<Task<string>>にしてvar text = await task.Resultすればいい
336 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 07:31:16.54 ID:QZV5gxIh0.net] ああ、ありがとうごいます それっぽいです 要はスレッドプールなどで実行されてるメソッドから 途中でダイアログなどを出してユーザのアクションの結果で更に処理を 進めるかキャンセルするかを決定したかったにです 同期コンテキストは調べたのですがこのPostなんたらじゃできないなと.. TaskSchedulerの方から攻めるのですね ありがとうございます
337 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 07:41:21.34 ID:QZV5gxIh0.net] ボタンなど押して非同期メソッドを呼び出す この時、非同期メソッドには介入が必要な時に呼び出される非同期コールバックを渡せるようにする 呼び出し側で、非同期コールバックとして ダイアログなどをだしたりする ダイアログの表示などはUIスレッド実行したかった こんな感じでした
338 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 15:31:47.59 ID:yzNZC+ym0.net] BOOL TestFunc(DWORD dwType, LPBYTE pBuffer, LPDWORD pcbBufSize); dwType:欲しいデータのタイプコード pBuffer:要求したデータを入れるバッファへのポインタ pcbBufSize:pBufferが指すバッファのサイズ 例えば↑のような関数をエクスポートしてるアンマネージDLLがあって DllImportする時のプロトタイプ宣言ってどう書いたらいいんでしょ?
339 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 15:33:52.84 ID:yzNZC+ym0.net] LPDWORDはref uintでいいのかなと思うけど LPBYTEとか、それこそLPVOIDだのハンドル系受け取る引数なんかはどう宣言したものかよく解らなくて
340 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 19:05:55.86 ID:HaWtxdw70.net] 典型的にはこう bool TestFunc(uint dwType, byte[] pBuffer, out uint pcbBufSize); ref/outで宣言すると使いやすいけどNULLを渡せなくなるってのが問題になったりすることもある ケースバイケースなので一概には言えない ポインタが絡むなら誰がメモリ確保して誰がどうやって解放するのかを把握してないといけない場合もある
341 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 19:58:01.06 ID:VD2CYluqM.net] 第三引数は普通はoutじゃないきがするけど
342 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 20:27:15.14 ID:qW3EbLcWM.net] outだと呼び出し元からバッファサイズを渡せないな
343 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 20:47:35.76 ID:JiAmFx7+0.net] refじゃあかんの?
344 名前:デフォルトの名無しさん mailto:sage [2025/04/16(水) 20:48:46.57 ID:yzNZC+ym0.net] >>340 おぉ、ありがとう ちょっとそれ元に弄ってみるます
345 名前:デフォルトの名無しさん [2025/04/20(日) 10:42:31.48 ID:T4EZ0xEH0.net] refとかout使うと機械語的にはゴミラッパーが生成される ついでにboolも実はネイティブ型ではないので同様にゴミが生成される 多少可読性や安全性を犠牲にして良いなら int TestFunc(uint dwType, byte* pBuffer, uint* pcbBufSize)とすればC/C++と遜色ない機械語になる 戻り値はintなので != 0としてbool判定をする手間がかかるけどね ついでに.NETCore系統で且つ内部でIOなどを行わずに計算量が少なく割とすぐ戻る事が確定している場合は[DllImport("native.dll"), SuppressGCTransition]とすると尚良し
346 名前:デフォルトの名無しさん [2025/04/20(日) 10:47:34.35 ID:T4EZ0xEH0.net] もしネイティブ側の戻り値がBOOLではなくboolならC#側はbyteにすればいい boolって実は結構罠だからな
347 名前:デフォルトの名無しさん mailto:sage [2025/04/21(月) 11:37:03.90 ID:ed9AfVbw0.net] CharGPTの回答 WinAPI型名 意味 C# 対応型 備考・使い方例 BYTE 8ビット符号なし整数 byte 0〜255 WORD 16ビット符号なし整数 ushort 0〜65535 DWORD 32ビット符号なし整数 uint よく使われる LONG 32ビット符号付き整数 int 一部APIでは戻り値で使用 ULONG 32ビット符号なし整数 uint DWORDと同義扱いされることあり BOOL 論理値(実際はint型) bool または int C#では [MarshalAs(UnmanagedType.Bool)] を使うと便利 LPSTR ANSI文字列へのポインタ string (MarshalAs(UnmanagedType.LPStr)) LPCWSTR Unicode文字列定数へのポインタ string (MarshalAs(UnmanagedType.LPWStr)) 通常はこれを使う LPBYTE BYTEへのポインタ IntPtr / byte[] / byte* C#で配列やポインタとして使う LPDWORD DWORDへのポインタ ref uint / out uint / IntPtr APIによって使い分け HANDLE 汎用ハンドル IntPtr ハンドルは全部 IntPtr PVOID/LPVOID 任意のポインタ IntPtr Voidポインタの表現 CHAR 1バイト文字 byte(ANSI)/ char(Unicode) ANSI文字列なら byte TCHAR Unicode/ANSI切り替え可能文字型 char または string Unicode前提なら char/string
348 名前:デフォルトの名無しさん mailto:sage [2025/04/21(月) 14:43:06.51 ID:AUqiwuPT0.net] 何のためのVOIDポインタかで変わるしIntPtrで良いもんでもないわ まぁなんだ、CharGPTなんて言うアホは黙っとけw
349 名前:デフォルトの名無しさん [2025/04/22(火) 19:34:21.37 ID:rMo0RJWh0.net] Copilot「僕の出番ですね!」
350 名前:デフォルトの名無しさん mailto:sage [2025/04/23(水) 08:49:37.84 ID:eLYGqJZZ0.net] 去ね
351 名前:デフォルトの名無しさん [2025/04/23(水) 12:17:26.63 ID:snQ3Sxp8d.net] wchar : 「神は我を見放したのか」
352 名前:デフォルトの名無しさん mailto:sage [2025/04/23(水) 20:01:13.83 ID:WPvg2tW3M.net] >>347 ChatGPTはc#弱いな
353 名前: mailto:sage [2025/04/24(木) 01:47:59.03 ID:MPcZRdS90.net] >>345 最近のC#はMIL(IL?)でなくマシン語を直接()生成するようになったのですか
354 名前:デフォルトの名無しさん [2025/04/24(木) 21:13:01.92 ID:985jarF60.net] >>353 最近は native AOT といってそういうことができる リフレクションが使えないなど制限もあるけど 元のレス先の345は、たぶん native AOT とか関係なく、中間言語が生成するコードも指して機械語と言ってると思う
355 名前: mailto:sage [2025/04/24(木) 21:27:22.97 ID:WNuC4TAo0.net] >>354 なるほど、ありがとうございました!!
356 名前:デフォルトの名無しさん [2025/04/25(金) 11:23:25.63 ID:reKQm/Xa0.net] >>354 ILの話はしてない nativeAOT及びJITが最終的に生成するアセンブラを指して言ってる パフォーマンス目的でC/C++と連携しようとすると返ってパフォーマンス落ちる事も多いからな 機械生成のゴミラッパーが挟まると呼び出しコストがdll内部のルーチンより1万倍掛かるとかザラにあるし
357 名前:デフォルトの名無しさん mailto:sage [2025/04/25(金) 12:53:18.17 ID:RL99gkZ90.net] まぁ、アンマネージ呼び出しをパフォーマンス目的でやるもんじゃないしな
358 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 16:38:33.85 ID:jnYDAPp70.net] LibraryImport属性を使うとDllImport属性より最適化されたコードが出力されたりするの?
359 名前:デフォルトの名無しさん [2025/05/03(土) 12:39:00.86 ID:GwMmJ/YG0.net] オリジナルのDataGridViewの列を作りたいんですが、デザインビューのDataGridViewからオリジナルの列を追加する方法ってありますか?
360 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 14:19:24.20 ID:ZbkD0HOB0.net] >>359 オーナードローしたいという事?
361 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 14:43:58.59 ID:rfaECn6+M.net] 列A 列Bがあって 列C作ってA+Bを表示したいと言うことでは?
362 名前:デフォルトの名無しさん (ワッチョイ 7761-tU9d) [2025/05/03(土) 15:51:35.38 ID:GwMmJ/YG0.net] DataGridViewColumnを派生させたオリジナルの列をフォームデザインビューから列に追加したいんです
363 名前:デフォルトの名無しさん [2025/05/03(土) 16:55:23.30 ID:h9Jrb8E+0.net] lこの辺りを駆使してDataGridViewColumnクラスを作るとか https://dobon.net/vb/dotnet/graphics/drawcontrols.html
364 名前:デフォルトの名無しさん [2025/05/03(土) 18:56:11.65 ID:Q4RX0Sa/0.net] スマホとPCの作業を効率化したい--「Copilot Vision」の便利な8つの活用例 2025-05-03 07:00 https://japan.zdnet.com/article/35232549/ 1 プログらまーまこれを改造してるので上記以外の状態でも使用できるようにしている 2 すでにプログラムがあるので1〜コードを作成する必要が無い ボイス・トォ・スカルの本態が一般パソコンにまで来たのでつい買い捨てができるようになった マネーロンダリング 談合 インサイダー などがはかどるといわれる
365 名前:デフォルトの名無しさん [2025/05/05(月) 08:51:14.85 ID:wERx/Nt90.net] “イリヤ神”がまたやった 動画生成AI「FramePack」が革命的なワケ 2025年05月05日 07時00分更新 https://ascii.jp/elem/000/004/267/4267160/ 4月17日に登場した動画生成AIプログラム「FramePack(フレームパック)」が世界的に衝撃を与えています。PCローカル環境で動画AIを動かすには、少なくともビデオメモリー(VRAM)が12GBあるビデオカードを搭載していないと難しいというのが常識でした。ところが、VRAM 6GBでも安定的に動作させられるため、一気に動画AIの裾野を広げそうです。開発したのは、画像生成AI分野で「ControlNet」や、使いやすいツール「Fooocus」などを開発してきたことで知られる、スタンフォード大学に在籍中のIllyasviel(イリヤスフィール、以下イリヤ)さん。既存の方法論にまったく違ったアプローチでブレイクスルーを引き起こす、“イリヤ神”のアプローチに再び注目が集まっています。 中略 AI動画を作ってみたいけれども、スペックが足りないために諦めていたという人が次々に自前の環境で試すようになってきました。既にワンパッケージでインストールできる環境も整えられているため、スタートも簡単です。様々なファイルをダウンロードしてくるため、初期設定は2時間くらいは見ておく必要があるものの、圧倒的にハードルが下がりました。
366 名前:デフォルトの名無しさん [2025/05/07(水) 15:21:51.01 ID:Nuqzm3Wk0.net] 下記は全て2025年5月7日の記事 OpenAI、ChatGPTの6つのモデルの違いと適切なプロンプトを解説 https://news.mynavi.jp/techplus/article/20250507-3275757/ Microsoftの新規のソースコードの約3割をAIが生成、Nadella氏が明かす https://news.mynavi.jp/techplus/article/20250507-3271749/ スコットランドの住民を悩ます謎の怪音「ヘブリディアン・ハム」の正体はいまだ不明 https://karapaia.com/archives/507130.html
367 名前:デフォルトの名無しさん mailto:sage [2025/05/07(水) 16:08:58.47 ID:9Z9/upda0.net] 余所でやれカス
368 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 10:26:27.15 ID:8ptxnmrna.net] 余所でやれとあなたが言ったから 色んなスレにマルチされたので 5月7日はマルチ記念日
369 名前:デフォルトの名無しさん [2025/06/16(月) 03:18:14.57 ID:BRbK5XdC0.net] IDisposableを実装したクラスのインスタンスがもし破棄されていたら再度生成するために、 if(instance.IsDisposed || instance == null){ instance = new MyClass(); } という書き方してるんですが、(obj != null)の部分って意味ないんでしょうか?
370 名前:369 mailto:sage [2025/06/16(月) 03:32:02.55 ID:BRbK5XdC0.net] すみません。ChatGPTが下記の回答をくれました。 instance が null の場合、insntace.IsDiposed の評価時に NullReferenceException が発生してしまうので、 if(instance == null || instance.IsDisposed){ instance = new MyClass(); } にしなければならない。 必要かどうか。 設計上 instance が null になる可能性がある場合、null チェックは必要。 絶対に null にならないように管理されている場合、null チェックは不要。 「instance がまだ生成されていない、または使えない状態になったときに再生成する。」 という目的が明確にある場合、妥当で意味のある書き方です。
371 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 10:34:42.11 ID:Nk3UlLjY0.net] そもそも変数を使いまわそうとしているのが間違い using等でスコープと連動させて管理すべき
372 名前:デフォルトの名無しさん [2025/06/16(月) 12:34:32.54 ID:rtKSn8210.net] >>370 もうほんのちょいだけ突っ込んだ解説すると、||演算子は左から評価を行い、左がtrueになった時点で右は評価を行わない ゆえに、nullが渡ってくる可能性がある場合には~というChatGPTの回答に繋がる
373 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 14:51:53.15 ID:IaYLbsBg0.net] >>372 ショートサーキットの有無は全然関係ないだろ ChatGPTのダメ回答にさらに間違ったダメ解説を付け足すなよ
374 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 17:32:21.61 ID:MOf8oPnJ0.net] 草
375 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 18:04:45.11 ID:wwT4Yc020.net] >(obj != null)の部分って意味ないんでしょうか? (obj != null)の部分が見当たらない問題
376 名前:デフォルトの名無しさん [2025/06/16(月) 19:27:49.53 ID:rtKSn8210.net] フェイルセーフで実装するコードに対して、全体見えないのに設計直せは草しか生えない。ChatGPTでもやらん暴挙 その上でなぜ左右逆だといけないのかの解説に対してショートサーキットの有無は関係ないとかガチで草