我将字符串传递给这段代码 "kellogs special k" 我得到 1 这意味着字符串是一个整数。我到底做错了什么?还是GMP问题?
"kellogs special k"
1
#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静态库的网址。蒂亚。
您应该检查 mpf_set_str . 它回来了 0 论成功与发展 -1 一旦失败。在这种情况下,它将返回一个失败,并且 n1 没有动过。 mpf_init 将其初始化为零,因此测试零是否为带 mpf_integer_p 返回true。
mpf_set_str
0
-1
n1
mpf_init
mpf_integer_p