在一个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' " ...
但我如何使用它作为一种类型?我以为这是你正确调用静态方法的方法?
请帮忙 :(
您确定您的方法调用是在方法体内吗?如果您可以发布周围的代码,这将有所帮助.
例如,这应该编译好:
static void Foo()
{
AutoItX3Declarations.AU3_Send("Test Text", 1);
}
Run Code Online (Sandbox Code Playgroud)
我建议你尝试一下,只是为了确认它确实是调用上下文而不是引起问题的方法声明(尽管我完全期望是这种情况).
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |