Hi 根据 MSDN 的要求[1], VARIANT of type VT_I4 or VT_BSTR that specifies one of the values listed in Possible Values 但测试中,传入参数可能是浮点数。IE 的解决办法是截断小数部分。 [1]: http://msdn.microsoft.com/en-us/library/aa768621%28v=vs.85%29.aspx 我当前的处理办法是这样的 static HRESULT variant_size2nsastring(nsAString *nsstr, const VARIANT *p) { static WCHAR buf[64]; switch(V_VT(p)) { case VT_BSTR: return nsAString_Init(nsstr, V_BSTR(p)); case VT_I4: { static const WCHAR formatW[] = {'%','d',0}; sprintfW(buf, formatW, V_I4(p)); return nsAString_Init(nsstr, buf); } case VT_R8: { static const WCHAR formatW[] = {'%','.','0','f',0}; sprintfW(buf, formatW, V_R8(p)); return nsAString_Init(nsstr, buf); } default: FIXME("unsupported arg %s\n", debugstr_variant(p)); return E_NOTIMPL; } return S_OK; } 但这么做的话,宽度会被四舍五入,而不是截断。 请问,大家建议我如何解决?谢谢 PS 最新版本的 code 在: https://gitcafe.com/endle/WineGsoc/blob/develop/dlls/mshtml/htmltable.c -- Have a nice day! Zhenbo Li