2016-12-02 5 views

ответ

2

Это может быть случай, когда вы используете командную строку 32 bit native tool. Нет необходимости изменять имя библиотеки для поддержки x64, так как user32.lib и kernel32.lib отличаются для 64 bit environment, но имя такое же.

+0

Да, с помощью командной строки с 64-битной средой решена моя проблема. Спасибо @shagun –

-1

Посмотрите на документы MSDN для функции - https://msdn.microsoft.com/en-us/library/windows/desktop/aa366763(v=vs.85).aspx

Библиотека - kernel32.lib

DLL - Kernel32.dll

Вам нужно добавить kernel32.lib в список аргументов компилятора, и он пересылает это компоновщику.

+0

Я пробовал этот подход, но не работал. –

+0

, нам не нужно напрямую ссылаться на kernel32.lib, поскольку это уже сделано по умолчанию командой cl.exe –

+0

Компоновщик связывает, а не cl. Библиотеки по умолчанию не всегда связаны друг с другом. cl.exe может создавать драйверы ядра, и у них определенно нет kernel32.lib. Если это не работает, то я предполагаю только, что вы нацеливаете 32-разрядные, но определяете _WIN64 и заставляете все прототипы ваших функций ошибаться. Можете ли вы вставить полную командную строку компилятора? – djgandy