2009-07-14 167 views
0

对于这一位代码,我传递字符串"kellogs special k",我得到1,这意味着字符串是一个整数。我究竟做错了什么?或者它是GMP问题?这是GMP 4.1.2中的错误还是我做错了?

#define F(x) mpf_t (x); mpf_init((x)); 

long __stdcall FBIGISINTEGER(BSTR p1) { 
    USES_CONVERSION; 
    F(n1); 
    LPSTR sNum1 = W2A(p1); 
    mpf_set_str(n1, sNum1, 10); 
    return mpf_integer_p(n1); 
} 

顺便说一句,如果有人是怎么回事使用较新的GMP建议,请您能不能给我的静态库用于Windows的Web地址。 TIA。

回答

3

您应该检查返回值mpf_set_str。它在成功时返回0,失败时返回-1。在这种情况下,它将返回一个失败,并且n1保持不变。 mpf_init将其初始化为零,因此测试零是否是一个整数,mpf_integer_p返回true。

相关问题