[英]C++ FindWindow() Issues
我正在尝试使函数找到一个窗口句柄。 我在以下方式之前做了很多次:
HWND windowHandle
windowHandle = FindWindow(NULL, "NameOfWindowIAmLookingFor");
但是,我接着尝试执行以下操作:
string myString = "NameOfWindowIAmLookingFor";
HWND windowHandle
windowHandle = FindWindow(NULL, myString);
并出现以下错误:
error: cannot convert 'std::string {aka std::basic_string<char>)' to 'LPCSTR {aka const char*} ' for argument '2' to 'HWND__* FindWindowA(LPCSTR, LPCSTR)';
我有另一个函数,给myString一个值,所以我想将该值作为变量传递给FindWindow()函数,但是这个错误即将出现,我不明白发生了什么。
问题::为什么我会收到此错误,如何将字符串变量放入FindWindow()函数?
为什么我会收到此错误,如何将字符串变量放入FindWindow()函数?
编译器错误消息非常清楚。 FindWindow()
函数需要一个const char*
作为第二个参数,而std::string
则不是。
要获取指向由std::string
实例管理的原始char数组数据的( const
)指针,请使用c_str()
方法:
FindWindow(NULL, myString.c_str());
问题是你试图将std::string
类型的对象传递给需要LPCSTR
的函数(这是const char*
的别名),但std::string
不会隐式转换为const char*
,因此你收到错误信息。 要使函数起作用,您需要传递一个C风格的字符串( const char*
),您可以通过传递myString.c_str()
而不是myString
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.