我在尝试为自己键入一个方便的 tstring 时遇到问题(见下文)

#ifndef _NISAMPLECLIENT_H_
#define _NISAMPLECLIENT_H_

#include <windows.h>
#include <stdlib.h>
using namespace std; // ERROR here (1)

#ifdef _UNICODE
#define CommandLineToArgv CommandLineToArgvW
#else
#define CommandLineToArgv CommandLineToArgvA
#endif

typedef basic_string<TCHAR> tstring; // ERROR HERE (2)

尝试编译时出现编译器错误。 “ERROR here (1)”处的错误是:



如果我删除 using namespace std; 声明并将 ERROR HERE (2) 更改为 typedef std::basic_string<TCHAR> tstring; ,则会出现错误:



在那一点上。

提前致谢。 :)

最佳答案

包括 string header ( #include <string> ,而不是 string.h ;))。

另外,永远不要使用:

using namespace ...

...在标题中,除非您想降低其他开发人员的愤怒;)

旁注:在 C++ 中,大多数传统的 C 标准头文件都有没有 .h 扩展但带有前导 c 的对应部分。在您的情况下 #include <cstdlib> 将是更好的选择,尽管这取决于您使用的编译器是否存在实际差异。

关于c++ - tstring typedef 的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5106473/

10-11 16:52