中易网

PBYTE类型是什么类型?

答案:3  悬赏:70  
解决时间 2021-04-18 05:31
从来没见过这种数据类型,有什么作用?
最佳答案
这是windows程序设计里的,自己也可以自定义类似的类型,主要是用来表示无符号单字节数值,typedef unsigned char BYTE;
typedef BYTE * PBYTE;
全部回答
(1)你是想在c#中调用c++ dll中提供的函数接口吧?假如你的dll名字为mylib.dll,且位于系统路径中或运行目录中,那么在c#中如此写就可以调用了: [dllimport("mylib.dll")] public extern static void lponreceiveuserdata( intptr buffer, int32 sizebuffer, ref byte name, int32 sizesomething); 说明3点: a。请注意参数转换,你可能注意到了我对c++中数据类型unsigned long和unsigned int 都转换为了c#中的int32,这个基本没有问题,在我们现在用的32位操作系统中,都是4个字节,即32位;在16位系统中,是有区别的,long 为32位,int为16位,我想现在都应该基本没有人用16位的操作系统了吧,呵呵; b。另外形参的名字是我根据此函数接口的意思加上的,也许名字命名得不太准确,但这并不影响正确使用,没有办法,原型中没有形参的名字(对于这个问题,稍后给你解释。顺便说一句:如果是故作高深其实很肤浅,当然也许dll的作者有其特殊的原因,其意图我不可臆测 ); c。因为调用的是__stdcall函数,所以使用了p/invoke的调用方法。其中的方法functionname必须声明为静态外部函数,即加上 extern static声明头。 (2)关于补充问题: 在c++中byte*一般写法是pbyte(不过没有关系,反正都是正确的),其实byte就是unsigned char,中是这样定义byte的:typedef unsigned char byte;所以其在c#中对应参数转换为ref byte; 给你解释一下c++ 中定义的这个函数接口: typedef void(__stdcall *lponreceiveuserdata)(void *, unsigned long, unsigned char *, unsigned int); 返回值为void,即无返回值; __stdcall为函数的调用规范,windows中的winapi宏就是被定义为__stdcall的(有这样的宏定义:#define winapi __stdcall),这个调用规范定义的函数接口是标准的windows api; 至于参数列表中只有类型,而没有形参名,这是因为对编译器来说,只对形参类型敏感,而形参名字其实是别忽略的,所以写不写对编译器来说都是一样的,但是程序另一方面也是写给人看的,所以作为好习惯呢,还是要写上有意义的形参名最好!
是一个指针类型,主要用于读写指定内存并且目标内存处的数据格式不清楚的情况下
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
好好地爱一个人累么?
上次亚锦赛的篮球比赛结果怎样?
QQ三国镶工能做次级风行石和风行石,这2个有
中国邮政(岩东乡邮政支局)地址在哪,我要去那
福建省宁德市福鼎市山前街道山前下村邮编是什
捌号商务酒店地址在什么地方,我要处理点事
有什么小秘方可以改善干燥干枯的头发?
COS团队-小孩(11)可以创建么
可能十年前的一首动漫歌,开头一个空灵的女声
美特斯邦威,only,杰克琼斯,veromoda做导购
在韩国送女人韩服有什么意义?
成年的格力犬灵提犬山东细犬惠比特那个最大那
怎么或的宠物?
将发芽的土豆煮熟还有毒吗
与棉花糖的网名?
推荐资讯
卡赞的诅咒指什么(不是DNF的装备)
阳泉哪有买守护甜心东西的呀?
从深圳到佛山市南海区里水镇和顺和桂工业园怎
什么事召回制度
江干区三里亭东升苑属于哪个镇
烟台开发区哪里卖床?
dnf 找个网上有名的体术鬼泣(例如:红眼电眼
任信云商怎么样
谁知道如何申请御膳房网的企业VIP卡啊~
请用离子电子法配平,写下氧化和还原反应的方
哪里有养土元养殖户?
我是江苏考生,扬州职业大学何时发送录取通知
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?