問題タブ [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 投票する
3 に答える
6198 参照

c# - C# 用の JAX-B のようなものはありますか?

Java の JAX-B のようなマーシャリングとアンマーシャリングをサポートするライブラリを探しています。使用できる最先端のライブラリはありますか?

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

c# - GetCustomAttributesを取得するにはどうすればよいですか?

2.0フレームワークを使用して次のコードを試しましたが、属性が返されますが、コンパクトフレームワークでこれを試すと、常に空の配列が返されます。MSDNのドキュメントには、サポートされていると書かれていますが、何か問題がありますか?

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

.net - VB6 と .net の間でユーザー定義型の配列をマーシャリングする

COM 呼び出し可能な .net アセンブリを作成していて、レガシー COM クライアント (私の場合は VB6 クライアント) から使用しようとしています。

アセンブリは API スタイルのインターフェイスを公開する必要があるため、一般的な関数宣言は次のようになります。

問題は、次のように宣言された関数を使用しようとしたときです。

VB6 では、これは、「無効なプロシージャ コールまたは引数」で呼び出すと失敗するパラメータとして渡される配列を持つ関数に変換されます。

実際の呼び出しは次のようになります。

さらに調査して、MarshalAs 属性を使用してライブラリをマークアップするいくつかの異なる方法を試しました。私の観点からすると、問題は、引数が渡される配列である必要があり、一方で、VB コードに返されるバリアントである必要があることです。

いくつかの実験の後、次のように動作するようになりました(1):

(items() がクライアント側で Object として宣言されている)。

しかし、最初の署名 (2) を正確に使用する必要があります。

オブジェクトまたはクライアントでの ItemData 配列型宣言では機能しません。

したがって、質問は次のとおりです
。-なぜ(1)は機能するのに(2)は機能しないのですか。署名の実際の型を操作するには、属性宣言またはクライアントで何を変更する必要がありますか (tlb にもエクスポートされたインターフェイスを公開するため、ここではすべて問題ないようです)
- sugh を定義する推奨される方法は何ですか? [out] パラメータ配列
- 重要な読み物が不足している可能性があります。リンクに感謝します... それでも、1 日か 2 日でサンプルを機能させる必要があります。

前もって感謝します。

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

c# - シリアル化/マーシャル/リバース エンジニアの未知の構造

そもそもその構造が何であったかわからない場合に、バイト配列を構造に逆シリアル化またはマーシャリングまたは何らかの方法で解析する方法はありますか? 構造はおそらく C++ から来ています。

いくつかの背景: R/C 飛行機用のフライト シミュレータがあり、それを自動化できるかどうかを調べています。API はありません。入力を自動化する方法を知っています。プログラムの出力を取得しようとしています。(飛行機の飛行力学など)

シミュレーターにはマルチプレイヤー機能があるため、探している正確な情報をネットワーク経由で渡す必要があることはわかっています。DirectX 9 に基づいて構築されており、マルチプレイヤー通信に DirectPlay (非推奨のゲーム ネットワーク プロトコル) を使用します。私の推測では、シミュレータ自体は C++ で書かれています。

それで、実際にプログラムに接続して、13 バイトのメッセージを取得できました。偉大な。それで。

一般に、このようなものをどのようにリバース エンジニアリングするのでしょうか?

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

c# - [MarshalAs(UnmanagedType.LPStr)] を使用して null ポインターをマーシャリングするとどうなりますか

実際には NULL ポインタである文字列をマーシャリングしようとすると、どうなりますか?

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

vb.net - .NETで構造体をバイト配列に変換する

My.Computer.FileSystem.WriteAllBytesなどを使用して、固定長の文字列で構成される構造をファイルに書き込みたい。

VB.Netに変換した固定長の文字列を含むVB6プロジェクトを使用しています。

C#でのマーシャリングはまだ新しいですが、ファイルに書き込むためにこの構造をバイト配列にするにはどうすればよいでしょうか。マーシャリングのトリックはありますか、それともカスタムメソッドを作成する必要がありますか?

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

.net - C++ .NET は System::String を std::string に変換します

C++ .NET で System::String を std::string に変換するにはどうすればよいですか?

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

ruby-on-rails - RubyOnRailsでのマーシャリングとActiveRecordのシリアル化

マーシャリングとActiveRecordシリアル化の違いは何ですか?

オブジェクトをデータベースに保存するために一方を他方の上に使用することが望ましい特定の機会はありますか?

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

c# - C#でCodeElementsをIntPtrにマーシャリングする

Visual Studioアドインを作成していますが、管理対象のCodeElementsオブジェクトを管理されていない形式にマーシャリングする必要があります。ポインタをキャストして、アンマネージ側のCodeElementのように扱うことができるので、メモリ内にポインタが必要です。

私はXMLの扱い方を知っており、C#でこれの作業バージョンを持っています。再帰の最低レベルでさまざまなメンバー変数をすべて呼び出すと、プログラムの速度が低下するため、アンマネージDLLを作成しました。System.Runtime.Interop.Marshalを使用して、CodeElementsオブジェクトをメモリ内のCOMオブジェクトへのポインターに変換する方法を知る必要があります。

ありがとう。