a2w专题

谨慎使用A2W等字符转换宏

在一个函数的循环体中使用A2W等字符转换宏可能引起栈溢出。 alloca分配的内存是在函数的栈中分配的。而VC编译器默认的栈内存空间是2M。当在一个函数中循环调用它时就会不断的分配栈中的内存。 void WideStringToAnsi(char* strDestination, const wchar_t* wstrSource){if(strDestination == NULL ||

VC中一个关于宏的使用问题 A2W W2A

VC中一个关于宏的使用问题 文/赵湘宁     这儿是个关于宏的问题,我曾用过ATL的串转换宏,包括W2A,开始有些东西我还不太明白。为了使用这些宏,必须在函数的开始处用USES_CONVERSION来初始化某些局部变量。用就用吧,但是看看这个宏的定义,它有类似下面的代码: // 在atlconv.h文件中#define USES_CONVERSION /int _convert; _conv