我有一个用C ++编写的DLL,带有一些计算功能 我使用PInvoke(平台调用)在C#窗体中使用它 我在DLL文件夹中也有一个XML文档 我使用的是Win7 x64,并且双方都更新了VS2015和x64编译器 的问题: 为什么我在C#中看不到smartSense中的评论? 这是我的C ++代码
///<summary>this is sample</summary>
extern "C" __declspec(dllexport) int __stdcall foo(int a, int b)
{
int c = a*a + b*b;
return c;
}
这是我的C#代码
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("Project2")]
public static extern int foo(int a, int b);
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = foo(4, 5).ToString();
}
}
}
该功能正常但我无法在intelliSense中查看文档 感谢。
答案 0 :(得分:0)
您可以使用C#代码在该方法上创建XML文档:
/// <summary>
/// Does some stuff.
/// </summary>
/// <param name="a">Helps with stuff.</param>
/// <param name="b">Also helps with stuff.</param>
/// <returns>The result of doing stuff.</returns>
[DllImport("Project2")]
public static extern int foo(int a, int b);
请注意,属性部分被认为是方法声明的一部分,因此,XML文档必须在它们之前(presentation at Dataworks Summit Barcelona 2019)。
答案 1 :(得分:0)
很抱歉迟到!如果其他人有同样的问题,我会为他们写解决方案。 我发现对于C ++ PInvoke,这是不可能的。 XML文档适用于.Net兼容代码。我将该项目的解决方案更改为C ++ / CLI。那就是解决方案! C ++ / CLI兼容.Net并完全支持XML文档。其引用也不同。您只需将C ++ / CLI项目添加到您的解决方案中,或将其dll添加到引用中。我认为C ++ / CLI有一些好处,与C ++相比,我认为它没有缺点。我认为PInvoke不可能实现。 最好的问候!