使用vs调用DLL在运行时调用的方法,使用delph调用dll
来源:互联网 发布:淘宝店主风调色滤镜 编辑:程序博客网 时间:2024/04/30 00:21
运行时调用:
1,将*.lib放在和32位debug,release和x64相同的文件夹下,将*.dll放在对应的debug或者release文件夹下;
2,在调用的文件中编写:在声明处编写 typedef void (*ceshi)(int *sig, int data_len, int *i_dwt_out); 其中的ceshi 可以是任何名字,自己定义,但是参数和要使用的函数的参数相同;
3,在调用处编写:
HMODULE hDll = LoadLibrary(L"FilterDLL.dll");
ceshi segments_get_decompose_signal_int = (ceshi)GetProcAddress(hDll, "segments_get_decompose_signal_int"); (这里的ceshi和声明处一致,后面的函数名字是你在dll中定义的函数的名字)
segments_get_decompose_signal_int(sig, data_len, i_dwt_out); (这里就使用你要用的函数)
FreeLibrary(hDll); (释放句柄)
加载时调用:
1,使用加载时调用是,要在编译和链接应用程序是提供头文件和导入库文件(.lib),当这样做的时候,链接器将向系统提供加载DLL所需的信息,并在加载时解析导出dll函数的位置。
2,#pragma comment(lib,"..\\*.lib");
extern "C" _declspec(dllimport) 需要的函数;
之后就直接调用就可以了。
二、使用delphi调用DLL,
1,正常的步骤生成DLL在使用delphi的时候会产生错误,解决的办法是:
右键添加文件def,和编写源文件的方式相同,创建完成后再其中的内容是:
LIBRARY FilterDLL(这是工程的名字)
EXPORTS
segments_get_decompose_signal_int @ 1(这是对外的接口,其中的编号是声明这个函数是第几个调用的函数)
2,使用delphi调用dll的时候会显示INvalid floating point operation 的错误,出现这种原因就是在dll中有四舍五入的操作,要在delphi中编写响应的代码,这在网页中自己查找(本人不写delphi)
- 使用vs调用DLL在运行时调用的方法,使用delph调用dll
- java使用JNA调用dll的方法
- dll的调用、使用范例
- 使用Java调用DLL动态链接库(如何在Java中调用DLL方法)
- Window输出窗口运行时调试信息中没有显示调用的dll情况
- VS2010使用C#调用C++编写的dll,在其他电脑上无法运行的解决办法
- 使用LoadLibrary调用DLL
- DLL的调用方法
- java使用jna 方法调用Win32 dll
- 使用Ajax.dll前台调用后台方法
- 在ASP中调用DLL的方法
- 在ASP中调用DLL的方法
- 在C++创建DLL,以及使用C++或者C#分别调用DLL中的方法
- 在SQL Server中使用CLR调用.net的dll
- Delphi DLL使用接口和调用的方法
- C#调用C++DLL中的回调函数(异步的情况,DLL中会在事件触发时调用函数)
- C#从零开始——使用VS生成dll并调用
- 使用dll以及调用dll例子
- 关于C#的sqlite数据库操作类
- spring和springmvc的父子容器的关系
- short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错
- OpenMP中的常用函数
- 简单解决返回上一个Activity中的adapter数据刷新问题
- 使用vs调用DLL在运行时调用的方法,使用delph调用dll
- 页面转发
- IntelliJ Idea 常用快捷键
- 存储过程和函数的区别
- 通过配置apache实现多个站点访问
- 集成微信三方登陆实现
- 2信号报告——浙大慕课C语言进阶第二周编程作业(二)
- color2gray 的实现
- SpringMVC注解驱动的控制器详解