2010-11-25 55 views
1

在一个静态类(我的助手类命名AutoItX3Delcarations.cs)我已经结束了一个dll像这样:C#静态方法调用导致错误?

//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); 

上讲,创建一个静态类中的静态方法。现在

,在我的主程序执行我试图像这样执行该方法:

AutoItX3Declarations.AU3_Send("Test Text", 1); 

其中,通过MSDN应该工作...?但它不!我试图通过这里和谷歌搜索大约一个小时,但不明白为什么这是行不通的。我通过使用它的类作为位置,然后通过DLL导入带入的函数来调用该方法。

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

,不过为什么我使用它作为一个I型?我认为这是你如何正确调用静态方法?

请帮助:(

+0

请发布代码*围绕*您的方法调用。 – 2010-11-25 08:32:56

回答

7

你确定你的方法调用的方法体内如果你能张贴周围的代码,这将有助于

例如,这应该罚款编译?:

static void Foo() 
{ 
    AutoItX3Declarations.AU3_Send("Test Text", 1); 
} 

我建议你尝试,只是为了确认它真的是呼叫内容,而不是它引起的问题(虽然我完全相信是这样的话)的方法声明。

+0

哇......我有*不知道方法调用必须在方法体内..我只是在我的主窗体类中测试它。我把它移到我的主线程类中的一个方法,现在编译好了......嗯,看起来像一个简单的步骤和愚蠢..对不起所有! – Jason 2010-11-25 09:07:54