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, которая содержит все необходимые функции!