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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0fe3-wadS)
垢版 |
2022/02/09(水) 23:13:39.45ID:1A90hyai0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part153
https://mevius.5ch.net/test/read.cgi/tech/1639403601/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2022/03/19(土) 15:09:08.63ID:DtRySdf10
取り外しやったら物理的に外さないとだめじゃなかったっけ?
ドライバの無効→有効じゃだめなん?
2022/03/19(土) 15:29:43.49ID:oVqI+gO+0
vectorにあるunhotplugとeasterっていうのを呼ぶツール作ればいけるのでは
2022/03/19(土) 20:19:19.80ID:VZmL8CeM0
おせっかいというか余計なアレやけど、
USBを擬似的に抜き差しさせるプログラム作って新たな障害の素を作るより、
USBを使わない、ネットワークストレージに置き換えるとかの方法で、
根本的な状況を改善するほうがいいんじゃないかな。。
2022/03/19(土) 20:33:21.04ID:D/0X5tNm0
USBに何か挿されたよシグナルをOSに送ればいいんじゃね
2022/03/20(日) 00:37:40.27ID:J9wgpmKzM
自分ところの放置鯖は休止復帰後にUSBの再認識をバッチでやってた
時々USB死んでマウスが動かなくなるから
やり方は忘れた
2022/03/20(日) 01:21:44.08ID:RMYANpbIa
usbメモリ直はムリだと思うからdevconいじくりまわしてワンチャンかな
2022/03/20(日) 22:42:36.53ID:0372vEy10
wmiからPnPEntity使った方がまだやりやすそう
2022/03/21(月) 06:21:02.19ID:B3XvFTTu0
そもそも何故USBを抜き差しした事にしたいのかわからん
2022/03/21(月) 08:11:52.79ID:idY8N9Dd0
スマートコンセントにアダプター式のUSBハブ繋いで電源ON/OFFすればいいんじゃねw
2022/03/22(火) 00:17:50.57ID:gjcW4Tfu0
まあハードで細工前提なら間にマイコンなりでVCCをスイッチすればできますけどね
ソフトでできないかという話なので
devconでdisable→enableは期待した動作にはならなかったので他の方法を考えて見ます
2022/03/22(火) 00:39:31.18ID:k34A21mc0
目的を達成出来れば何でもいいって話だと思ったんで、違うならスルーしてくれ
262デフォルトの名無しさん (ワッチョイ f154-B0ie)
垢版 |
2022/03/22(火) 03:13:27.47ID:dk64x/8s0
Disposeパターンの学習中なのですが、マネージリソースとアンマネージリソースの見分け方が分からないのですが、
よい解説サイトを教えて頂けないでしょうか。
2022/03/22(火) 03:27:22.28ID:Fi74risNa
難しく考えることない。この程度の見分け方で十分だろ

class A : IDispose ←宣言を見たときにIDispose派生ならアンマネージド

A a = 〜
a. ←「.」を打ち込んだ時にDisposeが表示されたらアンマネージド

using (var a = new 〜) ←usingで囲んでエラー出たらマネージド
2022/03/22(火) 07:12:28.40ID:p81GCeRAM
Disposeの中身が

MessageBox("error",MB_ICONERROR);

