XLL函数参数签名types

我用这个例子来构build使用C ++的XLL for Excel。 我创build了自己的function,它采取2双args和返回string:

__declspec(dllexport) LPXLOPER12 WINAPI PTstate (double P, double T) { static XLOPER12 xResult; xResult.xltype = xltypeStr; debugPrintf("P = %d\n", P); debugPrintf("T = %d\n", T); Calculate(P, T); xResult.val.str = L"\013Calculated"; return(LPXLOPER12) &xResult; } 

function定义:

 { L"PTstate", // Function name/ordinal L"UBB", // Func signature type **U - XLOPER12, BB - P and T double** L"PTstate", // Func name in Func wizard L"P, T", // Arg name in Func wizard L"1", // Function type L"SimpleXll2007", // Category in Func wizard L"", // Shortcut (commands only) L"", // Help topic L"", // Func help in Func wizard L"", // Arg help in Func wizard L"" // Arg help in Func wizard }, 

如果P = 100,345 T = 200,567我得到P = 2061584302和T = -584115552在输出 – 我已经使用debugPrintf函数。 当函数参数很长时:

 __declspec(dllexport) LPXLOPER12 WINAPI PTstate (long P, long T) 

和函数签名“UJJ”我尝试P = 100,345 T = 200,567我得到P = 100和T = 201。

那么,我必须使用哪个正确的函数签名呢?

看起来像逗号被解释为小数点。

正确的方法 – 使用断点来查看variables值。