Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何重定向C/C++;发送到windows phone日志记录系统的printf()消息_C++_C_Windows Phone 7_Logging - Fatal编程技术网

C++ 如何重定向C/C++;发送到windows phone日志记录系统的printf()消息

C++ 如何重定向C/C++;发送到windows phone日志记录系统的printf()消息,c++,c,windows-phone-7,logging,C++,C,Windows Phone 7,Logging,我想编译一个C/C++宏,它允许我在许多不同的平台上记录调试消息。我的代码适用于Android、iPhone、Win32,我想添加对WindowsPhone的支持 如何操作(能够将ascii消息写入日志文件/控制台) 我是WindowsPhone平台的新手,因此如果没有几个不同的日志记录系统,请建议我使用哪个系统 我的代码附在下面: #if (WIN_PC_OS) // In windows EXE's, DLL's and Lib's allow logging #define MY_

我想编译一个C/C++宏,它允许我在许多不同的平台上记录调试消息。我的代码适用于Android、iPhone、Win32,我想添加对WindowsPhone的支持

如何操作(能够将ascii消息写入日志文件/控制台)

我是WindowsPhone平台的新手,因此如果没有几个不同的日志记录系统,请建议我使用哪个系统

我的代码附在下面:

#if (WIN_PC_OS)
  // In windows EXE's, DLL's and Lib's allow logging
  #define MY_SYSTEM_LOG_INFO(...)   fprintf(stderr, __VA_ARGS__)
  #define MY_SYSTEM_LOG_WARN(...)   fprintf(stderr, __VA_ARGS__)
  #define MY_SYSTEM_LOG_ERR_(...)   fprintf(stderr, __VA_ARGS__)
#elif (ANDR_OS)
  // Redirect log messages to android log.
  #include <android/log.h>
  #define MY_SYSTEM_LOG_INFO(...)   __android_log_print(ANDROID_LOG_INFO    ,LOG_TAG,__VA_ARGS__)
  #define MY_SYSTEM_LOG_WARN(...)   __android_log_print(ANDROID_LOG_WARN    ,LOG_TAG,__VA_ARGS__)
  #define MY_SYSTEM_LOG_ERR_(...)   __android_log_print(ANDROID_LOG_ERROR   ,LOG_TAG,__VA_ARGS__)
#elif (APPLE_OS)
  // Redirect log messages to iPhone log. Like NSLog(@__VA_ARGS__);
  #define MY_SYSTEM_LOG_INFO(...)   fprintf(stderr, __VA_ARGS__)     
  #define MY_SYSTEM_LOG_WARN(...)   fprintf(stderr, __VA_ARGS__)
  #define MY_SYSTEM_LOG_ERR_(...)   fprintf(stderr, __VA_ARGS__)
#else
  // Windows phone supported yet!!!!
#endif
#if(WIN_PC_OS)
//在windows EXE中,DLL和Lib允许日志记录
#定义我的系统日志信息(…)fprintf(标准、变量、参数)
#定义MY_SYSTEM_LOG_WARN(…)fprintf(标准、变量、参数)
#定义我的系统日志错误fprintf
#埃利夫(安德鲁斯)
//将日志消息重定向到android日志。
#包括
#定义我的系统日志信息(…)\uuuuAndroid日志打印(android日志信息、日志标签、参数)
#定义我的系统日志警告(…)\uuuuAndroid日志打印(android日志警告、日志标签、参数)
#定义我的系统日志错误(…)\uuuuu安卓日志打印(安卓日志错误、日志标记、变量)
#elif(苹果操作系统)
//将日志消息重定向到iPhone日志。像NSLog(@u VA_ARGS_uu);
#定义我的系统日志信息(…)fprintf(标准、变量、参数)
#定义MY_SYSTEM_LOG_WARN(…)fprintf(标准、变量、参数)
#定义我的系统日志错误fprintf
#否则
//Windows phone仍受支持!!!!
#恩迪夫

Windows Phone运行时具有常见的
stderr
stdout
描述符,您可以使用类似于问题片段中显示的
WIN_PC_OS
案例的描述符。事实上,你可以把这两种情况结合起来

<>但是您已经将C和C++都表示为问题的标记,所以注意如果您希望提供一个单独的宏C++,使用<代码> STD::CURR < /C> > <代码> STD::EntL,如in,

std::cerr << "INFO my info log message" << std::endl;

代码> STD::CERP,它是C还是C++?我不在乎哪种语言。我将用C++编译器编译它。Prtff-()是C函数,但是C++编译器接受它。@凯西,我尽全力去解压缩C和C++——尽管我发现它经常比讨厌的多——但是有时候它并不重要。C的某些方面总是将成为C++的一部分。@ DanielHsH,你真的瞄准Windows Phone 7吗?她认为这已经过时了。。。如果您的目标是windows phone 8,您可能希望使用名称空间中的工具进行日志记录,因为无法保证
stderr
将转到您想要的地方。