C#静态方法调用导致错误?

Jas*_*son 1 c# methods static

在一个STATIC类(我的助手类名为AutoItX3Delcarations.cs)中,我已经包装了一个像这样的dll:

//AU3_API void WINAPI AU3_Send(LPCWSTR szSendText, /*[in,defaultvalue("")]*/long nMode);
        [DllImport("AutoItX3.dll", SetLastError = true, CharSet = CharSet.Auto)]
        static public extern void AU3_Send([MarshalAs(UnmanagedType.LPWStr)] string SendText, int Mode);
Run Code Online (Sandbox Code Playgroud)

基本上,在静态类中创建静态方法.

现在,在我的主程序执行中,我尝试执行此方法,如下所示:

 AutoItX3Declarations.AU3_Send("Test Text", 1); 
Run Code Online (Sandbox Code Playgroud)

哪个,由MSDN应该工作......?但事实并非如此!我试图在这里和谷歌搜索大约一个小时,但不知道为什么这不起作用..我通过使用它的类作为位置调用该方法,然后由DLL导入引入的函数.

我得到的错误是 "....AU3_Send(string,int)' is a 'method' but is used like a 'type' " ...

但我如何使用它作为一种类型?我以为这是你正确调用静态方法的方法?

请帮忙 :(

Jon*_*eet 7

您确定您的方法调用是在方法体内吗?如果您可以发布周围的代码,这将有所帮助.

例如,这应该编译好:

static void Foo()
{
    AutoItX3Declarations.AU3_Send("Test Text", 1);
}
Run Code Online (Sandbox Code Playgroud)

我建议你尝试一下,只是为了确认它确实调用上下文而不是引起问题的方法声明(尽管我完全期望是这种情况).