简单函数参数问题

youhao1999 2012-12-18 03:35:11

typedef void *PVOID;
//函数指针
int(__stdcall *Pibwrt)(int ud,PVOID buf,LONG ct);
//调用
(*Pibwrt)(Dev,"output 1",7L)

命令别识别可执行

将参数PVOID buf改变如下
CString temp = _T("output 1")
(*Pibwrt)(Dev,*temp,7L),为什么命令识别不了,跟踪调试,命令显示的是乱码,不是"outpout 1"

用temp的话该怎么改?

...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanshen2891 2012-12-18
  • 打赏
  • 举报
回复
把CString改成 CStringA
youhao1999 2012-12-18
  • 打赏
  • 举报
回复
去掉_T,编译出错,怎么改?
引用 4 楼 zhanshen2891 的回复:
引用 3 楼 youhao1999 的回复:还是不对,调试看到: 6f 00 75 00 74 00 70 00 O.U.T.P. 引用 2 楼 happyparrot 的回复:CString temp = _T("output 1") (*Pibwrt)(Dev,temp.GetBuffer(temp.GetLength()),7L) temp.Releas……
zhanshen2891 2012-12-18
  • 打赏
  • 举报
回复
引用 3 楼 youhao1999 的回复:
还是不对,调试看到: 6f 00 75 00 74 00 70 00 O.U.T.P. 引用 2 楼 happyparrot 的回复:CString temp = _T("output 1") (*Pibwrt)(Dev,temp.GetBuffer(temp.GetLength()),7L) temp.ReleaseBuffer();
那是因为使用了宽版的字符串。你把_T去掉吧。 CString temp = "output 1" (*Pibwrt)(Dev,temp.GetBuffer(temp.GetLength()),7L) temp.ReleaseBuffer();
youhao1999 2012-12-18
  • 打赏
  • 举报
回复
还是不对,调试看到: 6f 00 75 00 74 00 70 00 O.U.T.P.
引用 2 楼 happyparrot 的回复:
CString temp = _T("output 1") (*Pibwrt)(Dev,temp.GetBuffer(temp.GetLength()),7L) temp.ReleaseBuffer();
快乐鹦鹉 2012-12-18
  • 打赏
  • 举报
回复
CString temp = _T("output 1") (*Pibwrt)(Dev,temp.GetBuffer(temp.GetLength()),7L) temp.ReleaseBuffer();
你妹的特盗不 2012-12-18
  • 打赏
  • 举报
回复
char buf[]="outpout 1"; (*Pibwrt)(Dev,buf,7L)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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