libfaad2.dll не является приложением win32 - ошибка зависимости kernel32.dll

Win7 с пакетом обновления 1 Matlab 2013b

Привет

Я пытаюсь включить библиотеку libfaad2.dll (которую я скомпилировал) в Matlab, чтобы я мог использовать функции. Я пытаюсь сделать это с помощью команды loadlibrary. Но я получаю сообщение об ошибке libfaad.dll не является приложением win32! из Matlab.

Краткий анализ libfaad2.dll с DependencyWalker (версия x64) показал, что ему нужен c:\windows\system32\Kernel32.dll. Но также показано, что 2 функции недоступны в kernel32.dll

---> Так что я думаю, что это не проблема Matlab

НО c:\windows\sysWow64\kernel32.dll включает в себя нужные функции!

Как я могу сказать matlab или вообще, что файл libfaad2.dll должен использовать sysWow64\kernel32.dll?

1 ответ

Решение

Нашел решение: установить 32-битную версию Matlab и попробовать с этим. Сработало с первой попытки!

Более подробно: в Win7 есть 2 разные папки для системных.dll

C: \ windows \ system32: Здесь все.dll для 64-битного программного обеспечения, а не для 32!

C: \ windows \ SysWoW64: WoW64 означает "Windows на 64-битной Windows" и содержит все 32-битные двоичные файлы, необходимые для совместимости, которые работают поверх 64-битной Windows.

Используя 32-битную версию, Matlab будет использовать файлы SysWoW64. И это rigth kernel32.dll, которая содержит все необходимые функции!

Другие вопросы по тегам