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

c# - C#: 構造体内の構造体へのポインター

C# でマーシャリングを使用しようとしています。C++ には、次の構造体があります。

したがって、C# の同等物は次のとおりです。

しかし、この構造体の多くは管理されています ( aiNode、aiMesh、aiLight ) など。したがって、次のエラーが発生します。

マネージド型 ('Assimp.aiNode') のアドレスを取得したり、サイズを取得したり、ポインタを宣言したりすることはできません

この問題を解決する方法についてのアイデアはありますか?

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

c# - 再帰構造体を c シャープにマーシャリングするにはどうすればよいですか?

基本的に次のように見えるcシャープにマーシャリングしたい管理されていない構造体があります。

カスタム マーシャラーを作成する必要があると思いますが、どうすればよいかわかりません。

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

c# - .NETプロジェクトでのCOM参照の使用によるコンパイラ警告を抑制する方法

Windows COM +サービスタイプライブラリ(C:\ Windows \ system32 \ COMSVCS.dllにあります)を使用して、C#3.0 /.NET3.5で記述されたサービスを使用してリモートマシン上のCOM+プロセスを追跡しています。私が直面している問題は、コンパイラから次のような警告が大量に表示されることです。

'IGetAppData.GetApps'の引数の少なくとも1つは、ランタイムマーシャラーによってマーシャリングできません。したがって、このような引数はポインタとして渡され、操作するために安全でないコードが必要になる場合があります。

上記のメソッドに対して生成された相互運用機能シグネチャは次のとおりです。

出力はすでに呼び出し元のコードで手動でマーシャリングされているので(つまり、とを使用Marshall.ReadInt32してMarshall.PtrToStructure)、これらのタイプの警告を抑制する方法はありますか?

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

c - VB.netコードでCdllを呼び出すことができるようにする

VB.netコードでCDllを使用している問題が発生しています。このDLLのC言語での実装を示す.Hファイルがあります。この.Hファイルには、いくつかの構造体タイプの変数を含む多くの構造体と共用体が含まれています。これらの構造体と共用体へのポインタを含むメイン構造体があり、最後にメイン構造体のアドレスがdll関数に渡されます。

vb.netでマーシャリングを使用して構造とユニオンを作成する方法と、他の構造とユニオンのアドレスを含む構造のアドレスを渡す方法を理解できます。

この問題を解決してください。どんな助けでもいただければ幸いです。

ありがとう、YOgi

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

vb.net - VB.netマーシャリングエラー

VB.netで構造体タイプの配列を作成する必要があります。しかし、このエラーをマーシャリングしているときにエラーが発生します。この構造体型の配列をDLL関数に渡す必要があります。

コード:構造体宣言:

初期化とマーシャリングのコード:

次のエラーが発生します。

追加情報:タイプdx_entry[]をアンマネージ構造としてマーシャリングすることはできません。意味のあるサイズやオフセットは計算できません。

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

c# - Marshal.SizeOf を使用して構造体のフィールド サイズを無視するにはどうすればよいですか?

Marshal.SizeOf を使用して構造体サイズの計算でフィールドを無視する方法はありますか

元:

現在サイズは4です。サイズを2にしたいです。これを行う方法はありますか?

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

c# - C++ と C# の間でのクラス インスタンスのポインターのマーシャリング

ActiveX コントロール (C++ で記述) があり、C# プロジェクトから RCW アセンブリ (aximp.exe で作成) を参照しています。

Ax コントロールを実装する C++ コードには、Ax コントロールのプロパティとして公開されるインターフェイスを実装するクラスがあります。

生成された RCW アセンブリを見ると、インターフェイスが見えます。そして、その型の変数を宣言しようとすることができます。

メモリ内にインターフェイスを実装する C++ クラスのインスタンスへのポインターしかない場合、そのポインターを使用してインターフェイスを表すマネージ C# オブジェクトにそのデータをマーシャリングすることは可能ですか?

インターフェイスポインタではないことに注意してください。私が持っているクラスのインスタンスへのポインタです。

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

c# - マーシャリングの問題

カード リーダーと対話する C++ DLL があります。データ構造体へのポインターが必要ですが、これは問題ではありません。ただし、C# で DLL を操作しようとすると、さまざまな問題が発生します。保護されたメモリへの書き込みエラー、getData コマンドの実行後にアプリケーションがシャットダウンするなど。

ヘッダーからの C++ メソッド

C# コード

form1.cs

また、Marshal.StructureToPtr を使用して cardData を IntPtr として渡そうとしましたが、返されたときに ptr を構造体 Marshal.PtrToStructure に読み込もうとしたときにデータが返されませんでした...

多くの人が C/C++ DLL を操作しようとして問題を抱えているように見えるため、ヘルプ ファイルや他の投稿を使用してこれを解決しようとしています。私はすべてをC++で書き込もうとし、C++ DLLで解析されたデータを含む文字列を返そうとしましたが、保護されたメモリへの読み取り/書き込みエラーがスローされます

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

c# - PtrToStructureによってスローされた引数例外

誰かが次の引数の例外を説明できますか:構造は私にとって値クラスであってはなりません。これは、私のプログラムの次のコード行が原因です。

タイプが与えられたdbh場合:

ありがとう

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

c# - 構造体の可変サイズ配列をマーシャリングする方法は?C#とC++の相互運用ヘルプ

私は次のC++構造体を持っています

そしてC++関数

これをC#にマーシャリングするにはどうすればよいですか?C#の定義はどこにありますか