gpt4 book ai didi

char - _bstr_t 到 char*,惊人的结果

转载 作者:行者123 更新时间:2023-12-05 00:32:16 24 4
gpt4 key购买 nike

第一的:

LPCTSTR asdfsdf = (LPCTSTR)(_bstr_t)v;
printf("%s\n", asdfsdf);

第二:
printf("%s\n", (LPCTSTR)(_bstr_t)v);

它们是相同的,但第一个条件导致代码不可读

为什么?

最佳答案

_bstr_t class将 BSTR 封装在 C++ 类中。在你的第一个例子中:

LPCTSTR asdfsdf = (LPCTSTR)(_bstr_t)v;

您正在创建 _bstr_t对象,提取 LPCTSTR出了它,但后来临时 _bstr_t对象被破坏。随便 asdfsdf指向的现在已解除分配,无法再使用。

在你的第二个例子中
printf("%s\n", (LPCTSTR)(_bstr_t)v);

临时 _bstr_t直到 printf() 之后对象才会被破坏被调用,所以使用 LPCTSTR 没有问题值(value)。

关于char - _bstr_t 到 char*,惊人的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13739168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com