vb调用MF写的dll

chainjp 2008-08-23 08:56:40
各位大哥大姐,小弟向你们求救
我把一个协议里的源代码编译成dll,用vba调用
dll里面的函数是这样的 aaa(unsigned char *key,unsigned char *data)
用c写的文件作一个测试 比如 unsigned char a={14,15}
unsigned char b={12,13}
调用aaa(a,b) 后得到的加密后的b

但是在vba中,我 dim a() as byte
dim b() as byte
a(0) =14 a(1)=15
b(0)=12 b(1)=13
aaa(a(0),b(0))
这样得到的值和上面的期待值不一样
为什么呢
但是我在vba中,反加密却没有问题
就是说比如 我得到b(0) =32 b(1)=64
然后再call aaa(a(0),b(0))
可以得到 b(0)=12 b(1)=13

实在不知道为什么啊????
...全文
39 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
VB6.0界面美化不带任何附件的简单实现方法 VB6.0界面美化往往生成的exe往往要带有bas、dll、ocx等等东西。很麻烦。 所以介绍下面的美化方法生成的exe后就一个exe。没有任何的附件。 首先准备3个美化的东东:vb6.0 she皮肤调用模块.bas、aero.she、SkinH_VB6.dll。 新建工程,在“外接程序”——“外接程序管理器”——“vb6资源编辑器” 然后在“工具”——“资源编辑器”里面添加:vb6.0 she皮肤调用模块.bas、aero.she、SkinH_VB6.dll这3个文件,分别命名为(101, "CUSTOM")、(102, "CUSTOM")、(103, "CUSTOM") 好了。在工程1里面添加模块1(Module1):在Module1添加代码: Sub Main() Dim bas As String bas = TheSystemDir() & "\vb6.0 she皮肤调用模块" Dim OPEN1() As Byte OPEN1 = LoadResData(101, "CUSTOM") Open bas For Binary As #1 Put #1, , OPEN1 Close #1 Dim she As String she = TheSystemDir() & "\aero.she" Dim OPEN2() As Byte OPEN2 = LoadResData(102, "CUSTOM") Open she For Binary As #1 Put #1, , OPEN2 Close #1 Dim dll As String dll = TheSystemDir() & "\SkinH_VB6.dll" Dim OPEN3() As Byte OPEN3 = LoadResData(103, "CUSTOM") Open dll For Binary As #1 Put #1, , OPEN3 Close #1 Form1.Show End Sub 在工程1里面添加模块2(Module):在Module添加代码: Public Declare Function SkinH_Attach Lib "SkinH_VB6.dll" () As Long Public Declare Function SkinH_AttachEx Lib "SkinH_VB6.dll" (ByVal lpSkinFile As String, ByVal lpPasswd As String) As Long Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Declare Function GetSystemDirectory Lib "kernel32.dll" Alias "GetSystemDirectoryA" (ByVal strBuffer As String, ByVal lngSize As Long) As Long Private Const MAX_PATH = 260 Public Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Public Const MF_BYPOSITION = &H400;& Public Function TheSystemDir() As String Dim strBuffer As String Dim l As Long strBuffer = Space(255) l = GetSystemDirectory(strBuffer, 255) TheSystemDir = Left(strBuffer, l) End Function Public Function windir() As String Dim lpBuffer As String lpBuffer = Space$(MAX_PATH) windir = Left$(lpBuffer, GetWindowsDirectory(lpBuffer, MAX_PATH)) End Function 好了。在Form1下面添加代码: Private Sub Form_Load() SkinH_AttachEx TheSystemDir() & "\aero.she", "" End Sub 最后在“工程”——“工程1属性”里面将“启动对象”改为“Sub Main”。 生成一个exe看看效果。

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