問題タブ [unsafe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
446 参照

c# - レガシ C++ アプリのウィンドウ処理の問題からの C# 子プロセス

C++ レガシ アプリケーションがあり、親の C++ アプリから COM を使用して呼び出される C# アプレットでそれを拡張しています。モーダルではないウィンドウが表示されます。さらに、これらの .NET ウィンドウは C++ アプリケーションの適切な子ではないと思います。なぜなら、EnumChildWindows はそれらを見逃し、EnumWindows はそれらを見つけるからです。ただし、親の C++ アプリを閉じると、c# ウィンドウも閉じるという点で、子供のような動作が 1 つあります。

これらすべてに関する私の基本的な問題は、ユーザーがこれらの c# アプレットのいずれかを呼び出してから、誤って親 (c++) アプリ ウィンドウをクリックすると、c# ウィンドウがバックグラウンドに落ちることです。ユーザーがこれを一番上に戻したい場合は、タスクバーのアイコンをクリックするだけでよいはずです。残念ながら、奇妙な理由で、タスクバーのアイコンを3 回クリックしなければならないことがよくあります。最初は非表示のウィンドウが一番上に表示されるはずですが、そうではありません。2 回目のクリックで非表示のウィンドウが最小化され、3 回目のクリックで正常に復元されます。

レガシーから .NET への分割を橋渡しするときに、このバグ/機能に出くわした人はいますか? C# アプレットのタスクバー アイコンの最初のクリックを傍受し、どうにかしてトップに戻るように強制できるかどうか疑問に思っています。:-)

私は次のことを実験してきました:

しかし、これが機能したとしても、最初のマウスクリックをインターセプトする必要があります。ご協力いただきありがとうございます!

0 投票する
3 に答える
7216 参照

c# - C#でポインターからバッファーへの文字列を読み取る方法

この C++ dll 呼び出しから C# のエラー文字列を読み取るにはどうすればよいですか?

ありがとう!

0 投票する
6 に答える
149318 参照

c# - 「安全でないコードは/unsafeでコンパイルした場合にのみ表示される可能性があります」というエラーが表示されるのはなぜですか?

次のエラーが発生するのはなぜですか?

安全でないコードは、/ unsafeでコンパイルした場合にのみ表示される可能性があります」?

私はWindowsCEでのプログラミングのためにC#とVisualStudio2008で働いています。

0 投票する
5 に答える
11453 参照

c# - C#でポインタアドレスを表示するにはどうすればよいですか?

私は C# でプログラミングして以来、ポインターを作成したことがありません。C++ で過ごしたのはずっと前のことです。私は自分の知識を更新する必要があると思い、ここで別の質問のために彼らと遊んでいました. 私はそれらをすべて理解していますが、ポインターのアドレスをコンソールに書き込む方法がわかりません...

を使用Console.WriteLine(*cp);すると、ポインターアドレスの現在の値が得られます...実際のアドレスを表示したい場合はどうすればよいですか?

0 投票する
2 に答える
255 参照

.net - スレッドセーフでない.NETキューオブジェクトではどうなりますか?

.NETキューオブジェクトがあります。プロデューサースレッドはエンキュー操作を実行し、キューにエンキューされたデータはbyte []配列であり、他のコンシューマースレッドは同じキューオブジェクトに対してデキュー操作を実行します。

並行性を処理するためにロックを使用します。私のコードはいつもうまく機能しているようですが、昨日、奇妙なことが起こりました。コンシューマースレッドから取得したデータは、生成したデータとは異なります。配列の長さが間違っている、配列が繰り返されています...これはスレッドセーフ保護の失敗が原因ですか?

私の意見では、並行性はデータの損失を引き起こすだけです。

ここでの私の最初の投稿は、我慢してください。

0 投票する
5 に答える
112 参照

c - ネストされた呼び出しは、Cで初期化されていない引数につながる可能性がありますか?

正しく初期化され、通話len中に安全ですか?set_array

そうでない場合、あなたは何をお勧めしますか?

0 投票する
2 に答える
3626 参照

c# - Marshal.PtrToStringUni()と新しいString()?

ユニコード文字列へのchar*型のポインタがあり、長さがわかっているとします。

そして私はそれを.NET文字列に変換する2つの方法があります:

私のテストでは、どちらの呼び出しでもまったく同じ結果が得られますが、new string()はの1.8倍の速度ですMarshal.PtrToStringUni()

なぜそのパフォーマンスの違いがあるのですか?両者の間に別の機能的な違いはありますか?

0 投票する
3 に答える
3834 参照

c# - Why you cannot use an unsafe keyword in an iterator context?

In looking at this question which Jon did a fine job in answering... 'How to read a text file reversly with iterator'. And there was a similar question in which I answered using pointers hocus pocus..'.net is there a way to read a text file from bottom to top' before it got closed....

Now I did set out to try solve this using pointers, ok, it looks hackish and rough around the edges...

but discovered that C# compiler cannot handle this using this implementation but was devastated when the C# compiler refused with an error CS1629 - 'Unsafe code may not appear in iterators'

Why is that so?

0 投票する
1 に答える
813 参照

c# - 安全なコードと安全でないコードを混在させる必要がありますか?

私は、一連の WIN32 API 呼び出しを使用し、安全でないコードを必要とするプロジェクトに取り組んでいます。ベスト プラクティスの観点から、メイン アプリケーションを安全に保ちながら、/unsafe スイッチでコンパイルされた独自の DLL にこのコードを分離する必要がありますか?

別の言い方をすれば。/unsafe スイッチを使用してプロジェクトをコンパイルしない理由はありますか? 潜在的なリスクはありますか?

0 投票する
2 に答える
1813 参照

c# - VB.NET で安全でないコードで C# dll を使用できますか?

ビットマップのピクセル情報にアクセスして変更できる C# 用の FastBitmap クラスがあります。いくつかの C# プロジェクトで既に使用していますが、今は VB.NET で必要です。問題は、そのクラスが VB.NET でサポートされていない安全でないコードを使用していることです。

質問は。FastBitmap クラスを dll にコンパイルして、VB.NET で使用できますか?

[編集] または、VB.NET でピクセル データを変更するために使用できるライブラリはありますか?