Skip to content

Commit

Permalink
fixed(strScan): fixed strScan run error vs2010
Browse files Browse the repository at this point in the history
  • Loading branch information
itas109 committed Apr 24, 2024
1 parent 9caf4a5 commit 32a278c
Showing 1 changed file with 23 additions and 5 deletions.
28 changes: 23 additions & 5 deletions include/CSerialPort/iutils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,17 +156,35 @@ class IUtils
return ret;
}

static int strScan(const char *str, const char *format, va_list args)
{
int ret;

#if defined(_MSC_VER)
#if _MSC_VER < 1800 // vs2013
void *a[8];
for (int i = 0; i < sizeof(a) / sizeof(a[0]); ++i)
{
a[i] = va_arg(args, void *);
}
ret = sscanf_s(str, format, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);
#else
ret = vsscanf_s(str, format, args);
#endif
#else
ret = vsscanf(str, format, args);
#endif

return ret;
}

static int strScan(const char *str, const char *format, ...)
{
va_list ap;
int ret;

va_start(ap, format);
#ifdef _MSC_VER
ret = sscanf_s(str, format, ap);
#else
ret = sscanf(str, format, ap);
#endif
ret = itas109::IUtils::strScan(str, format, ap);
va_end(ap);

return ret;
Expand Down

0 comments on commit 32a278c

Please sign in to comment.