Я работаю с SDL2 и его дополнительными библиотеками SDL2_image и SDL2_ttf, использую Visual Studio 2017. Библиотеки и DLL-файлы, поставляемые с ними, находятся в другой папке (C: \ SDL2.0 \ lib \ x86), который находится в системном пути.
Когда я запускаю, это терпит неудачу с этим сообщением об ошибке:
Не удалось найти точку входа в процедуру InterlockedCompareExchange @ 12 в библиотеке динамических ссылок C: \ SDL2.0 \ lib \ x86 \ SDL2.ttf.dll.
Я могу это исправить, поместив libfreetype-6.dll, который поставляется с SDL2_ttf, в ту же папку, что и файл .vcxproj; или в папке Debug. Я также могу это исправить, поместив .dll в c: \ windows \ SysWOW64. Но я хочу распространять свой код и не хочу помещать этот файл в каждую папку. или требуют, чтобы пользователи имели права администратора (для доступа к c: \ windows \ SysWOW64); Я хочу, чтобы Windows нашла его в PATH, как это происходит с другими используемыми здесь файлами .dll.
Несколько вещей, которые я попробовал, когда я искал в Интернете решение (безрезультатно):
- Перекомпиляция libfreetype-6.dll
- Загрузка последних версий всех связанных библиотек
- Изменение порядка файлов .lib в свойствах проекта, компоновщика, ввода, дополнительных зависимостей. По общему признанию я, возможно, не попробовал все возможные меры, поскольку есть несколько зависимостей
regsvr32 libfreetype-6.dll
. Это привело к другому сообщению об ошибке:
The module "libfreetype-6.dll" may not be compatible with the version of Windows that you're running. Check if the module is compatible with an x86 (32-bit) or x64 (64-bit) version of regsvr32.exe.
Я видел здесь , что, возможно, мне следует использовать версию regsvr32 в папке system32; когда я это делаю, я получаю
The module "libfreetype-6.dll" was loaded but the entry-point DllRegisterServer was not found. Make sure that "libfreetype-6.dll" is a valid DLL or OCX file and then try again.
Итак: есть ли способ заставить программу найти libfreetype-6.dll в другой папке в PATH и устранить сообщение об ошибке о точке входа в процедуру?
Программа, которую я сейчас тестирую, взята из учебника TrueType с сайта LazyFoo ( source ).