У вас есть строковый литерал, который состоит из узких символов. Ваш LoadLibrary
звонок, очевидно, ожидает широких символов. Приведение типов не способ конвертировать из одного в другое. Используйте префикс L
, чтобы получить широкий строковый литерал:
LoadLibrary(L"ntdll.dll")
Приведение типов говорит компилятору, что ваш char const*
действительно wchar_t const*
, что не соответствует действительности. Компилятор доверяет вам и передает указатель на LoadLibrary
в любом случае, но когда интерпретируется как широкая строка, то, что вы передали, является бессмысленным. Он не представляет имя какого-либо файла в вашей системе, поэтому API правильно сообщает, что не может найти модуль.