Почему L перед пути DLL? - PullRequest
       15

Почему L перед пути DLL?

1 голос
/ 12 марта 2011

Я прочитал код, который импортирует dll в проект, но я не понимаю, почему у нас есть «L» перед путем

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

Как я устанавливаю абсолютный путь как «C»: / VisualStudo / Project "

А как мне установить относительный путь?как "../../Project1"

Спасибо

Ответы [ 2 ]

3 голосов
/ 12 марта 2011

L - префикс строкового литерала, указывающий, что строка состоит из широких символов (wchar_t).

В Windows есть две версии LoadLibrary: LoadLibraryA (ansi) и LoadLibraryW (юникод), обычно sone #define, выберите подходящую версию для вашей компиляции.Если вы используете версию A, вам нужно передать строку ANSI, поэтому L не требуется, если вы используете LoadLiraryW, вам нужно передать строку в Unicode, поэтому L в качестве префикса.

0 голосов
/ 12 марта 2011

L сообщает компилятору, что следующая строка является широкой строкой.Широкая строка зависит от компилятора, но в популярных компиляторах C ++ эта строка интерпретируется как строка в кодировке Unicode и кодируется как таковая (кодирование зависит от компилятора).В случае Visual C ++ строка кодируется как UTF-16, что соответствует строке, ожидаемой Windows API.

...