我正在使用 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 声明为静态变量,但我真的不知道如何初始化它。
欢迎所有建议。
最好的