25 lines
685 B
C++
25 lines
685 B
C++
// android_compat.h - Android NDK 兼容垫片,通过 CMake force-include 注入每个源文件
|
||
// 不修改任何共用代码(client/、common/)
|
||
#pragma once
|
||
#ifdef __ANDROID__
|
||
#include <string.h>
|
||
#include <stdlib.h>
|
||
|
||
#ifdef __cplusplus
|
||
#include <cstring>
|
||
#include <cstdlib>
|
||
|
||
// strcpy_s(dest, src) — MSVC 2-arg 扩展,Android NDK 无此签名
|
||
template<size_t N>
|
||
inline int strcpy_s(char (&dest)[N], const char* src) {
|
||
strncpy(dest, src ? src : "", N - 1);
|
||
dest[N - 1] = '\0';
|
||
return 0;
|
||
}
|
||
#endif // __cplusplus
|
||
|
||
// rand_s — Windows 安全随机数,Android 用 arc4random 替代
|
||
#define rand_s(p) (*(p) = (unsigned int)arc4random(), 0)
|
||
|
||
#endif // __ANDROID__
|