- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
char skype[6] = "Skype";
HWND firstwindow = FindWindowEx(NULL, NULL, NULL, NULL);
HWND window = firstwindow;
TCHAR windowtext[MAX_PATH]; //search term
//We need to get the console title in case we
//accidentally match the search word with it
//instead of the intended target window.
TCHAR consoletitle[MAX_PATH];
GetConsoleTitle(consoletitle, MAX_PATH);
while(true){
//Check window title for a match
GetWindowText(window, windowtext, MAX_PATH);
if (strstr(windowtext, skype)!=NULL && strcmp(windowtext, consoletitle)!=0) break; //search for program
//Get next window
window = FindWindowEx(NULL, window, NULL, NULL);
if(window == NULL || window == firstwindow){
printf("Window not found.\n");
return 1;
}
} //end while
Error: cannot convert 'TCHAR* {aka wchar_t*}' to 'const char*' for argument '1' to 'char* strstr(const char*, const char*)'
问题出现在这一行:
if (strstr(windowtext, skype)!=NULL && strcmp(windowtext, consoletitle)!=0) break; //search for program
当我在 cygwin mingw32gcc 编译器中运行相同的程序时,我没有遇到任何问题。这是我使用 QT mingw32gcc 编译器的问题吗?我已经包含了<windows.h>
在一开始,所以这不是问题。
编辑:好的,所以我添加了 <tchar.h>
并取代 如果 (_tcsstr(windowtext, skype)!=NULL && _tcscmp(windowtext, consoletitle)!=0) 中断;
但问题仍然存在:错误:无法将参数“1”的“TCHAR* {aka wchar_t*}”转换为“const char*”到“char* strstr(const char*, const char*)”
最佳答案
不是转换为 char *
以在 strstr
中使用,您应该使用 TCHAR
等价物,_tcsstr
;它将编译为对 strstr
或 wcsstr
的正确调用。
关于c++ - 将 TCHAR 转换为 strstr 函数的 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25312216/
我正在为系统中的编译错误而苦苦挣扎,这是代码 struct Strless : public binary_function { public : bool operator()(cons
#include #include using namesapce std; void main() { map Map; Map.insert(make_pare(L"DOG1",1))
我想为一个大单元添加一个小的附加选项,所以我不想处理大量代码。 TCHAR szTempFileName[MAX_PATH]; TCHAR lpTempPathBuffer[MAX_PATH]; in
我遇到了一个奇怪的问题。 我正在编译一个使用静态库 MyLib.lib 的 MFC 应用程序 (VS 2008)。它在 Debug模式下编译正常。但在 Debug Unicode 中显示错误。我在 M
我想将 TCHAR nameBuf[] 转换为 string。 TCHAR nameBuf[MAX_COMPUTERNAME_LENGTH + 2]; DWORD nameBufSize; nameB
我创建了一个类来测试我需要使用的一些功能。本质上,该类将获取传入字符串的深层拷贝,并通过 getter 使其可用。我正在使用 Visual Studio 2012。在项目设置中启用了 Unicode。
下面是我的代码: string szDllPath = "12345"; size_t size = szDllPath.length(); TCHAR* wArr = new TCHAR[size]
我最近了解到可以在代码开头定义的 ## 功能。我正在尝试编译以下代码: #include #include #include #include #include #define paste(
TCHAR* pszBackupPath; m_Edt_ExportPath.GetWindowText(pszBackupPath, dwcchBackupPath); StrTrim(pszBac
我尝试创建 2 个矩阵:1 个 char* 和 1 个 THAR*。但是对于 TCHAR* 矩阵而不是字符串,我得到了某种地址。怎么了? 代码: #include #include using n
这段代码: #include TCHAR example_function() { TCHAR example_tchar[10]; return example_tchar; } int
我有一个简单的代码,argv[1] 是 "Привет"。 #include #include #include #include int _tmain(int argc, TCHAR* ar
我试图理解以下代码: const TCHAR * portName = "COM15"; 我知道 TCHAR 是 Char(在 ANSI 中)或 wChar(在 Unicode 中),基本上是一个表示
我有这个方法,它通过 TCHAR szFileName[] 变量接收路径,其中包含类似 C:\app\...\Failed\ 我想对其进行排序,以便我可以验证该路径上最后一个文件夹的名称是否实际上是“
我很确定这是一个愚蠢的问题,但它让我发疯.. 如何在控制台上打印 TCHAR 数组? DWORD error = WSAGetLastError(); TCHAR errmsg[512]; int r
我有一个项目使用了两个第三方库,它们都在头文件中使用了 TCHAR。不幸的是,一个库被编译为多字节(称为库 a),另一个被编译为 Unicode(称为库 b)。 现在我的理解是 TCHAR 被预编译器
如何将 TCHAR 拆分为其他变量?示例: TCHAR comando[50], arg1[50], arg2[50]; Mensagem msg; _tcscpy(msg.texto, TEXT("
我用 Visual Studio 创建了一个 VC++ 控制台项目,它自动生成了这个函数: int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { .
我是 Windows 编程新手,在阅读 Petzold 的书后,我想知道: 使用 TCHAR 类型和 _T() 函数来声明字符串是否仍然是一种好习惯,或者我应该只使用 wchar_t 和 L"" 新代
有以下方法可以初始化空值。 TCHAR x[5] = {'\0'}; TCHAR x[5] = _T("\0"); 我想知道哪个是正确的? 最佳答案 使用前一个。 _T(...) 将根据项目设置生成
我是一名优秀的程序员,十分优秀!