USES_CONVERSION是用來轉換類型的,比如我們很常見的問題:
在Socket編程時候,我們的IP地址從界面上輸進去一般都使用CString類型的,可是在SOCKADDR_IN中的inet_addr卻是const char *我們就不能直接用CString來用。我們就可以使用T2A()宏了。
SOCKADDR_IN localaddr;
CString m_IP = L"192.168.1.2";
USES_CONVERSION;
localaddr.sin_family = AF_INET;
localaddr.sin_addr.S_un.S_addr = inet_addr(T2A(m_IP));
當然使用USES_CONVERSION也是要注意一個很重要的問題。
USES_CONVERSION它是在堆棧上分配空間的,也就是說你在你在函數未結束就不會被釋放掉。所有要注意不要在一個函數中用while循環執行它,不然棧空間就馬上會分配完(棧空間一般只有2M,很小)。