VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
楼主: acme_pjz

[分享] VB6的Unicode文件名支持

  [复制链接]
发表于 2012-4-19 08:18:41 | 显示全部楼层
  1. Public Sub ChDirW(ByVal s As String)
  2. Dim ret As Long
  3. ret = SetCurrentDirectoryW(ByVal StrPtr(s))
  4. If ret = 0 Then Err.Raise 76
  5. End Sub
复制代码
在我这里测试 Err.Raise 76 了,其他都 OK。

点评

因为你指定的文件夹不存在,SetCurrentDirectoryW返回0了,当然也有可能SetCurrentDirectoryW要求文件夹名字有特殊限制  发表于 2012-4-19 18:02
回复 支持 反对

使用道具 举报

发表于 2012-4-19 08:19:31 | 显示全部楼层
关键是,你怎么写上UNICODE的文件名? ide中好像不支持UNICODE吧,直接乱码或变问号了.

还有就是mac os不支持unicode的文件名,用的是utf的文件名

点评

mac os支持VB6么?-_-||| 话说Linux也不支持unicode的文件名,也是utf8的文件名,不过utf8就是Unicode的一种,只不过Windows的Unicode编码是UTF-16,和Linux不一样而已  发表于 2012-4-19 18:04
UNICODE的文件名很简单,用支持Unicode的CommonDialog(网上下一个CommonDialog的cls然后自己改一下),然后保存到String变量里面不要乱动就可以了  发表于 2012-4-19 18:03
回复 支持 反对

使用道具 举报

发表于 2012-4-19 09:33:39 | 显示全部楼层
老牛了……
回复 支持 反对

使用道具 举报

发表于 2012-4-19 10:12:59 | 显示全部楼层
顶LZ!
回复 支持 反对

使用道具 举报

发表于 2012-4-19 10:53:05 | 显示全部楼层
很不错,就是不知道效率和稳定性如何~

点评

一般除非你的程序需要访问名字带怪怪的字符的文件的时候才需要  发表于 2012-4-19 18:05
回复 支持 反对

使用道具 举报

发表于 2012-4-19 19:51:36 | 显示全部楼层

我试过直接读取数据库的文件名,在VB里不会报错,但是直接将文件名写到代码里就出错了!

Unicode还是用数组存起来比较好!不会失真

点评

文件名写不到代码里面的,因为VB代码编辑器就不支持超出GBK的Unicode字符……  发表于 2012-4-19 22:31
回复 支持 反对

使用道具 举报

发表于 2012-4-19 20:23:09 | 显示全部楼层
>UNICODE的文件名很简单,用支持Unicode的CommonDialog

我的意思是你输入的代码
比如 open "某个unicode文件名"...又得转换了吧

点评

你问的问题和16楼的一样,文件名为什么要写死到源代码里面呢?而且还是Unicode文件名  发表于 2012-4-20 13:07
当然了,你要是写成chrw(xxxx) 那就忽略好了... 这就是转换.不直观,还是c++好 :D  发表于 2012-4-20 08:02
openW 某个unicode文件名->关键是vb的ide输入不了unicode! 就算用notepad++来写,用ide编译时他又出错了  发表于 2012-4-20 08:01
你难道没看到我的截图么??正确的写法是:OpenW "某个unicode文件名"然后Open "随便乱写一个文件名",然后API被挂钩之后自动强制修改文件名  发表于 2012-4-19 22:32
回复 支持 反对

使用道具 举报

发表于 2012-4-19 21:16:54 | 显示全部楼层
呵呵 想法挺不错的。。。顶了。。
回复 支持 反对

使用道具 举报

发表于 2012-4-19 21:49:18 | 显示全部楼层
本帖最后由 tgy 于 2012-4-19 23:33 编辑

我会先改文件名后再使用,
但如何以最简单的方法在textbox及其它控件中显示unicode字符,实用性倒是很大

点评

tgy
要转码为MBCS  发表于 2012-4-20 15:05
tgy
设置字符集,还要转码,好象  发表于 2012-4-20 14:38
回楼下,难道把字符集设置成GB18030?  发表于 2012-4-20 13:08
Jen
VB自带的textbox也可以显示Unicode。前提是设对Chartset.  发表于 2012-4-19 22:39
没办法(除非挂钩CreateWindowExA-->CreateWindowExW,不过我以前试过貌似会非法操作),我的测试程序是用Forms 2.0控件的,所以能显示Unicode  发表于 2012-4-19 22:34
回复 支持 反对

使用道具 举报

发表于 2012-4-20 08:03:56 | 显示全部楼层
话说为什么pjz不用qt,和vb还?像的.内部的控件比vb多,还漂亮,

点评

这个问题我已经解释过了,不予重复解释……现在我用wxWidgets  发表于 2012-4-20 13:07
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-3 17:18

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表