求教大师,hook send后怎样格式化buf

Andrewdavid 2016-08-20 10:25:31
int WINAPI My_send(SOCKET s, const char FAR* buf, int len, int flags)
{ int length;
CString show;
GetsendHook.UnHook();
for(int i=0; i<len; i++)
{show=buf[i]);
}
ofstream ofresult( "E:\\result.txt ",ios::app);
ofresult<<show<<endl;
length=send(s,buf,len,flags);
GetsendHook.ReHook();
return length;}

但result.txt里的内容都是:
784FD990
784FD990
784FD990
784FD990
784FD990
00A69A40
00A69A40
00A69A40
00A69A40
00A69A40
实际上用OD看的应该是:
INSERT INTO br_zdxx(cd1_bh,cd1_mc,xh,bh,rxm,zh,sj,xm,lx) VALUES ( 'B24 01', 'VICO', '01', '017000025615', 'LZ', '201607006208', '2015-1-1 20:18:59.496', 'SB', 'XY' )
我想把VALUES后面括号里的9个值依次赋给九个变量:char cd1_bh[10], cd1_mc[150], xh[2], bh[30], rxm[50], zh[20], xm[50], lx[10];
在书上和网上都找不到答案,求大师帮忙!
...全文
203 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2016-08-22
  • 打赏
  • 举报
回复
你这写入的都是指针地址等,而不是指针指向的内容
赵4老师 2016-08-22
  • 打赏
  • 举报
回复
int WINAPI My_send(SOCKET s, const char FAR* buf, int len, int flags)
{
    int length;
    FILE *f;

    f=fopen("E:\\result.bin","ab");
    fwrite((const void *)buf,1,(size_t)len,f);
    fclose(f);
    GetsendHook.UnHook();
    length=send(s,buf,len,flags);
    GetsendHook.ReHook();
    return length;
}
Andrewdavid 2016-08-20
  • 打赏
  • 举报
回复
引用 5 楼 CharlesSimonyi 的回复:
show=buf[i];是不行的,一个元素无法赋值到一个数组, show[i]=buf[i];才对
show[i]=buf[i];在上面试过啊,还是十六进制的内存地址
encoderlee 2016-08-20
  • 打赏
  • 举报
回复
show=buf[i];是不行的,一个元素无法赋值到一个数组, show[i]=buf[i];才对
Andrewdavid 2016-08-20
  • 打赏
  • 举报
回复
引用 3 楼 CharlesSimonyi 的回复:
定义char数组要指定长度,比如char show[100];
char show[1000]; for(int i=0; i<len; i++) {show[i]=buf[i];} 还是不行 show=buf[i];无法从 const char 转换为 char 【1000】
encoderlee 2016-08-20
  • 打赏
  • 举报
回复
定义char数组要指定长度,比如char show[100];
Andrewdavid 2016-08-20
  • 打赏
  • 举报
回复
引用 1 楼 CharlesSimonyi 的回复:
问题一: CString show; for(int i=0; i<len; i++) {show=buf[i]); show的初始长度为0,不能通过数组下标直接写入字符。 不建议使用CString,这里使用char数组最方便
老师,用CString确实都是16进制,但我改成char show[]; 编译通不过,具体怎么做还请老师指点! 多谢!!
encoderlee 2016-08-20
  • 打赏
  • 举报
回复
问题一:
CString show;
for(int i=0; i<len; i++)
{show=buf[i]);
show的初始长度为0,不能通过数组下标直接写入字符。

问题二:
ofresult<<show<<endl;
应改成ofresult<<(LPCTSTR)show<<endl;
还要注意工程的字符集问题。

不建议使用CString,这里使用char数组最方便
内容概要:本文详细介绍了一种基于MATLAB实现的改进前推回代法,用于高效求解低压配电网的潮流计算问题。该方法针对传统前推回代法在处理放射状或弱环状配电网络时存在的收敛性差、计算效率低等缺陷,提出了多项优化策略,包括节点分层排序、支路编号优化以及合理的电压初始值设定,从而显著提升了算法的数值稳定性与运算速度。文中系统阐述了改进算法的数学模型构建过程与核心原理,并提供了完整的MATLAB代码实现流程。通过标准算例的仿真测试,验证了该改进方法在计算精度和收敛性能方面的优越性,可为低压配电网的规划、运行状态分析、电压调控及分布式电源接入能力评估等实际工程问题提供可靠的技术支撑。; 适合人群:具备电力系统分析基础知识和MATLAB编程能力的高校研究生、从事电力系统相关研究的科研人员,以及负责配电网规划、运行与优化的工程技术人员。; 使用场景及目标:①实现低压配电网的稳态潮流计算与仿真分析,获取各节点电压和支路功率分布;②支撑含分布式光伏、储能等设备接入的配电网承载力评估与电压越限风险分析;③用于研究电压调控策略、无功补偿配置等优化问题;④作为电力系统专业课程的教学案例,帮助学生深入理解潮流计算的基本原理与数值算法的编程实现。; 阅读建议:建议读者结合文中的理论推导与提供的MATLAB代码进行上机实践,重点关注节点分层逻辑和迭代收敛判据的编程实现细节,通过调试和修改算例参数来加深理解,并可尝试将该方法拓展应用于三相不平衡潮流或动态潮流计算等更复杂的场景。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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