我在尝试为自己键入一个方便的 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/