【问题标题】:Unable to use FindWindowA in CLR C++ Project无法在 CLR C++ 项目中使用 FindWindowA
【发布时间】:2021-09-20 00:26:41
【问题描述】:

我不能在 clr 项目中使用 FindWindowA,因为它给了我一堆错误,这是我的代码。

我正在尝试为游戏制作教练。

就是这样,当你左键单击按钮时,它会找到窗口

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {



    HWND hwnd = FindWindowA(NULL, "Random process");

}

但是,当我运行它时,我得到 2 个未解析的外部符号,这些是错误

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol "extern "C" struct HWND__ * __stdcall 
FindWindowA(char const *,char const *)" (?FindWindowA@@$$J18YGPAUHWND__@@PBD0@Z) referenced in 
function "private: void __clrcall Project1::MyForm::button1_Click(class System::Object ^,class 
System::EventArgs ^)" (? 
button1_Click@MyForm@Project1@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)    Project1     
C:\Users\user\source\repos\Project1\Project1\MyForm.obj 1   

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2028 unresolved token (0A000273) "extern "C" struct HWND__ * __stdcall 
FindWindowA(char const *,char const *)" (?FindWindowA@@$$J18YGPAUHWND__@@PBD0@Z) referenced in 
function "private: void __clrcall Project1::MyForm::button1_Click(class System::Object ^,class 
System::EventArgs ^)" (? 
button1_Click@MyForm@Project1@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)    Project1     
C:\Users\user\source\repos\Project1\Project1\MyForm.obj 1   

【问题讨论】:

  • 可能与错误无关,但为什么不是FindWindowW
  • 抱歉不知道有什么区别,如果不麻烦你介意解释一下吗?
  • @JoeMama FindWindowA() 用于 ANSI 字符串,FindWindowW() 用于 Unicode 字符串。至于链接器错误,您是在User32.lib 中链接吗?或者,您是否使用 PInvoke 联系 FindWindow
  • 我使用 Windows.h 和 TlHelp32.h 作为我的#includes 但是如果这不是你的意思,我不知道你在说什么我很抱歉
  • FindWindowA 在哪里?链接器(这是错误的来源)基本上是在问这个问题,因为您没有提供该函数在哪里找到的指示(这是 User32.lib 发挥作用的地方)。当你编译程序时,头文件所做的就是告诉编译器“在某处有一个名为FindWindowA的函数,所以编译时没有错误并相信程序员”。所以编译器是成功的——但是链接器是真正想知道函数驻留在哪里的那个,因此在链接时出错。

标签: c++ clr


【解决方案1】:

我通过将 userlib32 添加到链接器选项卡中的其他依赖项来解决此问题,非常感谢大家帮助了解问题所在

如果您需要解决此问题,请转到您的项目属性 Linker->Input->Additional Dependencies->Edit 然后添加 userlib32

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多