Board logo

标题: StrConv 常数错误 [打印本页]

作者: wzqqwz    时间: 2006-9-5 18:20     标题: StrConv 常数错误

StrConv 常数错误

   k1 = StrConv(pngPath, vbUnicode)


当pngPath="D:\桌面水族馆\Fishes\Pack 1\BlueAFLeft.png"时就出错
其实我试了在不少盘符下都会出错,开始以为是有空格会出错,后来发现不是

后来用以下试时
   k1 = StrConv(pngPath, vbUnicode)
   k2 = StrConv(k1, vbFromUnicode)

当出错时K2必定为乱码
StrConv要如何用才不会出错啊??


对了,当盘符有中文时出错的几率高,但不是100%

[ 本帖最后由 wzqqwz 于 2006-9-5 18:23 编辑 ]
作者: wzqqwz    时间: 2006-9-5 19:39

以现了罪恶的来源

只要文件夹有一个"水"字就出错
作者: Nothing    时间: 2006-9-5 21:24

VB默认的字符串其实就是Unicode的方式存在内存中的,你对Unicode的字符串进行Unicode当然要出错,所以,不要对VB的字符串使用Unicode的方式进行转换,而要使用vbFromUnicode请使用Byte数组
例如下面的代码。

pngpath = "D:\桌面水族馆\Fishes\Pack 1\BlueAFLeft.png"
    k1 = pngpath

  Dim k2() As Byte
   k2 = StrConv(k1, vbFromUnicode)

MsgBox StrConv(k2, vbUnicode)
作者: wzqqwz    时间: 2006-9-7 16:00

Call GdipLoadImageFromFile(StrConv(pngPath, vbUnicode), img)
读图正常,但文件夹有一个"水"字(别的字也还有)就出错


Call GdipLoadImageFromFile(StrConv(pngPath, vbFromUnicode), img)
就连图也读不出来了...........




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0