国产探花免费观看_亚洲丰满少妇自慰呻吟_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),而去除了可能為空指針的情況。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黑龙江省| 苏州市| 胶南市| 哈密市| 黔东| 会泽县| 瑞丽市| 策勒县| 佳木斯市| 蒲江县| 云龙县| 临夏市| 巴林右旗| 株洲县| 泸西县| 称多县| 康马县| 简阳市| 滨海县| 杭州市| 平武县| 泰来县| 马关县| 龙岩市| 成安县| 丰城市| 岳普湖县| 阜宁县| 延寿县| 乌海市| 安吉县| 秦皇岛市| 麻城市| 重庆市| 当雄县| 海盐县| 诏安县| 阿尔山市| 吉木乃县| 鹤岗市| 新竹县|