C++ C++;FindWindow()问题

C++ C++;FindWindow()问题,c++,findwindow,C++,Findwindow,我试图让一个函数找到一个窗口句柄。我以前曾多次这样做,方法如下: HWND windowHandle windowHandle = FindWindow(NULL, "NameOfWindowIAmLookingFor"); 然而,我随后尝试做了以下工作: string myString = "NameOfWindowIAmLookingFor"; HWND windowHandle windowHandle = FindWindow(NULL, myString); 出现以下错误: err

我试图让一个函数找到一个窗口句柄。我以前曾多次这样做,方法如下:

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)';
错误:无法将参数'2'的'std::string{aka std::basic_string')转换为'LPCSTR{aka const char*}'转换为'HWND_*FindWindowA(LPCSTR,LPCSTR)';
我还有一个函数给myString一个值,所以我想把这个值作为变量传递给FindWindow()函数,但是这个错误就要出现了,我不知道发生了什么

问题:为什么会出现此错误?如何将字符串变量放入FindWindow()函数中

为什么会出现此错误?如何将字符串变量放入FindWindow()函数中

编译器错误消息非常清楚。
FindWindow()
函数需要一个
const char*
作为第二个参数,而
std::string
不是。
要获取(
const
)指针,指向由
std::string
实例管理的原始字符数组数据,请使用
c_str()
方法:

FindWindow(NULL, myString.c_str()); 

问题是,您试图将类型为
std::string
的对象传递给需要
LPCSTR
(这是
const char*
的别名)的函数,但
std::string
不会隐式转换为
const char*
,因此您会收到错误消息。
要使函数正常工作,您需要传递一个C样式的字符串(
constchar*
),这可以通过传递
myString.C_str()来实现
而不是
myString

错误就在你面前。再看看
FindWindow
需要什么,以及你传递给它的是什么。你那了不起的家伙。我有点生疏,非常感谢你写得好的解释。谢谢你那家伙,说得好