【已解决】火山视窗封装求帮助
本帖最后由 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)@<缓冲区值>)
}
你的“返回字符串”的类型是变整数,咋可能用 GetText ?
改成文本型才可以,另外还需要先对字符串置文本长度。 Xelloss0618 发表于 2025-11-22 12:05
你的“返回字符串”的类型是变整数,咋可能用 GetText ?
改成文本型才可以,另外还需要先对字符串置文本长 ...
返回字符串 是 文本型,我调试时忘改了。
niuyanbo2021 发表于 2025-11-22 12:48
因为你的文本型是空的啊,先分配缓冲区
置文本长度 (句柄字符串, 16) Xelloss0618 发表于 2025-11-22 13:09
因为你的文本型是空的啊,先分配缓冲区
置文本长度 (句柄字符串, 16)
OK,问题解决了。非常感谢!
还是X大给力,点赞!
页:
[1]