递归火山软件开发平台

标题: 【已解决】火山视窗封装求帮助 [打印本页]

作者: niuyanbo2021    时间: 2025-11-21 21:01
标题: 【已解决】火山视窗封装求帮助
本帖最后由 niuyanbo2021 于 2025-11-22 14:58 编辑

ACDBCORE2D_PORT bool getIntoAsciiBuffer(    ACHAR* pBuf,
    size_t nBufLen
) const;


上述C++方法,按如下方式封装,运行时总是导致崩溃,求高手指点。谢谢!
<火山程序 类型 = "通常" 版本 = 1 />方法 getIntoAsciiBuffer1 <公开 静态 类型 = 逻辑型 注释 = "getIntoAsciiBuffer 句柄值的十六进制字符串将被复制到 pBuf 所指向的缓冲区中."        
注释 = "由于句柄字符串最大长度为 16 字节,因此缓冲区应至少分配 17 字节空间(包含字符串终止符\'\\0\')."        
注释 = "注意:ObjectARX 应用程序需负责释放 pBuf 指向的内存." @嵌入式方法 = "">参数 欲操作本对象 <类型 = AcDb句柄类>参数 返回字符串 <类型 = 变整数
注释 = "pBuf 返回指向句柄字符串的指针">参数 缓冲区值 <类型 = 整数 注释 = "nBufLen pBuf缓冲区的总大小">
{
    @ @<欲操作本对象>.getIntoAsciiBuffer((ACHAR*)@<返回字符串>.GetText(),(size_t)@<缓冲区值>)
}

(, 下载次数: 73)





作者: Xelloss0618    时间: 2025-11-22 12:05
你的“返回字符串”的类型是变整数,咋可能用 GetText ?
改成文本型才可以,另外还需要先对字符串置文本长度。
作者: niuyanbo2021    时间: 2025-11-22 12:44
Xelloss0618 发表于 2025-11-22 12:05
你的“返回字符串”的类型是变整数,咋可能用 GetText ?
改成文本型才可以,另外还需要先对字符串置文本长 ...

返回字符串   是 文本型  ,我调试时忘改了。
作者: niuyanbo2021    时间: 2025-11-22 12:48
(, 下载次数: 73)

作者: Xelloss0618    时间: 2025-11-22 13:09
niuyanbo2021 发表于 2025-11-22 12:48

因为你的文本型是空的啊,先分配缓冲区
置文本长度 (句柄字符串, 16)
作者: niuyanbo2021    时间: 2025-11-22 14:57
Xelloss0618 发表于 2025-11-22 13:09
因为你的文本型是空的啊,先分配缓冲区
置文本长度 (句柄字符串, 16)

OK,问题解决了。非常感谢!
还是X大给力,点赞!




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4