【发布时间】:2020-05-25 02:12:42
【问题描述】:
我正在尝试遍历 TCHAR 数组,并且对于每次循环迭代,将迭代次数转换为字符串并将其保存到数组中。
下面的代码是我所拥有的:
#undef UNICODE
#define UNICODE
#undef _UNICODE
#define _UNICODE
#include <tchar.h>
#include <string>
#include <windows.h>
#include <strsafe.h>
#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
LRESULT CALLBACK MyTextWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
//do stuff...
#define LINES 56
static TCHAR *abc[LINES];
for(unsigned int l = 0; l<(LINES-1); l ++){
std::wstring s = std::to_wstring(l);
abc[l]=TEXT(s.c_str());
}
但它在 CodeBlocks 中给出以下错误:
错误:“Ls”未在此范围内声明
我尝试阅读有关 TCHAR 和 TEXT 宏的信息。根据这里https://docs.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-text TEXT 宏需要一个指向字符串的指针,这就是我尝试使用 .c_str() 的原因
【问题讨论】:
-
1.您不能在函数之外编写循环; 2.那个微软页面似乎与现实无关。
-
实际上循环在 WindowProc 内 - 我刚刚修改了我的代码以显示这一点。