对于这段代码,我传递字符串"kellogs special k"
,我得到1
,这意味着字符串是一个整数。我究竟做错了什么?还是GMP问题?
#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,请给我一个静态LIB for Windows的网址。 TIA。
答案 0 :(得分:3)
您应该检查mpf_set_str
的返回值。成功时返回0
,失败时返回-1
。在这种情况下,它将返回失败并且n1
保持不变。 mpf_init
将其初始化为零,因此测试零是否为mpf_integer_p
的整数将返回true。