のみでアンマネージド?
2022/03/22(火) 08:11:26.68ID:Fi74risNa
Disposeの中身が空でもアンマネージなんだよ。細かいこと気にするな
2022/03/22(火) 08:33:08.50ID:kAgwAO/L0
いちいち継承元全部辿ってIDisposableあるか確認して手動で開放しないとリークしまーすとかいう欠陥言語
2022/03/22(火) 08:35:18.57ID:OaCGWLhd0
win32リソースかどうかなんか用途ですぐわかるだろ…
2022/03/22(火) 08:39:28.18ID:kAgwAO/L0
書いてから気づいた>>263の方法で確認すりゃまだ楽か
だがしかし、実装を強制できないからdisposeしてなくても気づけないってのがな
2022/03/22(火) 08:41:02.24ID:kAgwAO/L0
>>267
そんなの場合による
2022/03/22(火) 08:51:45.38ID:OaCGWLhd0
キミのように脳に欠陥があるなら仕方がない。使い終わったら常にdispose()呼ぶだけの話。
2022/03/22(火) 09:03:08.94ID:kAgwAO/L0
>>270
2022/03/22(火) 09:22:16.11ID:OaCGWLhd0
( ´_ゝ`)プッ
2022/03/22(火) 10:11:19.03ID:kAgwAO/L0
使い終わったら常にdispose()呼ぶだけ!キリッ
話の本質わかってなくて草生える
2022/03/22(火) 10:34:09.76ID:G7lfoYcY0
Disposeでマネージ/アンマネージってことは
protected virtual Dispose(bool disposing)
のdisposingの真偽で何を解放すべきかってことだよね

.NETのオブジェクトとして存在しているモノがマネージリソース
大体は自分がメンバに持ってるIDisposableなオブジェクトを意味する
これらはdisposing==trueのときだけDisposeすればいい

アンマネージリソースはWindowsのAPIとかで直接確保したデバイスコンテキストとかメモリ
大抵はIntPtr型で保持している
こういうのはそれぞれのリソースの解放方法に従った方法で直接解放する
これらはdisposingに関わらず常に解放する
2022/03/22(火) 10:35:59.07ID:OaCGWLhd0
> いちいち継承元全部辿ってIDisposableあるか確認して手動で開放しないとリークしまーすとかいう欠陥言語
分かってるよ。話の本質は、馬鹿がヘジが開発した言語にマウンティングした、ということだろう。
だがその試みは失敗した。それだけ。

なんならwin32リソースについて言語はどう管理すべきいくらでもキミの意見を語っていいんだぜ?
だがキミからは何も出てこない。知ったか初心者だからだ。
2022/03/22(火) 11:53:43.00ID:myN/pITuM
そうカッカすんなよおっさん見苦しいぞ
2022/03/22(火) 12:15:11.68ID:kAgwAO/L0
>>275
顔真っ赤で草
2022/03/22(火) 12:31:50.91ID:OaCGWLhd0
初歩的なリソース管理程度で発狂して言語貶してるド初心者に
馬鹿にされてキレるわけないだろう。馬鹿かこいつ、としか思わん。
2022/03/22(火) 15:52:49.70ID:XhX0v2Lu0
その調子で血管切って死なねーかな
2022/03/22(火) 17:16:17.21ID:pk95uqSaM
あああああああああああああああああああああああああああああああ!!!!!!!!!!!(ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!)
2022/03/22(火) 19:17:57.13ID:kPYOUkgu0
そもそもc#のデストラクタが産廃だからあてにしてる動作だろ
2022/03/22(火) 19:49:04.13ID:1zUmccnld
GC(マークアンドスイープ)+FinalizeとDisposeの相性が悪いだけだろ
C#に限った話じゃない
2022/03/22(火) 20:58:45.96ID:hNvbiY4S0
exe終了したら何もかも解放されるんでしょ?
2022/03/22(火) 21:05:08.48ID:HvRJN3MAa
基本的には終了で開放だけど、すべてが開放されるとは限らない
よくあるのがexe内部でexcel使ったら、exe終了してもexcelのプロセス残ったままみたいなやつ
2022/03/22(火) 21:09:25.23ID:kAgwAO/L0
ようやく>>282みたいなまともな回答出てきて嬉しい
スコープ外れたタイミングでデストラクタ呼び出し保証しなかった理由ってどこかに解説とかないのかな?
C#の現状のデストラクタとかガチゴミじゃん
2022/03/22(火) 21:19:04.18ID:Ky9cYioTM
またいつもの質問者そっちのけでの罵倒合戦かよ・・・・・

アンマネージドリソースは文字通りC#の管理下にない(un-managedな)リソース
具体的にはunsafeで確保した配列・ポインタやWin32APIを呼び出して確保したIntPtrなど
Disposeのタイミングで適切な手法で(それこそWin32APIを呼ぶなどして)リソース解放しないとメモリリークする

マネージドリソースはC#の管理下にあるリソース全般
FileStreamやDbConnection、Bitmapオブジェクトなどもこれ
そういうオブジェクトをクラス内のメンバ変数で持ってるなら、Disposeメソッド内で
それらのメンバ変数のDispose()を呼ぶことでリソース解放するお約束になってる


>>263の説明はデタラメもいいとこだしそもそも「IDispose」ってなんだよ
>>263のデタラメに気付かずC#を欠陥言語呼ばわりするために乗っかった>>266の言ってることも同じくデタラメなんだけど
こいつは罵倒マウンティングすること自体が目的でわざとデタラメに乗ってるのかそれとも素で理解してないのかは分からん
2022/03/22(火) 21:23:17.10ID:0A7XAa2y0
C++/CLIならデストラクタが使えるから問題ないんだよな。捨てたのはもったいない。
2022/03/22(火) 21:31:04.74ID:kAgwAO/L0
それな
GCとかの仕組み上どうしても無理でしたってんなら納得逝くんだけどその辺知りたい
2022/03/22(火) 21:39:13.30ID:6LsnJNlYd
>>285
スコープ外れたってどうやって判断するの?
2022/03/22(火) 21:39:56.93ID:3weeWjHs0
というかここら辺はサンプルというか、実際使ってるコードみないとピンとこんよな
これは意味あるIdisposable、こっちは意味ないとかで
2022/03/22(火) 21:41:21.16ID:1zUmccnld
>>287
ref class C{
~C(){} // Destructor
!C(){} // Finalizer
};
のコンパイル結果が
// C# DLL
class C:IDisposable{
Dispose(); //Destructor???
~C();//Finalizer
}
であることをご存知でない?
2022/03/22(火) 21:46:59.16ID:OaCGWLhd0
C#を欠陥言語呼ばわりするだけあってGCが何かすら知らないアホの子だったとさ。
ヤレヤレ ┐(´ー`)┌ マイッタネ
2022/03/22(火) 21:51:59.68ID:kAgwAO/L0
>>289
言語自体の実装は見たこと無いからサパーリ
せやから解説とかしてる人いないのかなって
2022/03/22(火) 21:52:39.06ID:kPYOUkgu0
>>283
されねーんじゃねーか?
俺はあふれるまで動かないって言ってるじゃん

