当前位置: 首页 > news >正文

VB.net调用VC DLL(二)

参考文献5,讲了在C程序中直接调用DLL和lib的函数方法,不是通过编译器连接方式

也讲了在非C程序中直接调用DLL和lib的函数方法。

实操了一下,建了win32dll项目

新建.h文件和.cpp文件

.h文件中加:

void __stdcall funcA(double* dB, double* dL);

.cpp文件中加:

void __stdcall funcA(double* dB, double* dL)

{

}

新建.def文件

LIBRARY
EXPORTS
   funcA @16

funcA后面有个空格,@后面是参数的字节数,8+8=16

编译生成了dll,放在system32下,

在VBA7下调用,

Private Declare PtrSafe Sub funcA Lib "libA.dll" (ByRef dB As Double, ByRef dL As Double)

调用函数,找不到dll,真是太奇怪了。

VBA给出的提示如下:

加载 DLL 时的错误(错误 48)
动态链接库 (DLL) 就是在 Declare 语句的 Lib 子句中所指定的库。此错误有以下的原因和解决方法: 

此文件并非可执行的 DLL。 
如果此文件是正文源文件,它必须编译并链接成可执行的 DLL 形式。 

此文件并非 Microsoft Windows DLL。 
取得此文件相应的 Microsoft Windows DLL 版。 

此文件是早期的 Microsoft Windows DLL,而且和 Microsoft Windows 保护方式不兼容。 
取得更新的版本。 

此 DLL 引用到其他不存在的 DLL。 
取得此被引用的 DLL 并让它能提供其他 DLL 使用。 

此 DLL 或所引用的 DLL 并不在所指定的目录中。 
移动 DLL 到所引用的目录或将 DLL 所在的目录添加到路径中。 

详细信息,可选取有问题的项目,并按下 F1 (在Windows中)或HELP(在Macintosh中)键。 

猜测可能是dll不是64位,重新生成64的dll,替换之前的32位 dll

函数成功调用

1、https://bbs.csdn.net/topics/390248432

2、vs开发遇到的问题之MSI未能注册模块 xxx.dll。HRESULT -2147024770。请与你的技术支持人员联系。_未能注册模块请与技术人员联系-CSDN博客

3、VBA如何调用动态链接库dll文件VBA如何调用动态链接库dll文件_微软技术-CSDN问答 

4、模块已加载,但找不到入口点DLLRegisterServer[通俗易懂]-腾讯云开发者社区-腾讯云 

5、https://www.cnblogs.com/dusty-cjh/p/8253526.html 

http://www.lryc.cn/news/374999.html

相关文章:

  • 社团管理系统
  • 网站的文章起到什么作用
  • Science | 稀土开采威胁马来西亚的生物多样性
  • pandas read_csv跳过有错的行
  • VRChat 2024年裁员原因与背景深度分析
  • mybatisplus 笔记
  • Shell脚本(.sh文件)如何执行完毕之后不自动关闭?
  • 苏州辰安塑业携塑料托盘、塑料物流箱解决方案亮相2024杭州快递物流展
  • 大模型应用开发技术:Multi-Agent框架流程、源码及案例实战(二)
  • Flutter 实现dispose探测控件
  • 如何定义和衡量一个产品的成功?
  • 微调大模型 - 面向学术论文的AI大模型
  • java溯本求源之基础(二十四)之--常见List的实现共同点
  • gin连接redis
  • 深度学习训练——batch_size参数设置过大反而训练更耗时的原因分析
  • jvm必知必会-类的生命周期图文详解
  • 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!
  • Vue47-修改默认配置webpack.config.js文件
  • qss实现登录界面美化
  • ROS系统中解析通过CAN协议传输的超声波传感器数据
  • SonarQube安全扫描常见问题
  • Golang内存模型与分配机制
  • HarmoneyOS星河版 安装和启动
  • 奇舞周刊第530期:AIGC和低代码结合应用全栈研发实践总结
  • linux上运行js脚本
  • PCA 在图像分析上的应用
  • springboot项目mapper无法自动装配,未找到 ‘userMapper‘ 类型的Bean解决办法.
  • TC3xx A\B SWAP机制的小细节(2)
  • 双绞线(网线)的制作与测试
  • 高效处理海量慢SQL日志文件:Java与JSQLParser去重方案详解