前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

(高分)unsigned char*, const在PB中如何表达?-CSDN论坛-CSDN.NET-中国最大的IT技术社区 --> 首页 论坛帮助 论坛牛人 论坛地图 CSDN > CSDN论坛 > PowerBuilder > API 调用 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 hakki2 (高分)unsigned char*, const在PB中如何表达? [问题点数:100分,结帖人CSDN] 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 只显示楼主 收藏 hakki2 hakki2 等级: 结帖率:100% 楼主 发表于: 2005-09-06 10:15:20 以下API在PB中外部函数的声明应该怎样写? DES_API int RunDes(int bType,int bMode,unsigned char* In,unsigned char* Out,unsigned datalen,const unsigned char* Key,const unsigned char keylen); 我觉得关键是unsigned char*的表示,但不知道怎样转换。 更多 分享到: 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 回复次数:15 相关主题推荐: api 相关帖子推荐: Android聊天应用的基本架构? 求助:注册表键值枚举为什么不能完全显示? 用API函数GetProcessTimes获取进程创建时间的问题 C#如何通过api获取其他程序listview控件各列的标题 问一个高端的问题:如何实现类似手机助手的功能 关于百度地图key的问题,困扰好长时间了,给解决下吧 新人求助应用mfc调用其他硬件的API 利用php的curl获取不到新浪的API数据 hakki2 hakki2 等级: 结帖率:100% #1 得分:0 回复于: 2005-09-06 10:57:46 自己顶一下。请各位帮忙。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 csdsjkk csdsjkk 等级: 结帖率:97.5% 72 #2 得分:0 回复于: 2005-09-06 11:08:51 ref string 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 hakki2 hakki2 等级: 结帖率:100% #3 得分:0 回复于: 2005-09-06 11:10:32 ref string是不行的。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 hakki2 hakki2 等级: 结帖率:100% #4 得分:0 回复于: 2005-09-06 11:12:31 C++中char和unsigned char是两种不同的数据类型。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 csdsjkk csdsjkk 等级: 结帖率:97.5% 72 #5 得分:0 回复于: 2005-09-06 11:48:41 哪里不行? 是编译错还是运行错? 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 lzheng2001 lzheng2001 等级: 结帖率:100% 177 #6 得分:0 回复于: 2005-09-06 12:37:48 很久没用C++ 连unsigned char 是什么类型都不记得了. 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 hakki2 hakki2 等级: 结帖率:100% #7 得分:0 回复于: 2005-09-06 12:58:50 运行的时候报:Specified argument type differs from required argument type at runtime in DLL function rudes. 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 csdsjkk csdsjkk 等级: 结帖率:97.5% 72 #8 得分:0 回复于: 2005-09-06 13:06:32 看看你在pb 中对这个函数的完整声明 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 saiche05 saiche05 等级: 结帖率:100% #9 得分:0 回复于: 2005-09-06 15:21:52 ref string 看看你定义的函数的完整声明是什么 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 ilyf2005 ilyf2005 等级: 结帖率:100% #10 得分:0 回复于: 2005-09-18 21:15:50 数据类型转换表 C PB(16Bit) PB(32Bit) Bool Boolean Boolean Byte,Char Char Char Char* Ref string Ref String Colorref Uint Ulong Double Double Double Dword Uint Ulong Float N/A N/A Handle Uint Ulong Hdc Uint Ulong Hfile Uint Ulong Hinstance Uint Ulong Hwnd Uint Ulong Int Int Int Long Long Long Lparam Uint Ulong Lpbyte Ref Int Ref Long Lpcwstr Ref Blob Ref Blob (Unicode use ToUnicode()) Lpcvoid Ref String Ref String Lpdword Ref Uint Ref Ulong Lpfiletime Ref Time Ref Time Lpint Ref Int Ref Long Lpstr,Lpcstr Ref String Ref String Lpvoid Ref Structstruct_inst Ref Struct struct_inst Lpword Ref Int Ref Ulong Mcierror Long Long Pbyte Ref Int[#] Ref Long[#] Short Int Int Structure Ref Struct struct_inst Ref Struct Struct_inst Uint Uint Uint Void** SUBROUTINE SUBROUTINE Word Int Long Wparam Uint Ulong 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 bbdx2523 bbdx2523 等级: 结帖率:100% #11 得分:0 回复于: 2005-09-19 17:03:57 帮你顶一下,楼上的这个表发出来了,问题应该解决了 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 chcky chcky 等级: 结帖率:100% #12 得分:0 回复于: 2006-04-08 09:51:18 这么老的帖子了,我来顶一下 我也遇到这样的问题,楼上各位用ref string是没错的,只是PB里遇到字符串为0的话,就当作结束了,所有返回的数据有一部份丢失,我在想解决的办法要想办法避免返回的字符串里带有0,所以需要改DLL。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 msgtogcra msgtogcra 等级: 结帖率:100% #13 得分:0 回复于: 2006-04-08 17:11:57 楼上的话不对,以 ASC 码 0 作为判断字符串是否终止,这是各类编程语言共同的标准,岂是 pb 所独有的!至于说 ref string 行可行,要视所传递数据是否有 '/0' 终止符而定!如果传递的数据中有 '/0',就不能用,否则就会发生楼上所说的数据丢失! 判断一个字符串是否结束只能用 '/0',如果一个变量被声明为字符串,那就说明这个变量的内容肯定不包含 '/0'。可问题在于 C++ 中的标准数据类型并不支持字符串,只有字符数组而已(当然 C++ 在 STL 中还是提供了 string 容器方便大家直接使用字符串)。所以如果楼主 unsigned char* 所指向的数据里有 '/0' 的话;就不能用 ref string 来接受,而要用 char[]。使用数组传递,标准的做法是,形参声明为数组类型,并在调用前初始化该数组变量(即分配一块内存空间,外部函数是无法为其分配内存的),因为外部函数没有办法判断数组的大小,所以还要增加一个参数告诉告诉外部函数这个数组的实际大小;Windows API 这样的做法比比皆是,这是常识! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 msgtogcra msgtogcra 等级: 结帖率:100% #14 得分:0 回复于: 2006-04-08 18:47:14 哟!没注意到有 Const 关键字;这样的话是应该从 pb 向 dll 传数据了,那么根本就不要用 REF,直接 string 就好了!pb 不支持在外部函数声明中使用常量关键字,因为没有必要; 至于 char 和 unsigned char 是两种类型的问题,C++ 是会自动把传入的 char 转成 unsigned char 的,这取决于 dll 导出接口的定义,和 pb 没有关系。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 Victorianism Victorianism 等级: 结帖率:100% #15 得分:0 回复于: 2006-04-11 13:03:58 8位无符号字符型 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 --> --> --> --> --> --> 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 写出你眼中的IE11 赢取新年好礼! 勇敢写出你的爱 赢莫文蔚签名大礼 陈勇- 敏捷开发现状及发展之路 本帖子已过去太久远了,不再提供回复功能。 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace [关闭] [关闭]