我有一个旧的 C DLL,用来从 Ruby 调用,但现在我需要从 VB6 调用它,但我不知道正确的方法。
这是我需要的函数的标题:
int Decrunch(const BYTE *src, BYTE *dest, DWORD src_length)
*src 是将由函数解密的字节序列
*dest 是一个缓冲区,它将接收解密的数据。我可以使用 dest=NULL 调用该函数,它将返回解密数据的大小,因此我可以使用它来创建具有正确大小的缓冲区。
我尝试将 src 和 dest 声明为字符串(就像我在 Ruby 中所做的那样),但它不起作用。我还尝试将它们声明为 Byte 并传递字节数组的第一个元素,正如一些教程所指出的那样,但我认为我没有正确执行。
有人可以帮我弄这个吗?
谢谢你!
航空代码
Private Declare DecrunchGetLength Alias "Decrunch" Lib "somedll.DLL" (ByRef src As Byte, ByVal nullptr As Long, ByVal SrcLength As Long) As Long
Private Declare Decrunch Alias "Decrunch" Lib "somedll.DLL" (ByRef src As Byte, ByRef dest As Byte, ByVal SrcLength As Long) As Long
Dim destLen As Long
Dim src(0 To 9) As Byte
Dim dest() As Byte
' get bytes into src somehow
' get dest length
destLen = DecrunchGetLen( src(0), 0, 10)
ReDim dest(0 To destLen - 1)
destLen = Decrunch( src(0), dest(0), 10)
有用的链接
-
声明声明
-
Advanced 从 VB5/VB6 调用 C DLL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)