使用chttpfile的乙個錯誤

2021-09-06 20:57:55 字數 1627 閱讀 7114

先貼一部分**

需要提交資料的頁面

cstring strformdata = "

username=abc&password=123

"; //

需要提交的資料

請求頭try

catch(cexception*e)

cstring strsentence, strgetsentence = ""

;

if(fileget)

afxmessagebox(strgetsentence);

//顯示返回網頁內容

}

else

fileget->close();

delete fileget;

}else

afxmessagebox(

"不能找到網頁檔案!");

sess.close();

因為需要使用post方式抓取某個網頁返回的內容,所以找了mfc中功能不是那麼強大的chttpfile來做,也夠用了。

一般網路程式設計的demo都是ansi字符集的,也都沒什麼問題,上面的**改改也能用,拿到unicode的工程裡,將加上_t標示符以及進行些字符集轉換,很快就能執行了,但問題來了,就是傳送的request總不能使伺服器正確接受,而返回一些錯誤,這一除錯不要緊,2個小時就過去了。

最後在改php程式和mfc程式的情況下,把問題鎖定在了帶下劃線的**處,在ansi時傳送的是char字元,是沒有問題的,而在unicode情況下,發過去就是wchar字元,而編譯又不會報錯,即使在unicode版本中,這個函式也是希望接受char字元的。

哎,庫函式寫成這樣,真是夠奇芭的。

如果收到的資料是亂碼,先確定是什麼格式的碼,一般為utf_8,可以使用multibytetowidechar轉換:

取得str物件的原始字串

int nbuffersize = multibytetowidechar(cp_utf8, 0, pstr, -1, null, 0); //

取得所需快取的多少

wchar_t *pbuffer = (wchar_t*)malloc(nbuffersize * sizeof(wchar_t));//

申請快取空間

multibytetowidechar(cp_utf8, 0, pstr, -1 , pbuffer, nbuffersize*sizeof(wchar_t));//

轉碼messageboxw(null, pbuffer, l"

text

", mb_ok); //

顯示free(pbuffer); //

釋放快取

乙個hibernate mapping的錯誤

在使用hibernate對映的時候 如果配置 onetomany cascade cascadetype.persist,fetch fetchtype.eager joincolumn name orderid referencedcolumnname order id private setbu...

Vuex的乙個易錯點

好長時間不用vuex,發現有些東西記模糊了。在對vuex進行模組化開發的時候,const store new vuex.store 我們可以通過store.state.a取得 modulea 的狀態,在store注入到vue例項的時候,子元件可以通過this.store.state.a取得。但要注意...

執行mr時候報的乙個錯

hadoop版本 hadoop 2.2.0 cdh5.0.0 beta 1 今天在執行sqoop往hbase裡導數的時候,dn節點報了下面的錯 看異常是相應的jar沒找到 為了執行mr,在yarn site.xml中有這樣乙個的配置 hadoop conf dir,hadoop common hom...