2
我想編譯一個C/C++宏,它允許我在多個不同的平臺上記錄調試消息。我的代碼適用於Android,iPhone,Win32,我想添加對WindowsPhone的支持。如何將C/C++ printf()消息重定向到Windows Phone日誌記錄系統
我該怎麼做(能夠寫入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
這是C或C++嗎? – Casey
我不在乎哪種語言。我將用C++編譯器進行編譯。 printf()是C函數,但C++編譯器接受它。 – DanielHsH
@Casey,我盡全力將C和C++解耦 - 儘管我發現它更經常煩人 - 但有時它並不重要。 C的某些方面總是會成爲C++的一部分。 – Duck