2024年3月9日发(作者:)

[DllImport("",

CallingConvention

=

CallingConvention

.

Cdecl

)]

public static extern unsafe int NetGetConnectDetail(NET_INFO_STRUCT lpNetInfo);

NET_INFO_STRUCT stru = new NET_INFO_STRUCT();

ionTime = 8989;

veByte = 89.89;

yte = 89.8900;

= 56;

= "来来去去ypfisja";

= 24;

= 17;

NetGetConnectDetail(stru);

结构体数组传出:

Dll端:

struct UIM_BOOK_STRUCT

{

int UimIndex;

char szName[15];

char szPhone[21];

};

extern "C" __declspec(dllexport) int ReadUimAllBook(UIM_BOOK_STRUCT lpUimBookItem[],int nMaxArraySize)

{

lpUimBookItem[0].UimIndex = 345;

strcpy

(lpUimBookItem[0].szName , "dsd");

strcpy

(lpUimBookItem[0].szPhone , "bbbb");

lpUimBookItem[1].UimIndex = 111;

strcpy

(lpUimBookItem[1].szName , "ddddd");

strcpy

(lpUimBookItem[1].szPhone , "vvvvvv");

lpUimBookItem[2].UimIndex = 2222;

strcpy

(lpUimBookItem[2].szName , "d3343434sd");

strcpy

(lpUimBookItem[2].szPhone , "bbbfggfggggfgb");

return 4;

}

C#端:

[StructLayout(

LayoutKind

.

Sequential

,

CharSet

=

CharSet

.

Ansi

)]

public struct UIM_BOOK_STRUCT

{

public int UimIndex;

[MarshalAs(

UnmanagedType

.

ByValTStr

,

SizeConst

= 15)]

public string szName;

[MarshalAs(

UnmanagedType

.

ByValTStr

,

SizeConst

= 21)]

public string szPhone;

};

[DllImport("",

CallingConvention

=

CallingConvention

.

Cdecl

)]

public static extern unsafe int ReadUimAllBook([

Out

] UIM_BOOK_STRUCT[] lpUimBookItem, int nMaxArraySize);

UIM_BOOK_STRUCT[] p = new UIM_BOOK_STRUCT[20];

int rets = ReadUimAllBook(p, p.

Length

);