专注于响应式网站开发,企业网络营销推广策划,现在有哪些免费推广平台,小说素材网站参考文献5#xff0c;讲了在C程序中直接调用DLL和lib的函数方法#xff0c;不是通过编译器连接方式
也讲了在非C程序中直接调用DLL和lib的函数方法。
实操了一下#xff0c;建了win32dll项目
新建.h文件和.cpp文件
.h文件中加#xff1a;
void __stdcall funcA(double…参考文献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后面有个空格后面是参数的字节数8816
编译生成了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