Использование функций win32 в проекте Windows Forms. (. Net envir) - PullRequest
1 голос
/ 08 марта 2011

мне нужно использовать некоторые функции win32 в моем проекте формы Windows в режиме clr. (V c ++ 2005) Ошибка, которую я получаю, когда использую функции win32 непосредственно в проекте формы, является

**dbms.obj : error LNK2028: unresolved token (0A00000E) "extern "C" struct HWND__ * __stdcall GetForegroundWindow(void)" (?GetForegroundWindow@@$$J10YGPAUHWND__@@XZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
dbms.obj : error LNK2019: unresolved external symbol "extern "C" struct HWND__ * __stdcall GetForegroundWindow(void)" (?GetForegroundWindow@@$$J10YGPAUHWND__@@XZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)**

моей основнойкод cpp:

#include "stdafx.h"
#include "Form1.h"
#include "windows.h"

using namespace dbms;

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
    HWND neu;
    neu=GetForegroundWindow();
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false); 
    Application::Run(gcnew Form1());
    return 0;
}

код только для демонстрации ошибок, которые я получаю.Это может быть глупо, но я немного знаю о проге win32, но ничего не знаю о платформе .net.если кто-то может помочь мне использовать функцию win32 в приведенном выше коде, я буду благодарен.(я не включал файл form.h .. я думаю, что он может не понадобиться)

1 Ответ

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

Это ошибка компоновщика, а не ошибка компиляции.Вам нужно указать компоновщику, чтобы он искал в библиотеках импорта Windows эти идентификаторы winapi.

Щелкните правой кнопкой мыши свой проект в окне обозревателя решений, выберите Свойства, Компоновщик, Ввод, Дополнительные зависимости.Удалить $ (NoInherit).Это позволяет использовать значения по умолчанию из таблицы свойств проекта «Базовые библиотеки Windows», в нем указываются файлы .lib наиболее распространенных библиотек Windows.Включая user32.lib, тот, который объявляет GetForegroundWindow ().

Вы можете увидеть список .libs, которые были унаследованы от листа свойств проекта, нажав пунктирную кнопку в текстовом поле.Список «Унаследованные значения».Если вы используете «неясный» winapi, библиотека импорта которого отсутствует в списке, вам нужно добавить имя .lib в настройку.Необходимый .lib документирован в статье библиотеки MSDN для функции winapi в разделе «Информация о функции» в нижней части статьи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...