問題タブ [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.

0 投票する
4 に答える
11084 参照

c# - MessageBox.Show() は自動的に UI スレッドにマーシャリングしますか?

メッセージボックス ダイアログがある ThreadPool.QueueUserWorkItem を介してスレッドを起動します。

System.Windows.Forms.DialogResult dr = System.Windows.Forms.MessageBox.Show("バックグラウンドでアップグレードをダウンロードしますか? ..", "アップグレード可能", MessageBoxButtons.YesNo);

正常に動作しているように見えますが、一部の顧客がメッセージのポップアップが表示されないことを示唆したため、少し疑わしいです. .NET フレームワーク 2.0 以降では、この特定の呼び出しをマーシャリングする必要はないと感じました。マーシャリングは自動的に行われます。正しい?

これは興味のある部分的なトピックです: MessageBox.Show でオーナー ウィンドウを使用する理由

0 投票する
4 に答える
4523 参照

c++ - CreateThread に複数の引数を渡す

質問:

  • 次の場合に、具体的に2 つの引数をCreateThread渡す方法:

    • タイプの引数 1SOCKET
    • 引数 2、インターフェイス ポインター:

    _COM_SMARTPTR_TYPEDEF(Range, __uuidof(Range));

    RangePtr pRange; //pass pRange

提案:

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

.net - バイト配列の Marshal.PtrToString* メソッドと同等

アンマネージ ポインターがあり、指定されたバイト数をその場所から Byte 配列に転送したい場合、これを行う最善の方法は何ですか?

つまり、Marshal.PtrToString* メソッドと同等のものですが、宛先は Byte() です。

ありがとう

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

c++ - COM サーバーは ([in, out] CACLSID * arg) を再割り当てできますか?

次のように宣言された COM インターフェイス メソッドを使用します。

マーシャリングに関して、サーバーはカウントされた配列を再割り当てできますか? (あると思いますが、今は定かではありません)

現在の実装は既存の ID を置き換えるだけですが、新しいインターフェイスを導入せずにより多くのアイテムを返す可能性がある (契約を破らない) 変更を実装したいと思います。

[編集] CACLSIDはすでに配列であり、カウントとポインターを含んでいることに注意してください。

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

c# - PInvoked OpenFileDialog (GetOpenFileName) からの文字列のアンマネージ配列のマーシャリング

OpenFileDialog は、null で終わる文字列のシーケンスを含むメモリへのポインターを返し、その後に配列の末尾を示す最後の null が続きます。

これは、アンマネージ ポインターから C# 文字列を取得する方法ですが、より安全でエレガントな方法があるはずです。

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

c# - C# からの C++ dll 関数の呼び出し: 構造体、文字列、および wchar_t 配列の

これは私が解決する必要がある簡単な問題ですが、すべての試行で同じエラーが返されるため、髪が白くなっているように感じます。

「保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。」

dll を呼び出す C++ で記述されたサンプル アプリがあります。関連するコードは次のとおりです。

C++ コードをデバッグすると、Unicode データがデータ構造体に書き込まれます。

これがC#で同じことをしようとする私の試みです

私の推測では、convertHKID_Name 関数によって書き込まれるのはこの構造体であるため、RECO_DATA 構造体を適切にマーシャリングしていないと思います。しかし、どうすれば修正できますか?

0 投票する
13 に答える
51082 参照

json - Json<->GWTで動作するJavaシリアル化

GWTで動作する可能性のあるJava用の単純なJson(デ)シリアライザーを探しています。私は少しグーグルして、すべてのメンバーに注釈を付けるか、役に立たないインターフェースを定義する必要があるいくつかの解決策を見つけました。かなり退屈です。こんなにシンプルなものを作ってみませんか

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

.net - C ++プロジェクトを.Netとの間で変換/呼び出す方法は?

現在、VC6から2005に変換した巨大なプロジェクトがあります。次に、一部の機能の新しいフロントエンドを作成したいと思いますが、プログラムのメインロジックはc++に基づいています。また、コードベースは、独自のメタタイプと特注のクラスを中心に展開しています。

私が思いつくことができる最善の解決策は、C++プロジェクトのdllから関数を呼び出すことです。ただし、これは、データがc ++とc#の間の境界を越える巨大なデータマーシャリング投資につながります。他に選択肢があるかどうか疑問に思いました(完全な書き直しはオプションではありません)。

ありがとうリッチ

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

c# - C#形式の外部DLL関数パラメーター

私はまだこのトピックに関する良い参考文献を見つけていません。この例では、C#に移植しようとしているC++コードをいくつか取り上げます。

C ++ランドには、外部ライブラリ関数の次のプロトタイプがあります。

そしてその中でそのように使用されます:

今、私は最初の行をC#に移植しようとしていますが、ここに明確なパスが表示されません。

これは私がこれまでに得たものです:

ここでの質問は次のとおりです。「PSTRpPathFile」は「[MarshalAs(UnmanagedType.LPStr)] stringpPathFile」である必要があることを教えてくれる良いガイドはありますか...それが正しいと仮定しますか?

または、「PMAPPING」構造体へのポインタが「outIntPtr pMapping」になるということは...それが正しいと仮定しますか?

この一人の人に何か助けはありますか?