工作中碰到這樣一個問題,
程序報錯:
Error 3 error C2668: 'wvsprintfW' : ambiguous call to overloaded function
這個錯誤的意思是:wvsprintfW有重載函數,根據目前的參數編譯器無法確定調用哪個。
wvsprintfW屬于系統函數,自己也沒有重載過,理應不該有這樣的問題,
可能是包含的頭文件太多,有的文件對此函數重載過。
網上有人舉例說:
int fun(int,int);
float fun(int,int); //編譯器就會出現錯誤 不知道到底調用哪個函數
這里的錯誤可能不是上述類型的,但這個例子可以幫助理解。
最終解決方法是:在調用的wvsprintfW前加” :: “符號,指明采用全局函數,這樣編譯器就不需做選擇了。
法2
函數調用有二義行。
在參數前加類型轉換