msdnより

ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。

システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。

マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。

GC.Collect メソッドが呼び出されます。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
2022/03/22(火) 21:53:03.08ID:0A7XAa2y0
>>291
スコープを外れたときに自動的にDispose()が呼ばれるから問題ないってことなんだが。
2022/03/22(火) 22:22:58.92ID:1zUmccnld
>>288
お前はメモリとかリソースの管理を他の言語でどうしてるかもっと勉強するべきだ

C/C++がユーザーに全部丸投げしてるのがいい加減辛いので言語側が管理すればいいんじゃね?ってのがGC。
GCの方式で主流なのは参照カウント方式とマークアンドスイープ方式。
参照カウント方式は循環参照(this._obj=this)があると回収されないから、
C#多少大きめのコストを支払ってでもマークアンドスイープ方式にした。

リソース解放のタイミングをコントロールしたけりゃIDisposable使え
解放漏れの保険でファイナライザ使え
https://ufcpp.net/study/csharp/rm_disposable.html

C#1.0のリリースが2002/02だから当時はそれでも充分だったんだろう
2022/03/22(火) 22:39:21.44ID:Ky9cYioTM
そもそもC#は「デストラクタなぞ使うべきではない」っていう思想だし
それゆえにリソースの解放はデストラクタではなくDispose()で行う
(万一Dispose()を呼び忘れた場合に備えて>>291の実装でデストラクタで救済するけど、これも
パフォーマンス上好ましくないんでDispose(bool disposing)みたいなDisposeパターンの書き方で処理を最小化する)
って方針で首尾一貫してるんだけどさあ
その方針にケチつけてデストラクタがクソだのIDispose確認がメンドクサイだの言ってる人たちのほうがおかしいだけなんだよ

>>273
「話の本質わかってなくて草生える」
とか書いてるけどまさにそのとおり
2022/03/22(火) 22:49:13.09ID:Ky9cYioTM
もひとつ気になってたんだけど、Dispose()呼び出しの必要性をいちいち確認して書くのが大変っていうけどホントかよ?

