游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7891|回复: 11

告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代码

[复制链接]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-6-27 00:25:00 | 显示全部楼层 |阅读模式
告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代码

终于搞完了。支持 OLE 自动化,即支持 VB6, .NET, C++, Java, Delphi...

RAR 内容:COM组件dll和VC++源代码,以及测试用的 VB6 代码

这个DLL含有以下 COM 接口:

IStr 接口

我的 inst::CStr 的包装类。

IStrHelper 接口

DelAnsi - 删除Ansi字符数组
GetBSTRAddr - 取得 vb6 内建的 字符串变量 所指向的 地址(不是变量本身的地址!)
CreateBSTR - 根据一个unicode的指针,建造一个BSTR

使用指南:

首先要知道,VB6 内 部 采用 BSTR,本质是 unicode,但由于VB6无法和 外 围 unicode 交互,
导致 vb6 的“unicode”形同虚设,乱码依然存在。
所以,你可以选择你喜欢的用法:

1 - 主要用我的 Str 类,该类可以和 外 围 unicode, ansi 交互。(也可以和BSTR交互哦!)
2 - 借用我的 Str 类,和 外围的 unicode, ansi 交互,其他操作,用 BSTR 。
3 - 使用IStrHelper和外围的 unicode 交互。

sf_20086270252.rar

91.94 KB, 下载次数:

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-6-27 00:27:00 | 显示全部楼层

Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代

关于 COM 组件的注册,推荐使用我的代码:

Option Explicit

Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Sub RegCom(file As String)
    DllFunc file, "DllRegisterServer"
End Sub

Public Sub UnregCom(file As String)
    DllFunc file, "DllUnregisterServer"
End Sub

Private Sub DllFunc(file As String, funcname As String)
    Dim hdll As Long
    Dim lpfn As Long
    hdll = LoadLibrary(file)
    lpfn = GetProcAddress(hdll, funcname)
    CallWindowProc lpfn, 0, 0, 0, 0
End Sub

12

主题

172

帖子

174

积分

注册会员

Rank: 2

积分
174
发表于 2009-2-3 09:15:00 | 显示全部楼层

Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代

一条狗而已

4

主题

107

帖子

107

积分

注册会员

Rank: 2

积分
107
发表于 2009-2-4 11:18:00 | 显示全部楼层

Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代

不懂LZ在说些什么,估计LZ自己也不知道自己在说什么

12

主题

172

帖子

174

积分

注册会员

Rank: 2

积分
174
发表于 2009-2-9 08:26:00 | 显示全部楼层

Re: Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM )

流氓书生: Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代码

不懂LZ在说些什么,估计LZ自己也不知道自己在说什么

sf_20092982618.jpg

12

主题

733

帖子

734

积分

高级会员

Rank: 4

积分
734
发表于 2009-2-17 01:32:00 | 显示全部楼层

Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代

VB6这种还使用ANSI作为内建字符的落后语言,WINDOWS从NT 4.0开始内存里面就使用UNICODE了,VB6天生就是给WINDOWS98用的

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2011-1-2 22:54:00 | 显示全部楼层

Re: Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM )

打酱油的: Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代码

VB6这种还使用ANSI作为内建字符的落后语言,WINDOWS从NT 4.0开始内存里面就使用UNICODE了,VB6天生就是给WINDOWS98用的


vb6从98开始就使用unicode作为内建字符串,可是它不能正确输入ansi,于是造成乱码,并且unicode让乱码持久化。

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-4-28 19:45:00 | 显示全部楼层

Re: 告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源

不可以下载,?
很需要这份资料参考,哪位可以帮忙一下啊。
谢谢。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2011-5-8 10:35:00 | 显示全部楼层

Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代

1

主题

23

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2011-5-31 15:11:00 | 显示全部楼层

Re:告别VB6乱码 ( 增强 vb6内建字符串 + 我的字符串COM ) 源代

支持楼主!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 06:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表