gpt4 book ai didi

c++ - 如何编写一个 Excel C 加载项函数,将字符串返回到 Excel 而不会发生内存泄漏?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:52:02 25 4
gpt4 key购买 nike

我正在使用 C++ 编写 Excel XLL 插件,我希望我的函数使用预定义的 XLOPER12 将字符串返回到 Excel。

据我所知,Excel 要求函数返回一个指向内存的指针,然后它进行浅拷贝,然后在不清除函数中分配的内存的情况下消失。所以如果我写这样的东西:

extern "C" LPXLOPER12 WINAPI strgen() {
XLOPER12 res;

res.xltype = xltypeString;
res.val.str = (XCHAR*)malloc(2*sizeof(XCHAR));
res.val.str[0] = (XCHAR)1;
res.val.str[1] = L"X";

return (LPXLOPER12)&xRes;
}

但显然这会导致内存泄漏。有人建议我可以将 res 声明为静态变量,但我真的不知道如何初始化它。

欢迎所有建议。

最佳

最佳答案

使用 https://xll.codeplex.com 为自己省去一些麻烦.注册和定义功能的完整代码是

static AddIn12 xai_strgen(
L"?strgen", L"STRGEN",
XLL_LPOPER12, L"");
LPOPER12 WINAPI strgen()
{
#pragma XLLEXPORT
static XLOPER12 xRes(L"X");

return &xRes;
}

关于c++ - 如何编写一个 Excel C 加载项函数,将字符串返回到 Excel 而不会发生内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14679575/

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