C # Статический вызов метода приводит к ошибке? - PullRequest
1 голос
/ 25 ноября 2010

В одном 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 должен работать ...? Но это не так! Я пытался найти здесь и в Google около часа, но не могу понять, почему это не работает .. Я вызываю метод, используя его класс в качестве местоположения, а затем функцию, полученную при импорте DLL.

Я получаю ошибку "....AU3_Send(string,int)' is a 'method' but is used like a 'type' " ...

Но как я использую его как тип ?? Я думал, это как вы правильно называете статический метод?

Пожалуйста, помогите: (

1 Ответ

7 голосов
/ 25 ноября 2010

Вы уверены, что ваш вызов метода находится в теле метода? Если бы вы могли опубликовать окружающий код, это помогло бы.

Например, это должно скомпилироваться нормально:

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

Я предлагаю вам попробовать, просто чтобы подтвердить, что действительно является контекстом вызова, а не объявлением метода, вызывающим проблему (хотя я полностью ожидаю, что это так).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...