社区
ATL
帖子详情
COM应该用什么数据类型传递char*内存块?
Garfield
2012-08-03 09:08:36
我做了个进程外的EXE COM Server,
客户端需要调用它的接口发送数据块,数据块原是char *类型的字节数组
我应该用SAFEARRAY呢还是其他IDataObject还是什么来传递这个内存块呢?
用BSTR不知道可不可以,但是即使可以,也感觉不太合适。
...全文
124
7
打赏
收藏
COM应该用什么数据类型传递char*内存块?
我做了个进程外的EXE COM Server, 客户端需要调用它的接口发送数据块,数据块原是char *类型的字节数组 我应该用SAFEARRAY呢还是其他IDataObject还是什么来传递这个内存块呢? 用BSTR不知道可不可以,但是即使可以,也感觉不太合适。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Garfield
2012-08-03
打赏
举报
回复
只是,效率问题看起来很堪忧
Garfield
2012-08-03
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
带\0那就不是标准的字符串 用数组
BYTE 和 COleVariant 相互转换 .
[/Quote]
明白了,还是用SAFEARRAY
zgl7903
2012-08-03
打赏
举报
回复
带\0那就不是标准的字符串 用数组
BYTE 和 COleVariant 相互转换 .
Garfield
2012-08-03
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
char*就可以啊,传指针。
[/Quote]
我试过用BYTE *,但是只能传递1个字节,即使IDL这样声明:
SendMsg([in, sizeis(MsgLen)] BYTE *Msg, [in] LONG MsgLen)
Garfield
2012-08-03
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
_bstr_t _variant_t COleVariant CComVariant 应该都可以
基本实现上都是 SysAllocString SysFreeString
[/Quote]
不能啊,char*内存块不是字符串,中间有可能会包含\0的,没法用SysAllocString来拷
zgl7903
2012-08-03
打赏
举报
回复
_bstr_t _variant_t COleVariant CComVariant 应该都可以
基本实现上都是 SysAllocString SysFreeString
牛 魔 王
2012-08-03
打赏
举报
回复
char*就可以啊,传指针。
MySQL
数据类型
和运算符
Re: MySQL
数据类型
和运算符=============================#
数据类型
整数类型:五种 TINY SMALL MEDIUM INT BIG 浮点和定点小数类型:三种 FLOAT DOUBLE DECIMAL 日期与时间
数据类型
:五种 YEAR -1 字符串类型:二种
CHAR
(M) VAR
CHAR
(M) -1 二进制字符串:位字段BIT 固定BINARY 可变VARBINARY -1 # 运算符 算术 运算符 比较 运算符 逻辑 运算符 位操作 运算符 运算符的优先级-------------------------------------
如何将std :: string转换为const
char
*或
char
*?
如何将std::string转换为
char
*或const
char
* ?
C/C++ unsigned
char
*类型
C++ unsigned
char
*是表示无符号字符指针的意思。 细节如下:
char
前面添加unsigned表示是无符号的字符,也就是不可以存储负数; 在
数据类型
后面加*表示指针的意思; 指针是C和C++的一种特色
数据类型
,可以方便的访问
内存
,也可以通过指针自己控制堆的分配与使用。 此外: 在C中,默认的基础
数据类型
均为signed,如定义变量为int,long等,都为有符号的。如果要定义无符号类型,必须显式地在变量类型前加unsigned。
char
vs unsigned
char
相同点:在内
char
* 类型使用总结
对于字符类型的指针真的有很多很多要注意的地方,而且他是String,CString等各种字符串相互转换的桥梁。 使用上稍不注意就会出错。 1.初始化
char
* pstr = "hello world.";这是一个指向字符串常量的指针,也就是说hello wrold.是不能被修改的。因为它存储在程序
内存
中的常量区。很多时候不注意就把pstr当做参数
传递
了。 所以我们初始化需要改变的
关于const
char
*和
char
*、const
char
** 和
char
** 赋值问题
根据ANSI C标准的赋值约束条件: 1. 两个操作数都是指向有限定符或无限定符的相容类型的指针。 2. 左边指针所指向的类型必须具有右边指针所指向类型的全部限定符。 一、const
char
*和
char
* const
char
*的类型是:“指向一个具有const限定符的
char
类型的指针”。(不能修改其值)
char
*的类型是:“指向一个
char
类型的指
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章