C#でC.dllからバイト*をマーシャルする方法

user1957413

同様の署名を共有するC#から呼び出そうとしている2つの関数があります。

BOOL Read (BYTE Len, BYTE* DataBuf)
BOOL Write (BYTE Len, BYTE* DataBuf)

ドキュメントから:送信されたデータのDataBuf宛先

C#呼び出しで何を使用しますか?

  • バイト[]
  • myByteArr [0]
  • P / InvokeAssistantが提案したSystem.IntPtr

テストするハードウェアはまだありませんが、必要なときにできるだけ多くの呼び出しを取得しようとしています。

ありがとう。

デビッド・ヘファーナン

使用する読み取り機能の場合:

[Out] byte[] buffer

使用する書き込み機能の場合:

[In] byte[] buffer

[In] はデフォルトであり、省略できますが、明示的にしても問題はありません。

したがって、関数は次のようになります。

[DllImport(filename, CallingConvention = CallingConvention.Cdecl)]
static extern bool Read(byte len, [Out] byte[] buffer);

[DllImport(filename, CallingConvention = CallingConvention.Cdecl)]
static extern bool Write(byte len, [In] byte[] buffer);

明らかに、アンマネージ関数に配列を渡す前に、配列を割り当てる必要があります。

byteはブリット可能であるため、マーシャラーは最適化として配列を固定し、固定されたオブジェクトのアドレスを渡します。これは、コピーが実行されず、パラメーターの受け渡しが効率的であることを意味します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

構造化するC#マーシャルバイト配列

分類Dev

C#へのバイトであるバリアントのSAFEARRAYをマーシャリングする

分類Dev

バイト配列をC#から外部DLLに渡す方法

分類Dev

C#でdllをインポートする方法

分類Dev

UIコントロールをバインドするのではなく、C#コード内からコマンドを呼び出す方法は?

分類Dev

C#構造体をバイトにマーシャルします[]

分類Dev

C DllインポートはC#でマーシャルディレクティブ例外をスローします

分類Dev

C# で reインタプリタ_キャスト、c++ から c# にコードを移行する

分類Dev

C#を使用して名前からイニシャルを削除する方法

分類Dev

C++ アンマネージ dll から C# Unity にバイト配列を渡す

分類Dev

C#でサーバー側からCookieを削除する方法

分類Dev

C#でデータリーダーからnullブール値をキャストする方法は?

分類Dev

DLLインポートを使用してコールバックメソッドC ++を呼び出し、C#でイベントを取得する方法

分類Dev

C#で.Net DLLから公開鍵を抽出する方法は?

分類Dev

C#でバイナリデータからファイルを作成する

分類Dev

C#でシリアルポートデバイスからデータを読み取ります

分類Dev

C# dll から wpf exe にマウス/キー フック データで通知を送信する方法

分類Dev

画像全体ではなく、HTMLキャンバス上のタイルセットシートから特定のタイルセットを複数回描画する方法

分類Dev

Visual-C ++ DLLが2〜3メガバイトをC#バッファにコピーするための最速の方法は何ですか?

分類Dev

相対パスからC#でdllをロードする

分類Dev

マイナーバージョンでnexusからバージョンをインストールする方法

分類Dev

PythonでgRPCクライアントからgRPCサーバーをシャットダウンする方法は?

分類Dev

PythonでC#dllからサブモジュールをインポートする方法

分類Dev

C#からmatlabでループを実行する方法は?

分類Dev

C#でExcelからSQLにデータをインポートする方法

分類Dev

C#でC ++ dllから配列のコンテンツを取得する方法

分類Dev

UWP形式のc#でファイルから画像をロードする方法

分類Dev

C#でDLLをインポートする際の問題

分類Dev

C#でXSLTスタイルシートを適用する方法

Related 関連記事

  1. 1

    構造化するC#マーシャルバイト配列

  2. 2

    C#へのバイトであるバリアントのSAFEARRAYをマーシャリングする

  3. 3

    バイト配列をC#から外部DLLに渡す方法

  4. 4

    C#でdllをインポートする方法

  5. 5

    UIコントロールをバインドするのではなく、C#コード内からコマンドを呼び出す方法は?

  6. 6

    C#構造体をバイトにマーシャルします[]

  7. 7

    C DllインポートはC#でマーシャルディレクティブ例外をスローします

  8. 8

    C# で reインタプリタ_キャスト、c++ から c# にコードを移行する

  9. 9

    C#を使用して名前からイニシャルを削除する方法

  10. 10

    C++ アンマネージ dll から C# Unity にバイト配列を渡す

  11. 11

    C#でサーバー側からCookieを削除する方法

  12. 12

    C#でデータリーダーからnullブール値をキャストする方法は?

  13. 13

    DLLインポートを使用してコールバックメソッドC ++を呼び出し、C#でイベントを取得する方法

  14. 14

    C#で.Net DLLから公開鍵を抽出する方法は?

  15. 15

    C#でバイナリデータからファイルを作成する

  16. 16

    C#でシリアルポートデバイスからデータを読み取ります

  17. 17

    C# dll から wpf exe にマウス/キー フック データで通知を送信する方法

  18. 18

    画像全体ではなく、HTMLキャンバス上のタイルセットシートから特定のタイルセットを複数回描画する方法

  19. 19

    Visual-C ++ DLLが2〜3メガバイトをC#バッファにコピーするための最速の方法は何ですか?

  20. 20

    相対パスからC#でdllをロードする

  21. 21

    マイナーバージョンでnexusからバージョンをインストールする方法

  22. 22

    PythonでgRPCクライアントからgRPCサーバーをシャットダウンする方法は?

  23. 23

    PythonでC#dllからサブモジュールをインポートする方法

  24. 24

    C#からmatlabでループを実行する方法は?

  25. 25

    C#でExcelからSQLにデータをインポートする方法

  26. 26

    C#でC ++ dllから配列のコンテンツを取得する方法

  27. 27

    UWP形式のc#でファイルから画像をロードする方法

  28. 28

    C#でDLLをインポートする際の問題

  29. 29

    C#でXSLTスタイルシートを適用する方法

ホットタグ

アーカイブ