マネージドリソースを扱うにしたって、ローカル変数ならusingで書けばDisposeいらないよね?
最近のC#のバージョンなら中括弧で囲う必要すらなくなったよ?
クラス内のインスタンス変数だとしてもさあ、
DIで初期化するフィールドならDIコンテナに任せればDispose()呼ばなくていい
自前で生成初期化するフィールドだとしてもその個数もたかが知れてるしDisposeの要否も明快に分かるでしょ

それとも、自分で書いてるクラスの中がごちゃごちゃでDisposeが必要な変数がどれか把握しきれないってこと?
そんなクソみたいなゴミ溜めクラスしか書いてないのだとすれば、言語仕様じゃなくてクラス設計/実装能力の問題だと思うんだよね
2022/03/22(火) 22:56:19.99ID:Ky9cYioTM
ごめん嘘書いた
>>291の実装はC++/CLIの話だったのか(ごめんC++/CLIはやったことがないので判らない)
Disposeパターンのデストラクタと似たようなものだと思い込んで混同しちゃってた
2022/03/22(火) 22:56:39.59ID:OaCGWLhd0
> そもそもC#は「デストラクタなぞ使うべきではない」っていう思想だし
聞いたことねーなw
デストラクタは非同期ですってだけだ。同期したいならdispose使えという単純な話でしかない。
2022/03/22(火) 23:25:36.30ID:Ky9cYioTM
あれどっかに書かれてたと思ったんだが・・・と思って調べたら
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/finalizers#explicit-release-of-resources
「高額な外部リソースを使用している場合」という限定で「明示的に解放する手段を用意することが推奨されます」
とはあったけど、デストラクタなど使うべきではないとまでは書かれてなかった
たしかにちょっと踏み込みすぎたか

てか「デストラクター」じゃなくて「ファイナライザー」って呼ぶように変わったのね・・・いつから?
そのわりに
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/language-specification/classes#destructors
では「デストラクター」のままだったりしてるけど
2022/03/22(火) 23:40:08.97ID:OaCGWLhd0
元々finalizeはCLR側の用語でデストラクタはC#側の用語。
MSのゆとり化が進んで馬鹿すぎて区別できなくなったんだよ。
2022/03/22(火) 23:47:20.01ID:3UvLvdTM0
デストラクタを実装したクラスはガベコレの効率が落ちる(世代があがる)からなるべく使うなって話だったはず
2022/03/23(水) 00:14:26.29ID:fh4EIdzSM
>>302 >>303 の書き込みをヒントに検索したら
https://ufcpp.net/study/csharp/rm_gc.html?sec=cost-to-finalize#finalize
このページにたどり着いて
デストラクタ→ファイナライザに呼び名が変わる理由もデストラクタのコストが極大なことも分かった
GC.SuppressFinalize()っていままで意味が分からないまま機械的に書いてたけど大事だったのね
いろいろ賢くなれた、ありがとう
2022/03/23(水) 06:24:39.80ID:XsByKBbP0
ならなくていいから直近50レス以内で俺以外に書き込んでるやつは直ちに全員頭かち割って中央線の始発に飛び込んで死ね
2022/03/23(水) 06:36:55.59ID:Br4OtuZoM
長文ゲェジ共空気読めよ
(ユーザーが)欠陥言語
確かに間違ってねーな
2022/03/23(水) 23:47:04.44ID:blfYR8q/M
デストラーデがどうしたって?
2022/03/24(木) 04:45:47.25ID:AIr8SSYM0
ゼントラーディがキュンキュン☆
2022/03/27(日) 19:21:45.49ID:ThH+K+970
float,double型について質問です。基本的に精度のたかいdouble型オンリーで良いと思います。
double型だけじゃなくfloat型が混ざっているソースをみるのですがそれは何故でしょうか?
2022/03/27(日) 19:25:09.32ID:p42Vgj/c0
>>309
C#に限った話じゃないがdoubleの方がメモリを多く使って計算速度も遅くなるから
2022/03/27(日) 19:30:11.97ID:ThH+K+970
>>310
ありがとうございます。
リストのときにdoubleじゃなくfloatがよく使われてたのはそれが理由だったんですね。
2022/03/27(日) 20:53:18.65ID:rqiHHq3k0
floatとdoubleの混用なんてそんな傾向が見いだせるほど頻繁に使われているとは思えんが。
たまたま見たそのコードではそういう使い方をしていたに過ぎないんでは。
2022/03/27(日) 22:06:23.31ID:XoV4gFeA0
昔のコードをまだ使っててfloatのとこがあるって理由じゃねーかな?
2022/03/27(日) 22:32:37.28ID:K7MWSPEs0
C++では機械学習と3Dレンダリングでの並列化を目的にfloat16_tとかいう概念が生産されたりしてるからfloat自体は過去の遺物ってほどでもない

