XLL函数参数签名类型

时间:2013-07-09 11:02:39

标签: c++ excel arguments add-in xll

我使用this示例用于使用C ++构建XLL for Excel。 我创建了自己的函数,它带有2个双精度并返回字符串:

 __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;
}

功能定义:

{
              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函数。 当函数args很长时:

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

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

那么,我必须使用哪个正确的功能签名?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

正确的方法 - 使用断点来查看变量值。