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

2023-12-03

我有一个旧的 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(使用前将#替换为@)

VB6 - 使用指针声明和调用 C DLL 的相关文章

  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 某些笔记本电脑中的 VB.net Forms UI 显示问题

    我是 VB 应用程序的新手 无法弄清楚我的应用程序出了什么问题 有一个带有几个标签和文本字段的表单 当我在我和其他人的机器上运行该应用程序时 它显示良好 并具有正确的对齐和字体 然而 对于某些人来说 应用程序表单 UI 是破碎的 未对齐的文
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 什么是“访问器功能”?

    In 第 4 3 26 节标准 ECMA 262 版本的 根据属性的形式 可以表示值 直接作为数据值 原始值 对象或 函数对象 或间接通过一对访问器函数 我不明白 访问器函数 是什么意思 也没有在规范中找到访问器函数的定义 然后我在网上搜索
  • 如何在 Python 中使用 Selenium 编辑 CodeMirror?

    每次尝试将文本插入网页上的 CodeMirror 时 我都会收到以下错误消息 有谁知道如何使用selenium成功编辑codemirror WebDriverException Message unknown error Cannot re
  • OpenMP:深度优先搜索的好策略

    我正在编写一个 C 程序 该程序对封闭的骑士之旅 代码是here 我想使用 OpenMP 并行化它 我的问题是以一种创建足够程度的并行性的方式来做到这一点 现在相关部分我的代码看起来像这样 pragma omp parallel for r
  • Emacs:符号作为变量的值为空

    这是我的 emacs file setq default c basic offset 4 c default style linux setq default tab width 4 indent tabs mode t define k
  • 如何确定何时收到蓝牙文件?

    在我的应用程序中 我需要在收到蓝牙传输的文件后对其进行编辑 为了查明何时通过蓝牙接收到文件 我必须使用 BroadcastReceiver 监听什么 Intent 另外 请告诉我是否还有其他解决方案 如果用户通过 Android 操作系统获
  • 每个方面图的 Binwidth 不同

    试图理解分配唯一的binwidth对于每个因子水平geom histogram 但到目前为止还是失败了 这是可重现的数据 a lt rnorm 10 7 0 1 b lt rnorm 10 13 5 df lt data frame dat
  • 当我尝试在内核中使用 printf() 时出现错误

    我使用的是 Visual Studio 2010 和具有计算能力 2 0 的 GTX480 我尝试将 sm 设置为 2 0 但是当我尝试在内核中使用 printf 时 我得到 错误 从 device global 调用主机函数 printf
  • ACR122U NFC读写器频繁断线

    当我将 SIII Android 4 3 放在 ACR122U NFC 读卡器上时 LED 持续闪烁绿色 当我将 Samsung S4 Android 4 3 放入读卡器时 LED 会变绿直到手机位于读卡器上 在这两种情况下 NFC 均已打
  • Python OOP 和列表

    我是 Python 新手 它是 OOP 的东西 无法让它工作 这是我的代码 class Tree root None data def init self equation self root equation def appendLeft
  • 设置触发器以在每月的最后一个小时运行函数

    在谷歌脚本中 我知道有按日期运行的触发器 但我认为这不会起作用 因为每月的天数不同 所以我想知道是否有办法设置触发器在每月最后一个晚上 11 点运行 无论是 30 还是 31 Thanks 首先从项目创建一个触发器编辑 gt 当前项目的触发
  • 是否可以从管道步骤动态设置 Jenkins 作业参数?

    我有以下 简化的 Jenkins 管道代码 jobParams groovy List get Object paramVars def params params choice choices branch tag name RELEAS
  • WCFTestClient HTTP 请求未经客户端身份验证方案“匿名”的授权

    我创建了一项 WCF 服务并将其部署在服务器上 当我浏览此服务时 它会通过 wsdl URL 给出积极响应 现在我正在尝试通过 WCF 测试客户端测试该服务 它显示了正确的元数据 但是 当我尝试从服务中调用任何方法时 它会显示一个异常 这是
  • 使用 NSCoder 保存自己的类

    我正在尝试将一些自定义类 数据存储到我的 iPhone iPad 应用程序中的文件中 我有一个 RSHighscoreList 类 interface RSHighscoreList NSObject NSMutableArray list
  • 从看板中过滤史诗

    首先我想说我已经读过集会看板 隐藏史诗故事但我在根据估算板应用程序的过滤过程实现过滤器时仍然遇到麻烦 目前 我正在尝试将项目过滤器添加到我的纸板的查询对象中 查询对象调用 this getItems 以返回要从中进行筛选的项目数组 据我所知
  • 电子邮件验证器

    我的电子邮件验证码出现问题 我不断收到我的函数未定义的错误 我为java代码制作了一个javascript文件 然后我在html中使用了onchange来触发该函数
  • XML 解析错误:找不到元素位置:http://localhost:8081/web-app/pages/login.xhtml 第 1 行,第 1 列:^

    My login xhtml以 开始 我正在使用 Java 8 JSF Primefaces Maven Tomcat8 我认为我的配置有问题 例如小服务程序和web xml XML 解析错误 未找到元素位置 行号 1 列 1 就这一点而言
  • “wc”命令的行为是什么?

    例如 myCleanVar wc l lt myFile myDirtVar wc l myFile echo myCleanVar 9 echo myDirtVar 9 myFile 为什么在 myCleanVar 中我从 wc 命令中获
  • git:对“非快进”错误的基本误解

    当我自己工作时 不了解 git 的基础知识还可以 但是现在我正在与另一个人一起工作 并且我们每个人都提交拉取请求以让对方合并它们 这开始成为一个问题 工作流程 我在我的 作者 分支中编写 当准备好进行审查时 我提交一个拉取请求 然后我的编辑
  • pyttsx3初始化错误,无法使用pyttsx3

    我在 pyttsx3 中使用 getproperty voices 属性时遇到一些问题 所以我决定卸载它 然后使用 PIP 重新安装它 看看是否可以解决问题 当我遇到 getproperty voices 错误时的上一个链接 当我尝试访问语
  • VB6 - 使用指针声明和调用 C DLL

    我有一个旧的 C DLL 用来从 Ruby 调用 但现在我需要从 VB6 调用它 但我不知道正确的方法 这是我需要的函数的标题 int Decrunch const BYTE src BYTE dest DWORD src length s