我正在尝试使用函数LoadLibrary(...),该函数将字符串输入文件名(.dll或.exe)或文件路径。我遇到的问题是文件名本身具有多个句点/点。
例:
HINSTANCE hInst = LoadLibrary(_T("..\\folder\\file.name.dots.exe"));
该句柄始终为null,在这种情况下,我不能简单地更改文件名。微软在https://support.microsoft.com/en-ca/kb/324468中提到了多个句点,但我认为它不适用于文件名。有任何想法吗?
最佳答案
如引用的文章中所建议,始终计算完全限定的路径并将其传递给LoadLibrary
/ LoadLibraryEx()
。这不仅可以解决点缺陷,还可以防止安全漏洞。对应用程序的当前目录进行劫持会导致您的应用程序运行任意代码。
请参阅MSDN on LoadLibraryEx以更好地了解使用LoadLibrary的复杂性。
关于c++ - LoadLibrary()文件路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38358268/