Tag: vb6

VB6 – 使用指针声明和调用C DLL

我有一个旧的C DLL,我用来从Ruby调用,但现在我需要从VB6调用它,我无法弄清楚这样做的正确方法。 这是我需要的function的标题: int Decrunch(const BYTE *src, BYTE *dest, DWORD src_length) * src是一个字节序列,将由函数解密 * dest是一个缓冲区,它将接收解密的数据。 我可以使用dest = NULL调用该函数,它将返回解密数据的大小,因此我可以使用它来创建具有正确大小的缓冲区。 我试图用src和dest声明它作为字符串(就像我在Ruby中做的那样)但是它不起作用。 我也尝试将它们声明为Byte并传递一个字节数组的第一个元素,正如我在一些教程中指出的那样,但我认为我没有正确地做到这一点。 有人可以帮我弄这个吗? 谢谢!

如何将char *转换为BSTR?

如何将char *从C dll传递给VB 这是示例代码: void Cfunc(char *buffer,int len) { BSTR buf_bstr = SysAllocString((BSTR)buffer); VBptr.VBfunc(buf_bstr,len); } 此function不起作用,实际上其他一些值被发送到VB而不是实际值。 有人可以建议一个解决方案?