一个c++的方法结构体,c#调用传入结构体导出一直不对,求各位大神帮忙

struct HL7SDK_INTERFACE
{
void (* OnConnect) (int iBedNO);

void (* OnDisconnect)(int iBedNO);      

void (* OnRecvHL7Msg)(int iBedNO, void * pMsg, int iLen, int iMsgType); 

void (* OnSendHL7Msg)(int iBedNO, void *pMsg, int iLen, int iMsgType);  

};
typedef struct HL7SDK_INTERFACE HL7SDK_INTERFACE, *PHL7SDK_INTERFACE;
int InitHL7SDK(PHL7SDK_INTERFACE pHL7SDKInterace, enum HL7_WORK_MODE enHL7ServerMode, unsigned long ulServerIP, unsigned long ulLocalIP);

一个c++的方法结构体,c#调用传入结构体导出一直不对,求各位大神帮忙

[DllImport("HL7SDK.dll", EntryPoint = "InitHL7SDK", CallingConvention = CallingConvention.Cdecl)]
public extern static int InitHL7SDK(ref SDKStruct pHL7SDKInterace, publicStruct.HL7_WORK_MODE serverMode, System.UInt32 serverIP, System.UInt32 localIP);

1个回答

1 注意编码 CharSet = CharSet.Ansi,
2 注意指针 要开启C# unsafe模式才可以识别。
3 调用约定要和封装的dll保持一致。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!