2017-02-02 5 views
0

Итак, я чувствую себя полным идиотом, но то, что я пытаюсь сделать, это запустить код, который я нашел в Интернете. Фактический код не является проблемой:Импорт библиотек на Visual Studio 2015

Я использую Visual Studio 2015, чтобы попытаться создать программу на C++, и этот код имеет функцию «FindWindow (некоторые параметры)» среди некоторых других. В верхней части он импортирует windows.h. Visual Studio, однако, говорит мне, что идентификатор «FindWindow» не определен. Так я смотрю его: https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx

Требования: WINUSER.H (включая Windows.h)

Библиотека: User32.lib

DLL: User32.dll

Итак, первая вещь, которую я пытался также импортировал winuser.h (не то, что мне кажется, что мне нужно, но это того стоило). Не хорошо. Итак, я смотрю на эту вещь User32.dll. Мне сказали, что вы не можете добавить .dll, добавьте .lib, поэтому я обращаю на это внимание. Я понятия не имею, что с этим делать, но то, что я нашел, говорит о таких вещах, как «Вам не нужно беспокоиться об этом, VS свяжет его для вас» или «Вы должны добавить его к зависимостям (через свойства проекта - > linker -> blah blah) "или" используйте это: #pragma comment (lib, "User32") ". Я попробовал их всех по указанию, но они, похоже, не работали. Лучше всего предположить, что я не добавлял его в зависимости корректно.

Мой вопрос в том, что я делаю неправильно, и как я могу заставить Visual Studio распознать FindWindow как существующий?

Если это помогает, вот что код:

#include <iostream> 
#include <windows.h> 

using namespace std; 

int main(int argc, char* argv[]) { 

    HWND p = FindWindow("ProgMan", NULL); 
    return 0; 
} 

И «FindWindow» имеет красный волнистую линию под ним, наведя указатель мыши говорит «Ошибка: идентификатор„FindWindow“не определен»

ответ

0

Вы должны указать минимальную версию Windows для своего приложения. Добавьте эти строки до включения windows.h

#define _WIN32_WINNT 0x0500 
#define WINVER 0x0500 
+0

Это правда? Или в дополнение к добавлению его к зависимостям или добавлению комментария прагмы или чего-либо еще? Я их отменил, потому что я не хотел лишних лишних вещей сидеть, потенциально вызывающих проблемы. Просто добавление этих строк не помогло. – awenonian

+0

Не нужен ли ему определение для Unicode или ANSI? FindWindow не существует как функция - функция findWindowA или FindWindowW и FindWindow - это макрос, определенный для указания одного из параметров, основанных на настройке Unicode. –

+0

На самом деле, я могу ошибаться. Если UNICODE define не существует, он должен по умолчанию выполнять функции, заканчивающиеся на A .... –