c ++ dll xml文档在c#vs2015中的注释

时间:2017-04-17 11:39:49

标签: c# c++ xml dll

我有一个用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中查看文档 感谢。

2 个答案:

答案 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不可能实现。 最好的问候!