为什么L之前的dll路径?

时间:2011-03-12 10:37:54

标签: c++ path dllimport

我已经阅读了将dll导入项目的代码,但我不明白为什么我们在路径之前有“L”

module = LoadLibrary(L"freeglut.dll");

我如何设置绝对路径,如“C:/ VisualStudo / Project”

我如何设置相对路径?比如“../../ Project1”

由于

2 个答案:

答案 0 :(得分:3)

L是字符串文字前缀,表示该字符串由宽字符(wchar_t)组成。

在Windows中,你有两个版本的LoadLibrary:LoadLibraryA(ansi)和LoadLibraryW(unicode),通常sone #define为你的编译选择合适的版本。如果您使用的是A版本,则必须传递ansi字符串,因此不需要L,如果您使用的是LoadLiraryW,则必须以Unicode格式传递字符串,因此L作为前缀。

答案 1 :(得分:0)

L告诉编译器以下字符串是一个宽字符串。宽字符串依赖于编译器,但在流行的C ++编译器中,字符串被解释为unicode字符串,并且被编码为(编码依赖于编译器)。对于Visual C ++,字符串编码为UTF-16,与Windows API预期的字符串匹配。