API-интерфейс API Search API Win32 не может найти двоичный путь «telnet.exe», даже если он присутствует в system32.win32 API SearchPath не работает
Однако, когда я сделал поиск для notepad.exe, с тем же кодом он возвращает путь к файлу. Меня озадачивает то, что и notepad.exe, и telnet.exe находятся в одном каталоге i.e C: \ windows \ system32.
Это код, который я написал
char path[MAX_PATH] = {0};
LPSTR* ptr = NULL;
DWORD dwRet = SearchPathA(NULL, "telnet.exe",
NULL, MAX_PATH, (LPSTR)path, ptr);
Это всегда возвращает 0, а GetLastError 2 (Файл не найден)
Любая идея, что происходит здесь?
Я использую Windows 2008 R2 Enterprise издание на x64 машине
Спасибо & С уважением Сунил
* перспективный *, нет * блокировка *. –
Или передайте непереадресованную папку System32 в первом параметре 'SearchPath()', используя псевдоним 'sysnative', который [перенаправитель файловой системы] (http://msdn.microsoft.com/en-us/library/ windows/desktop/aa384187.aspx) не перенаправляет: «32-разрядные приложения могут получить доступ к исходному системному каталогу, заменив% windir% \ Sysnative для% windir% \ System32. WOW64 распознает Sysnative как специальный псевдоним, используемый для указания того, что файл система не должна перенаправлять доступ. Этот механизм является гибким и простым в использовании, поэтому рекомендуемым механизмом является обход перенаправления файловой системы ». –