【发布时间】:2012-09-29 23:23:28
【问题描述】:
我有以下指针:
BSTR *PREVIOUS;
我想制作一个新副本到:
BSTR *NEW;
我想将 CONTENTS/DATA(PREVIOUS 指向的)从 PREVIOUS 复制到 NEW。
我刚刚尝试了以下命令,但它不起作用:
memcpy(NEW,PREVIOUS,SysStringByteLen(*PREVIOUS));
我在编译时没有看到任何错误,因为我正在使用 ATL COM 环境。请帮忙。谢谢!
【问题讨论】:
-
你能发布一些代码来演示这个问题吗?
-
我只想复制一个缓冲区指针指向的内容。
-
我猜是 memcpy ,我可能正在复制数据内容的地址,但不确定
-
我还没有为New分配内存,我会尝试这样做。谢谢
-
正如亚当在他的回答中指出的那样,BSTR 已经是一个指针。有关 BSTR 的更多信息以及为什么永远不要使用 malloc、new、free、delete 的原因,请参阅:blogs.msdn.com/b/ericlippert/archive/2003/09/12/52976.aspx 基本上它在内存中的布局与预期不同。