C# 有人能找到等价的c代码吗
我需要等效的c代码C# 有人能找到等价的c代码吗,c#,C#,我需要等效的c代码 VssSdkClientId VSS_SDK_SPEC startVssSdkClientEcho(const VssSdkXChar *host, const VssSdkPort port, NotifyFunc ¬ifyFunc,
VssSdkClientId VSS_SDK_SPEC startVssSdkClientEcho(const VssSdkXChar *host,
const VssSdkPort port,
NotifyFunc ¬ifyFunc,
const eProtocolType protocolType,
bool doIcmpEchoRequest = true );
这是我的C++ SDK代码…这里我需要导入这个接口,并需要执行一些操作
[DllImport("VssSdkd")]
public static extern void startVssSdkClientEcho(StringBuilder IpAddress, long port, ? ,eProtocolType proType, bool Req);
NotifyFunc&NotifyFunc->这里我需要实现一些回调函数,它应该像
myNotifyFunc( enumType notificationType, void *data)
{
}
在c void*中,数据不可用如何实现这一点。。。帮我,伙计们。。。在前面的 < P>我不擅长C++,所以我不能直接回答你的问题。不过,我建议你看看。在托管代码中有许多正确使用Windows API的示例。这些信息可能足以帮助您找出适合您的函数的内容。对于回调函数,您可以将引用传递给委托,而p/Invoke将封送回调给您的委托。看看这个 对于void*参数,最好将其转换为始终与指针大小相同的IntPtr。如果需要从该指针检索数据,可以使用中的方法之一 以你为例:
public delegate void NotifyFunc(enumType notificationType, IntPtr data);
[DllImport("VssSdkd")]
public static extern void startVssSdkClientEcho(string IpAddress,
long port, NotifyFunc notifyFunc, eProtocolType proType, bool Req);
请注意,IpAddress可以是字符串。只有在调用代码修改并传回StringBuilder时,它才必须是StringBuilder。因为C++原型将它列为conchch*,所以它不会改变字符串。NotifyFunc callc=新的NotifyFuncCallbackas;这是dele STARTVSSSSDKCLIENTECHO0.0.0,00,callc,siss,false;这是调用fun CallbackaseNotificationType,IntPtr data{}这是我调用的fun是否正确它给出了一些错误msgThis is my error run time check failure 0-如果在函数调用中未正确保存ESP,则该值。这通常是调用使用一个调用约定声明的函数,并使用另一个调用约定声明的函数指针的结果