【发布时间】:2016-07-13 17:32:43
【问题描述】:
我正在尝试使用函数 LoadLibrary(...) 将字符串接收到文件名(.dll 或 .exe)或文件路径。我遇到的问题是文件名本身有多个句点/点。
例子:
HINSTANCE hInst = LoadLibrary(_T("..\\folder\\file.name.dots.exe"));
句柄始终为空,在这种情况下我不能简单地更改文件名。微软在https://support.microsoft.com/en-ca/kb/324468 中提到了多个句点,但我认为它不适用于文件名。有什么想法吗?
【问题讨论】:
-
这是一个相对路径。那么...相对于什么?
-
这是我正在工作的项目的相对路径。我已经测试了这个相对路径来处理没有任何多个句点的文件名
-
顺便说一句...从不像这样发布代码。始终计算完全限定的路径并将其传递给 LoadLibrary()。原因:安全漏洞。
-
另外,请查看LoadLibraryEx 了解更多信息。如果您注意到文章的长度和它所采用的选项数量,您可以感受到开发人员使用 LoadLibrary 拍摄自己的方式的数量。 .
-
感谢大家的回复,完整路径确实有效!我可能没有正确写出相对路径。
标签: c++ handle loadlibrary