0

我有一个 C++ DLL 文件,我需要使用 C# 中的函数。C++ 文件在 ServiceState 中有一个名为“Status”的方法。该块的 C++ 代码如下所示。

STDMETHODIMP ServiceState::Status(/*[out]*/VARIANT *Primary,VARIANT *Secondary ) 
{
if(primary()) 
     Primary->boolVal = TRUE;
else
     Secondary->boolVal = FALSE;

return true;

}

我编译了 C++ 项目并得到了Status.dll输出。我在 C# 代码中初始化如下。

 [DllImport(@"c:\Status.dll")]
 public static extern void ServiceState.Status(IntPtr Primary,IntPtr Secondary);

1)初始化是否正确?

2) 由于该方法在 C++ 中有指针,因此必须将什么 C# 数据类型传递给该方法以及如何传递?请指导我。

谢谢

4

0 回答 0