国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Unicode控件的字串參數問題

2024-07-21 02:29:22
字體:
來源:轉載
供稿:網友

寫unicode控件時發現的傳字串參數的問題:
問題描述:
   unicode的ocx,屬性參數text,類型:bstr。
   控件的源碼(vc中)
   afx_msg void settext(lpctstr lpsztext)

   vb調用1:
   dim strtest as string
   strtest = text1.text       ‘text1文本框為空
   if not isnull(strtest) then
      testocx2221.stringtest = strtest
   end if
   結果:
   settext中lpsztext是null。

   vb調用2:
   dim strtest as string
   strtest = ""
   if not isnull(strtest) then
       testocx2221.stringtest = strtest
   end if
   結果:
   settext中lpsztext不為null,得到指向空串的有效指針。

因此:
   上述調用1時:
   當控件的處理程序直接調用了cstring的 == 或 !=,那就有問題了,因為cstring這兩個操作符不支持null,會出錯。也就是調用了不支空指針的操作。

好吧,還是采用保險的做法吧: 加多一句:
   if(lpsztext==null) lpsztext = _t("");

很奇怪:
   不知道vb的兩種調用為啥會傳出不同的值。沒明白。
   至于為什么ansi不會有問題,可能是因為vb調用ansi的控件時,需要對字串進行內部的轉換(由unicode轉ansi),而去除了可能為空指針的情況。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海阳市| 松滋市| 通河县| 扶沟县| 襄汾县| 定结县| 南宫市| 嫩江县| 望都县| 布尔津县| 延吉市| 鄂尔多斯市| 洛宁县| 东方市| 郁南县| 松滋市| 呼伦贝尔市| 奉新县| 巴林右旗| 彭阳县| 韶关市| 安徽省| 翁源县| 老河口市| 阳山县| 越西县| 凌源市| 东丽区| 静安区| 抚州市| 大安市| 五大连池市| 田阳县| 峡江县| 乐陵市| 霍山县| 竹溪县| 甘谷县| 仁布县| 温宿县| 米林县|