如何在不使用对象的情况下连接字符串、整数和浮点数
How to concatenate strings, integers and floating point numbers without using objects?
我想在故障转储文件中添加信息,以防我的应用程序崩溃。
因此,我创建了一个__try
- __except
子句:
__try
{
Do_Something();
}
__except (ShowCrashdumpInformation(_T(__FUNCTION__));
不仅仅是__FUNCTION__
,我想添加更多信息,但我该怎么做?
最简单的方法是使用 CString
,但由于编译器错误C2712
(无法在需要对象展开的函数中使用 __try(而阻止。
所以,我想使用LPCTSTR
字符串(在我的应用程序中广泛使用(。
因此,它应该看起来像(CString
替代方案(:
CString temp; temp.Format(_T("Do_Something, int=[%d], float=[%f], string=[%s]), iParam, fParam, strParam);
有人有想法吗?
谢谢
到目前为止,最简单的解决方案就是简单地回避这个问题。只需将确切的参数(而不是转换(转发到执行实际写入文件的(模板(函数。由于__catch
不在模板函数本身中,而是在堆栈的上一级,因此您是安全的。
您可以使用预处理器宏来"字符串化"标准__LINE__
宏,并依赖于编译器相邻的字符串文本串联。
也许是这样的:
#define STRx(x) #x
#define STR(x) STRx(x)
#define FILE_FUNCTION_LINE (__FILE__ ":" __FUNCTION__ ":" STR(__LINE__))
...
ShowCrashdumpInformation(_T(FILE_FUNCTION_LINE))
只要您有文本值,就可以使用 STR
宏将它们"字符串化",然后使用相邻的字符串串联。
变量是不可能的,只能使用文字值。
相关文章:
- 使用短运算符的字符串连接有区别吗?
- 字符串连接时间复杂度 c++
- 如何将两个 jlong 数据类型转换为 jstring,然后将两个字符串连接在一起以便从 JNI 将字符串返回给 jav
- 如何在 C 宏中将变量字符串与文字字符串连接起来?
- C++中干净高效的字符串连接
- 如何将 Unicode 字符串连接成字符串以传递到 mysql 调用中
- 如何与字符串连接thar数组
- 如何将平台^字符串转换为wstring,然后与L字符串连接
- 如何在c++中进行快速字符串连接
- 在C++中,相当于CPython字符串连接
- 如何在 c++ 中使用 STL 将带有空格的字符串连接成一个字符串
- C++将三个char*字符串连接在一起
- 尝试通过二叉树中的递归返回字符串(连接)
- 使用流的字符串连接返回垃圾
- 将字符串变量与整数和文本字符串连接起来的 C++ 字符串流
- 将 int 变量与字符串连接会导致奇怪的输出
- C++ 将常量字符 * 与字符串连接起来,仅打印常量字符 *
- 通过将模板参数与字符串连接起来生成C++类型名
- 将我的对象与字符串连接
- 没有得到预期的结果字符串连接