これは、GMP 4.1.2のバグであるか、それは私が間違ってやっているものですか?
質問
このコードのビットに私は、文字列"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を使用することをお勧めするつもりだ場合は、ところで、あなたは私のWindows用の静的LIBのウェブアドレスを与えることができますしてください。 TIAます。
解決
あなたはmpf_set_str
の戻り値をチェックする必要があります。これは、失敗した場合に成功と0
に-1
を返します。このケースでは、失敗を返しているだろうとn1
がそのまま残されています。 mpf_init
がゼロに初期化するので、ゼロmpf_integer_p
有する整数であるかどうかをテストするtrueを返す。
所属していません StackOverflow