Foxtable(狐表)用户栏目专家坐堂 → [求助]怎样把一个字符串转换为unicode的编码方式?


  共有2410人关注过本帖树形打印复制链接

主题:[求助]怎样把一个字符串转换为unicode的编码方式?

帅哥哟,离线,有人找我吗?
54292550
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:4135 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2017/3/30 11:36:00 [只看该作者]

各位老师帮忙看看是怎么回事...

图片点击可在新窗口打开查看此主题相关图片如下:错误.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:4135 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2017/3/30 11:51:00 [只看该作者]



'辅助函数:BSTR字符串转换为CHAR字符串
Function StringToBytes(ByVal szText As String) As Byte()
    If Len(szText) > 0 Then
        StringToBytes = StrConv(szText, vbFromUnicode)
    End If
End Function
  
'辅助函数:CHAR字符串转换为BSTR字符串
Function BytesToString(bytesText() As Byte) As String
    If SafeArrayGetDim(bytesText) <> 0 Then
        BytesToString = StrConv(bytesText, vbUnicode)
    End If
End Function


lmc1_Initial(StrConv(App.Path, vbUnicode), False, Me.hWnd)



贴上一个别人家的代码。。。。就是没看懂怎么回事。。。
[此贴子已经被作者于2017/3/30 11:51:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/30 12:03:00 [只看该作者]

这个貌似没有必要转码了

dim lujing as string = "C:\foxtable2017\开发版\"
Dim bs() As Byte = System.Text.Encoding.Default.GetBytes(lujing)
lmc1_Initial(bs, False, Me.hWnd)

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:4135 威望:0 精华:0 注册:2011/8/19 10:07:00
回复:(有点蓝)这个貌似没有必要转码了dim lujing a...  发帖心情 Post By:2017/3/30 12:13:00 [只看该作者]

不行呀。。。。

名:lmc1_Initial

    :初始化lmc1控制卡。

    int lmc1_InitialTCHAR* strEzCadPath,BOOL bTestMode,HWND hOwenWnd);

                     strEzCadPathezcad2.exe所处的目录的全路径名称;

                     bTestMode  指是否是测试模式

                     hOwenWnd 指拥有用户输入焦点的窗口,用于检测用户暂停消息。

    :在程序中必须首先调用lmc1_Initial,其它函数才能工作。

值:通用错误码




必须是字符串,不能是数组啊。。。


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/30 12:48:00 [只看该作者]

声明或者定义函数的时候,定义成数组吧

 

strEzCadPath as byte()

 

或者

 

strEzCadPath as Char()


 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:4135 威望:0 精华:0 注册:2011/8/19 10:07:00
回复:(有点色)声明或者定义函数的时候,定义成数组...  发帖心情 Post By:2017/3/30 12:52:00 [只看该作者]

试过了。。。还是提示文件不存在,,也就是路径不正确。。。。 

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/30 16:15:00 [只看该作者]

声明的时候有问题,这样写

 

Public Function  lmc1_Initial(<MarshalAs(UnmanagedType.LPWStr)> strEzCadPath As String, xxxxxxxxxxxxxxxxxxxxxxx) As Integer


End Function

 

http://blog.csdn.net/donnie88888888/article/details/53435556

 


 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:4135 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2017/3/30 16:45:00 [只看该作者]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

弄了半天,最后又把色老师的代码用上了,,,刚才看到一个博客才明白,色老师那个代码是可以把路径转换为unicode字符的,只不过有些是以乱码显示出来的,有些是显示不出来的。我误以为有的可以转有的转不了。。。

Dim file As String = "C:\foxtable2017\开发版"
Dim bytes() As Byte
Dim utf As Encoding = Encoding.unicode
Dim def As Encoding = Encoding.Default
Bytes = def.GetBytes(file)
Bytes = Encoding.Convert(def, utf, Bytes)
file = def.GetString(Bytes)

这个代码是正确的可以转换。。只不过用output.show和messagebox.show显示的时候,就显示一个字母。。。。

在此感谢色老师。。。图片点击可在新窗口打开查看




 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:4135 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2017/3/30 16:50:00 [只看该作者]

Public Declare Function lmc1_Initial Lib "MarkEzd.dll" Alias "lmc1_Initial" (strEzCadPath As String,bTestMode As Boolean,hOwenWnd As Long) As Integer

lmc1_Initial(file, False,*****)    ????这里不会用了。。呵呵。。求帮助。。


名:lmc1_Initial

    :初始化lmc1控制卡。

    int lmc1_InitialTCHAR* strEzCadPath,BOOL bTestMode,HWND hOwenWnd);

                     strEzCadPathezcad2.exe所处的目录的全路径名称;

                     bTestMode  指是否是测试模式

                     hOwenWnd 指拥有用户输入焦点的窗口,用于检测用户暂停消息。

    :在程序中必须首先调用lmc1_Initial,其它函数才能工作。

返 回 值:通用错误码


这样声明对吗?最后一个句柄不理解怎么写。。。





 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/30 17:49:00 [只看该作者]

声明的时候,参考17楼的写法,直接填入路径即可,不需要转换。

 

19楼的问题。你用任意一个窗口的句柄都可以啊,比如 basemainform.handle、Forms("窗口1").Baseform.handle


 回到顶部
总数 20 上一页 1 2