gpt4 book ai didi

C#静态方法调用结果出错?

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:12 25 4
gpt4 key购买 nike

在一个 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);

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

现在,在我的主程序执行中,我尝试像这样执行此方法:

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

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

我得到的错误是 "...AU3_Send(string,int)' 是一个'方法',但像'类型'一样使用"...

但是我如何将它用作类型?我认为这就是您正确调用静态方法的方式?

请帮忙:(

最佳答案

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

例如,这应该可以正常编译:

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

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

关于C#静态方法调用结果出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4274994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com