C#だと実行速度を気にするよりも開発を楽にすることを重視することが多いからdoubleオンリーでいいのは確か
2022/03/27(日) 23:11:31.46ID:HQutMm3I0
専用命令とかでベクトル演算するなら、floatの方が同時に演算出来る数が多いから単純に速くなる
2022/03/28(月) 01:08:53.91ID:TOp/Y7AF0
まぁ精度や速度がクリティカルでなければ悩む時間が無駄だしdoubleでいいでしょ
2022/03/28(月) 09:26:10.00ID:1rap9yocr
>>309
主に組み込みのシステムと通信していたりする場合、相手が float のサイズを要求することもある。

>>310
メモリは多く使うが、今どきはハードウェアで double を計算するはずなんで、遅いはダウト。
むしろfloat の方が double への変換の分遅くなるまである。
2022/03/28(月) 09:29:45.95ID:MxvDEKd20
いまだにダウトとか言う香具師っているんだな
ダウトとか今日日聞かねえわ
2022/03/28(月) 11:03:16.37ID:9Kb03WZY0
というかそれぞれの場合過ぎるやろ

「基本doubleでいい」には自分は同意するけど、
別にfloat使ってたからって誤差が問題ないなら何も言わない
わざわざ変換を何度もして計算してたら気にするけども、そこまで求められる現場もそう多くないのでは
2022/03/28(月) 11:19:15.17ID:8MPYL/o90
>>318
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモナー
  (    )  \_____
  | | |
  (__)_)
2022/03/28(月) 11:25:55.09ID:28On/6D6a
整数でも他との型を合わせる以外 int を使うし、実数も基本 double でいいのでは
2022/03/28(月) 11:39:56.75ID:TN58deSDM
遅くても小数以下の精度が重要ならdecimal使え
2022/03/28(月) 11:48:23.50ID:VjMRJ3XsM
floatは結構簡単に精度の低さが問題として表面化するよ
longとintの比ではない
2022/03/28(月) 12:15:41.21ID:TN58deSDM
結局のところ、用途次第では
2022/03/28(月) 14:04:59.59ID:iWC4w4vVM
実際のビジネスシステム構築ではDecimal型使う場合が多い
2022/03/28(月) 14:21:08.92ID:9Kb03WZY0
そうかなあ。。
2022/03/28(月) 14:25:47.66ID:8MPYL/o90
精度云々言ってるやつはせめて具体な影響の例も書こうぜ
2022/03/28(月) 14:27:32.27ID:3kQaQ/3DM
sqlサーバーのnumeric(4,0)とかをEFでモデル作るとdecimalになるけど
お前らそのまま使ってる?
2022/03/28(月) 14:37:28.69ID:TgL79h+20
>>317
float演算もdouble演算もハードウェアがサポートしてるけどdoubleの方がクロック数消費が多い
2022/03/28(月) 14:41:13.92ID:DkKihmtS0
参考にどうぞ
MOVSS xmm, [m32] L: [memory dep.] T:0.50c
MOVSD xmm, [m64] L: [memory dep.] T:0.50c
MULSS xmm, xmm L:4.0c T:0.50c
MULSD xmm, xmm L:4.0c T:0.50c
2022/03/28(月) 14:45:52.84ID:TgL79h+20
Ryzenのdatasheet過去に見たけど今検索しても見つからなくて困ってる

