我正在使用Visual Studio 2017使用SDL2及其附加库SDL2_image和SDL2_ttf。这些库及其随附的.dll文件位于另一个文件夹中(C:\ SDL2.0 \ lib \ x86),位于系统路径中。
运行时,它失败,并显示以下错误消息:
在动态链接库C:\ SDL2.0 \ lib \ x86 \ SDL2.ttf.dll中找不到过程入口点InterlockedCompareExchange @ 12。
我可以通过将SDL2_ttf附带的libfreetype-6.dll与.vcxproj文件放在同一文件夹中来解决此问题;或在Debug文件夹中。我也可以通过将.dll放入c:\ windows \ SysWOW64来修复它。但是我想分发我的代码,并且我不想将该文件放在每个文件夹或中,要求用户具有管理员访问权限(才能访问c:\ windows \ SysWOW64);我希望Windows在PATH中找到它,就像它在这里使用的其他.dll文件一样。
当我在网上寻找解决方案时,我尝试了一些操作(无效):
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.
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.
那么:有没有办法让程序在PATH的另一个文件夹中找到libfreetype-6.dll,并消除有关过程入口点的错误消息?