我正在寻找在Windows应用程序中处理更长的文件路径.
目前,我有一个文本框(编辑框),用户可以在其中键入绝对文件路径.然后,我将这个类型化的文件路径读GetWindowText
入一个声明如下的字符串:TCHAR FilePath[MAX_PATH];
显然,在这里,我依靠的是MAX_PATH
常数,这限制了我的260个字符.因此,为了处理更长的文件/路径名称,我可以像这样扩展我的TCHAR数组:TCHAR FilePath[32767];
.
或者,还有更好的方法?我可以使用可变长度数组吗?(TCHAR FilePath[];
这在C++中是否可能? - 对不起,我对此很新).
先谢谢你!
这是我上面提到的整个代码片段:
TCHAR FilePath[MAX_PATH];
ZeroMemory(&FilePath, sizeof(FilePath));
GetWindowText(hWndFilePath, FilePath, MAX_PATH);
Run Code Online (Sandbox Code Playgroud) 我需要在C++中设计(并在某些时候编写代码)"自定义"字符串类.我想知道你能不能让我知道任何文件和设计问题,主要是我应该注意的潜在缺陷.非常欢迎链接,以及使用当前字符串库(Qstring,std :: string和其他)识别问题(如果有).
谢谢.
在我的应用程序中,我在我的代码顶部附近声明一个字符串变量来定义我的窗口类的名称,我在调用RegisterClassEx,CreateWindowEx等时使用它.现在,我知道LPCTSTR是一个typedef并且最终会跟进到TCHAR(根据是否定义了UNICODE,以及CHAR或WCHAR),但我想知道使用它是否更好:
static LPCTSTR szWindowClass = TEXT("MyApp");
Run Code Online (Sandbox Code Playgroud)
或这个:
static const TCHAR szWindowClass[] = TEXT("MyApp");
Run Code Online (Sandbox Code Playgroud)
我个人更喜欢使用LPCTSTR来自JavaScript,PHP,C#背景我从未真正考虑将字符串声明为字符数组.
但实际上使用一个优于另一个是否有任何优势,或者它实际上甚至对我选择哪一个都没有影响?
谢谢你,先进的,你的答案.