帮我个忙,把这段个代码中的sprintf给设法去了。

weill 2006-03-04 10:00:39
String IPGetMac(String IPStr)
{
HRESULT hr;
IPAddr ipAddr;
ULONG pulMac[2];
ULONG ulLen;

size_t i, j;
char * szMac = new char[18];
PBYTE pbHexMac = (PBYTE) pulMac;
String ReStr;

ulLen = 6;
ipAddr = inet_addr(IPStr.c_str());
memset (pulMac, 0xff, sizeof (pulMac));
SendARP (ipAddr, 0, pulMac, &ulLen);
if(ulLen > 0){
for (i = 0, j = 0; i < ulLen - 1; ++i) {
j += sprintf (szMac + j, "%02X:", pbHexMac[i]);
};
sprintf (szMac + j, "%02X", pbHexMac[i]);
ReStr = szMac;
}else{
ReStr = "Can't get.";
};
free(szMac);
return ReStr;
}
/*************************************************************
请帮我把里面的sprintf函数给去了,用字串相加或别的,可以用其它比较通用的函数,反正不要用sprintf。
**************************************************************/
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2006-03-05
  • 打赏
  • 举报
回复
String IPGetMac(String IPStr)
{
HRESULT hr;
IPAddr ipAddr;
ULONG pulMac[2];
ULONG ulLen;

String strMac;
PBYTE pbHexMac = (PBYTE) pulMac;
ulLen = 6;
ipAddr = inet_addr(IPStr.c_str());
memset (pulMac, 0xff, sizeof (pulMac));
SendARP (ipAddr, 0, pulMac, &ulLen);
if(ulLen > 0)
{
UINT i;
for(i = 0; i < ulLen - 1; i++)
strMac += (IntToHex(pbHexMac[i], 2) + ":");
strMac += IntToHex(pbHexMac[i], 2);
}
else
{
strMac = "Can't get.";
}
return strMac;
}
Behard 2006-03-05
  • 打赏
  • 举报
回复
直接改为使用 wsprintf 即可
wsprintf 是多线程安全的
内容概要:本文围绕“Modbus协议开发实战项目在通信行业的应用”,以基于RTU的基站动环监控系统为背景,系统阐述了RS-485与Modbus RTU协议在通信基站现场监控单元(FSU)的核心技术与实践要点。文章深入解析了RS-485物理层特性、Modbus RTU帧结构、主从轮询机制及通信参数一致性等关键概念,并结合工程实际,提供了构建高可靠RS-485网络的五大核心技巧,包括总线拓扑、终端电阻、接地隔离、波特率选择与地址规划。通过典型基站动环监控系统架构,展示了智能电表、UPS、环境传感器等设备如何通过Modbus接入FSU。文章还给出了基于C++和libmodbus库的主站轮询程序实例,详细分析了上下文创建、从站设置、超时控制、数据读取与类型解析等关键代码逻辑,强调了工业级开发的错误处理与资源管理。最后展望了边缘智能、无线Modbus、数字孪生等未来趋势。; 适合人群:具备嵌入式开发基础、熟悉C/C++语言,从事工业自动化、通信设备研发或物联网系统集成的工程师,尤其是工作1-3年、参与过串行通信或监控系统开发的技术人员。; 使用场景及目标:①掌握Modbus RTU在RS-485总线上的实际应用方法;②学习如何构建稳定可靠的工业通信网络;③理解动环监控系统多设备数据采集的软件实现机制;④提升在复杂电磁环境下解决通信故障的能力; 阅读建议:此资源融合理论与实战,建议结合具体硬件环境动手实践代码案例,重点关注通信参数配置、错误处理机制与数据解析逻辑,并参考文工程技巧优化实际项目的布线与抗干扰设计。

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