HP-Socket icon indicating copy to clipboard operation
HP-Socket copied to clipboard

库的头文件好像包含了windows.h

Open wangwenx190 opened this issue 6 months ago • 2 comments

库的头文件看起来无条件包含了windows.h,导致污染了用户的代码(windows.h里面定义了很多宏)。而且Windows平台传递字符串用的LPWSTR,导致跨平台的客户端需要根据不同的平台调不同的接口,还要自己处理char和wchar_t字符串的转换,感觉很不方便啊,能尽量统一一下吗?

wangwenx190 avatar May 19 '25 11:05 wangwenx190

  1. Windows版本没有跨平台的问题
  2. 可以用_T()宏屏蔽字符集差异,另外可以根据需要设置用MBCS/UNICODE编译你的项目。

ldcsaa avatar May 21 '25 14:05 ldcsaa

我主要想表达你后端实现可以分系统,头文件能不能全平台统一呢,字符串就用std::string_view或者std::string来传递,别让库的头文件里也引入平台相关的东西。比如现在头文件里是有windows.h的引入的,而Windows自己的头文件里又有各种乱七八糟的宏定义,很容易干扰到我自己的代码。

wangwenx190 avatar May 26 '25 09:05 wangwenx190

#if defined(__linux__)
#include "Linux/include/..."
#else
#include "Windows/include/..."
#endif

ldcsaa avatar Jun 21 '25 22:06 ldcsaa