SIMD含め命令の消費クロック数とか全部書いてたのに...
2022/03/28(月) 14:47:28.95ID:TuD9lj1za
>>327
floatだと日本の人口(1億2550万2290人)すら代入できない
2022/03/28(月) 14:59:00.88ID:DkKihmtS0
Ryzen 5
MULSS xmm, xmm L:3.0c T:0.50c
MULSD xmm, xmm L:4.0c T:0.50c

Intelより速いですな。
2022/03/28(月) 15:06:53.09ID:8MPYL/o90
はえー
335デフォルトの名無しさん (スッップ Sdb2-FX9+)
垢版 |
2022/03/28(月) 15:46:24.33ID:PX19Xk7jd
C#でNTFSのMFTデータ取得とHDDにセクタ(?)単位で読み書きしたいです。

出来るなら関数とかを教えて欲しいですよろしくお願いします。
2022/03/28(月) 16:10:41.34ID:bggr0gZp0
YouTube でよく見るけど、

Ryzen は高いけど、Intel 12世代に負けているでしょ?
2022/03/28(月) 16:15:23.65ID:DkKihmtS0
NVIDIA GeForce RTX 3060
FP32 (float) performance 12.74 TFLOPS
FP64 (double) performance 199.0 GFLOPS (1:64)
2022/03/28(月) 19:15:33.23ID:yX/3nbFs0
Intel12世代コアで雑にマルチスレッドプログラム動かしても大丈夫だよね?
下手にEコア引くみたいなことは無いと思うけどさ
2022/03/28(月) 21:00:15.79ID:dJWBHkZn0
AVX-512を有効化して使うことができる石を使っている…だと!?
2022/03/29(火) 08:08:07.07ID:D1mnE0bGa
プログレスバーを継承したコントロールのOnPaintの中で
base.OnPaint();呼んでもバーの部分は描かれないの?
2022/03/29(火) 08:48:22.02ID:xQkhmjZ40
試せばいいじゃん
2022/03/29(火) 10:21:34.64ID:ET94Xefu0
>>340
そもそも OnPaint は呼ばれない
2022/03/29(火) 10:43:15.31ID:2DY4nmItM
>>340
Reference Source見れば分かるけど、そもそもOnPaint実装してない
値が変わったらSendMessageでPBM_SETPOS送ってるだけ
2022/03/29(火) 10:52:49.33ID:MRVYy1310
>>335
それはもうC#とか関係なく特権権限でWin32APIでも利用してマニュアルでやるしかない
MFTの構造とかはググれば多分すぐに見つかるだろう
2022/03/29(火) 22:37:57.81ID:YOHlvasK0
>>328
むしろdecimal以外をつかうなら、それDB側の型が妥当か疑わしいが
346デフォルトの名無しさん (ワッチョイ 655f-FX9+)
垢版 |
2022/03/30(水) 10:44:05.86ID:u/rQAHi50
>>344
WIN32API 含めて検索したら出てきたKernel32.dllのreadfile/writefileの引数にPHYSICALDRIVE指定したらできそう頑張ってみる、ありがとう。
347デフォルトの名無しさん (ワッチョイ 655f-FX9+)
垢版 |
2022/03/30(水) 10:44:38.10ID:u/rQAHi50
したらできそうじゃ無くてできるらしいだった
2022/03/30(水) 12:07:06.02ID:7T4t4X1P0
外部のdll関数にintptr渡して実行する処理(HBitmapにポインタ合わせて投げる)
が複数の上記とは関係ない処理をまたいで有効になっている処理を2,3回繰り返すんですが
メモリリークしてます。
どのようにしたらメモリリーク防げるかおわかりでしたらお教えください。

渡すBitmapとポインタを常に同じメモリ使う様にすれば良い?のかなとは
思うのですがそこらへんのやり方等なにかご存知でしたらご教授くださいm(_ _)m
2022/03/30(水) 12:17:11.87ID:3gh732H7M
ハンドルの解放わすれてるとかでは?
ループでぶん回すとメモリがリニアに増えてく箇所が無いかとか、まず場所を特定しなさい
2022/03/30(水) 14:56:51.43ID:oMfCMBWB0
newしたらdelete
getしたらrelease
mallocしたらfree
openしたらclose

すべてチェックするしかないですな。
むしろなぜ対にしてコードを書かないのか謎。あっC#だからか。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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