Учитываяkernel32.GetDllDirectory возвращает ошибку (0) при вызове через PInvoke
[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
static extern int GetDllDirectory(int nBufferLength, StringBuilder lpPathName);
StringBuilder tmp = new StringBuilder(10240);
if (GetDllDirectory(10240, tmp) == 0)
{
int err = Marshal.GetLastWin32Error();
}
MSDN утверждает that
Если функция завершается успешно, возвращаемое значение длины строки копируется для lpBuffer, в символах.
Я принимаю 0
, ошибка 0
тоже. Что может быть неправильно?
Не является ли показатель 0 успешным? – spender
@spender, no, http://msdn.microsoft.com/en-us/library/windows/desktop/ms683186(v=vs.85).aspx - Если функция завершается успешно, возвращаемое значение - это длина строка скопирована в lpBuffer, в символах. –
@ScottChamberlain, возвращаемое значение: false, tmp пусто –