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 を静的変数として宣言できると誰かが提案していますが、初期化する方法がよくわかりません。
すべての提案を歓迎します。
一番