簡體   English   中英

C庫的C#包裝器類

[英]C# Wrapper Class for C library

我想用WiringPi C庫中的mcp23017.c中的函數創建一個C#包裝器類。 我將這個現有的C#WiringPi WrapperClass用作其他功能。 我想擴展此包裝器類以將功能用於mcp23017。 我嘗試用包裝器中的一個函數創建一個新類:

public class mcp23017
{

    [DllImport("libmcp23017.so", EntryPoint = "myPinMode")]
    public static extern void myPinMode(struct wiringPiNodeStruct *node,Int32 pin, Int32 mode);

}

但是我得到這些錯誤的struct元素。

) expected.
; expected.
{ expected.
} expected.
Invalid token "*" in class struct or interface member declaration

我必須在包裝類中定義一個結構嗎? 它是如何工作的? 不熟悉此功能,因為我不熟悉C#。

在C#中的參數上使用struct無效。 編組員應為您處理此行為。 也許您的意思是這樣的。

[StructLayout(LayoutKind.Sequential)]
public struct WiringNode
{
    //Struct members here
}

[DllImport("libmcp23017.so", EntryPoint = "myPinMode")]
public static extern void myPinMode(ref WiringNode node, Int32 pin, Int32 mode);

然后稱為:

var myStruct = new WiringStruct();
//Set struct members

myPinMode(ref myStruct, whatever, whatever);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM