問題タブ [marshalling]
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.
c# - MessageBox.Show() は自動的に UI スレッドにマーシャリングしますか?
メッセージボックス ダイアログがある ThreadPool.QueueUserWorkItem を介してスレッドを起動します。
System.Windows.Forms.DialogResult dr = System.Windows.Forms.MessageBox.Show("バックグラウンドでアップグレードをダウンロードしますか? ..", "アップグレード可能", MessageBoxButtons.YesNo);
正常に動作しているように見えますが、一部の顧客がメッセージのポップアップが表示されないことを示唆したため、少し疑わしいです. .NET フレームワーク 2.0 以降では、この特定の呼び出しをマーシャリングする必要はないと感じました。マーシャリングは自動的に行われます。正しい?
これは興味のある部分的なトピックです: MessageBox.Show でオーナー ウィンドウを使用する理由
c++ - CreateThread に複数の引数を渡す
質問:
次の場合に、具体的に2 つの引数をCreateThreadに渡す方法:
- タイプの引数 1
SOCKET
- 引数 2、インターフェイス ポインター:
_COM_SMARTPTR_TYPEDEF(Range, __uuidof(Range));
RangePtr pRange; //pass pRange
- タイプの引数 1
提案:
- それに応じて、 CoMarshalInterThreadInterfaceInStreamを使用して、インターフェイス ポインターの場合、
.net - バイト配列の Marshal.PtrToString* メソッドと同等
アンマネージ ポインターがあり、指定されたバイト数をその場所から Byte 配列に転送したい場合、これを行う最善の方法は何ですか?
つまり、Marshal.PtrToString* メソッドと同等のものですが、宛先は Byte() です。
ありがとう
c++ - COM サーバーは ([in, out] CACLSID * arg) を再割り当てできますか?
次のように宣言された COM インターフェイス メソッドを使用します。
マーシャリングに関して、サーバーはカウントされた配列を再割り当てできますか? (あると思いますが、今は定かではありません)
現在の実装は既存の ID を置き換えるだけですが、新しいインターフェイスを導入せずにより多くのアイテムを返す可能性がある (契約を破らない) 変更を実装したいと思います。
[編集] CACLSIDはすでに配列であり、カウントとポインターを含んでいることに注意してください。
c# - PInvoked OpenFileDialog (GetOpenFileName) からの文字列のアンマネージ配列のマーシャリング
OpenFileDialog は、null で終わる文字列のシーケンスを含むメモリへのポインターを返し、その後に配列の末尾を示す最後の null が続きます。
これは、アンマネージ ポインターから C# 文字列を取得する方法ですが、より安全でエレガントな方法があるはずです。
c# - C# からの C++ dll 関数の呼び出し: 構造体、文字列、および wchar_t 配列の
これは私が解決する必要がある簡単な問題ですが、すべての試行で同じエラーが返されるため、髪が白くなっているように感じます。
「保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。」
dll を呼び出す C++ で記述されたサンプル アプリがあります。関連するコードは次のとおりです。
C++ コードをデバッグすると、Unicode データがデータ構造体に書き込まれます。
これがC#で同じことをしようとする私の試みです
私の推測では、convertHKID_Name 関数によって書き込まれるのはこの構造体であるため、RECO_DATA 構造体を適切にマーシャリングしていないと思います。しかし、どうすれば修正できますか?
json - Json<->GWTで動作するJavaシリアル化
GWTで動作する可能性のあるJava用の単純なJson(デ)シリアライザーを探しています。私は少しグーグルして、すべてのメンバーに注釈を付けるか、役に立たないインターフェースを定義する必要があるいくつかの解決策を見つけました。かなり退屈です。こんなにシンプルなものを作ってみませんか
.net - C ++プロジェクトを.Netとの間で変換/呼び出す方法は?
現在、VC6から2005に変換した巨大なプロジェクトがあります。次に、一部の機能の新しいフロントエンドを作成したいと思いますが、プログラムのメインロジックはc++に基づいています。また、コードベースは、独自のメタタイプと特注のクラスを中心に展開しています。
私が思いつくことができる最善の解決策は、C++プロジェクトのdllから関数を呼び出すことです。ただし、これは、データがc ++とc#の間の境界を越える巨大なデータマーシャリング投資につながります。他に選択肢があるかどうか疑問に思いました(完全な書き直しはオプションではありません)。
ありがとうリッチ
c# - C#形式の外部DLL関数パラメーター
私はまだこのトピックに関する良い参考文献を見つけていません。この例では、C#に移植しようとしているC++コードをいくつか取り上げます。
C ++ランドには、外部ライブラリ関数の次のプロトタイプがあります。
そしてその中でそのように使用されます:
今、私は最初の行をC#に移植しようとしていますが、ここに明確なパスが表示されません。
これは私がこれまでに得たものです:
ここでの質問は次のとおりです。「PSTRpPathFile」は「[MarshalAs(UnmanagedType.LPStr)] stringpPathFile」である必要があることを教えてくれる良いガイドはありますか...それが正しいと仮定しますか?
または、「PMAPPING」構造体へのポインタが「outIntPtr pMapping」になるということは...それが正しいと仮定しますか?
この一人の人に何か助けはありますか?