Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有人能找到等价的c代码吗_C# - Fatal编程技术网

C# 有人能找到等价的c代码吗

C# 有人能找到等价的c代码吗,c#,C#,我需要等效的c代码 VssSdkClientId VSS_SDK_SPEC startVssSdkClientEcho(const VssSdkXChar *host, const VssSdkPort port, NotifyFunc &notifyFunc,

我需要等效的c代码

VssSdkClientId VSS_SDK_SPEC startVssSdkClientEcho(const VssSdkXChar *host,
                                                      const VssSdkPort port,
                                                      NotifyFunc &notifyFunc,
                                                      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,则该值。这通常是调用使用一个调用约定声明的函数,并使用另一个调用约定声明的函数指针的结果