使用C#中的参数bei DLLImport

时间:2011-10-20 10:02:26

标签: c#

我在使用Labview中构建的DLL中的参数时遇到问题。

我的整个代码是:

namespace ConsoleApplication4
{
    public class Program
    {

        //DLL einbinden
        [DllImport(@"C:\DLL_Uebergabe\SharedLib.dll")]
        public static extern void Unbenannt2(out double Amplitude, out double Reqlength);


        public void Main(string[] args)
        {

            //Einbinden der .Net Interop-Assembly
            //double Amp;
            //Result Amplitude = new Result();
            //Amp = Amplitude.GetResult();
            //Console.WriteLine("Amplitude ist demzufolge: {0}", Amp);

            double Amplitude;
            double Reqlength;
            this.Unbenannt2(out Amplitude, out Reqlength);
            Console.WriteLine("Amplitude: {0} und Reqlength: {1}", Amplitude,Reqlength);

        }
    }

}

我的编译器总是说:

“无法使用实例引用访问,而是使用类型名称对其进行限定。”

此错误在代码行引发:

this.Unbenannt2(out Amplitude,out Reqlength);

你可以告诉我这个错误吗?谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

你必须在没有this.指针的情况下调用它,因为它不是实例成员;它是一个静态成员。

答案 1 :(得分:1)

Ahaha !!公共静态 extern。简单使用Program.Unbenannt2或Unbenannt2。

答案 2 :(得分:1)

编译器告诉您,您的方法是static方法,并且您尝试访问它,就像它是实例方法一样。 This means is doesn't belong to an instance of your Program class.

您可以使用类型名称来限定,如编译器所示:

Program.Unbenannt2(out Amplitude, out Reqlength);

或者,既然它属于你的Program类,你可以简单地省略类型名称:

Unbenannt2(out Amplitude, out Reqlength);