1. 程式人生 > >定義的函式名和巨集衝突的問題。

定義的函式名和巨集衝突的問題。

   這兩天寫了一個自定義的服務程式,Service->StartService()來啟動我的服務程式,平時執行完好,直到我把這個Service類匯出的時候出現了問題,無法找類的StartService的方法,這是為什麼呢,因為winsvr.h標頭檔案中定了StartService巨集:

#ifdef UNICODE

#define StartService  StartServiceW
#else
#define StartService  StartServiceA

#endif // !UNICODE

所以我匯出的函式名其實是StartServiceA,所以函式命名的時候要注意,不能和系統的巨集函式同名,否則會使用巨集指向的值來命名函式,不作為匯出函式基本沒什麼問題,匯出的時候就會出現莫名其妙的無法連結的問題。