2009-07-14 65 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。

相關問題