none
Powershell внешняя функция и char *pointer RRS feed

  • Вопрос

  • Привет!

    У меня есть функция в DLL которую я импортирую в powershell и она работает прекрасно, за исключением одного "но" - она не возвращает результат, вот как она выглядит изначально:

    int ReadDomainPassword([in] char *user, [in] char *domain, [out] char *password);

    и вот код из powershell, сразу скажу, что аналогичный код в C# работает и возвращает все как положено:

    $member = @'
    [DllImport(xxx.dll, CallingConvention=CallingConvention.Cdecl, EntryPoint="?ReadDomainPasswordA00ZH@@")]
    public static extern ReadDomainPassword (string user, string domain, StringBuilder password);
    '@
    $method = Add-Type -MemberDefenition $member -Name "RandomName" -UsingNamespace "System.Text" -PassThru
    $password = New-Object System.Text.StringBuilder(256);
    $method.ReadDomainPassword("", "", $password);
    $password.ToString(); # пустая строка (0 длинна) подобный код работает в C#

    Что я делаю не так?


    • Изменено Alexander Shawnee 18 августа 2015 г. 9:23 кое-что кое-где
    18 августа 2015 г. 9:22

Ответы

Все ответы