原创文章 转载说明出处:chinabinlang
一般情况下,只有一个DLL文件,我们无法知道dll中函数的参数,通过DLL查看工具也只可以知道DLL中函数的名字,如 Dependency。
一般可以通过如下方式:
#define DllImport __declspec( dllimport )
#define DllExport __declspec( dllexport )
或者
#define DllImport extern "C" __declspec( dllimport )
#define DllExport extern "C" __declspec( dllexport )
DllExport void func();
DllExport int i = 10;
DllExport int j;
DllExport int n;
导入导出dll中的函数,但是导入的时候,需要知道函数原型(返回值+函数名+参数类型);
查看动态链接库中函数参数类型的方法,方法如下:
1:指定一个动态链接库文件:如:dllproj.dll。
2:VC建立调试工程,动态方式调用 dllproj.dll ;通过Dependency指定想要查看的函数;
如:
3:通过调试进入断点,查看dllFunction指针,就可以看到函数名和函数参数类型;
(注:暂时还无法查看返回值类型,如有哪位明知道,可以补充一下);
如:
今天又发现一个更简单的方法:
当前目录的任意dll中的函数都可以;
CD /D %~dp0
undname -f ?getnglabal@@YAHXZ
pause
今天发现了一个很好的软件,和微软的depends很像,但是可以看到dll的参数和返回值,非常方便,好用;
http://www.dependencywalker.com/