为啥有的dll里没有导出函数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥有的dll里没有导出函数?相关的知识,希望对你有一定的参考价值。
有个dll,用depend.exe打开,看不到任何的导出函数,但可以确定其配套的程序能使用其中的函数。
主程序如何调用这个dll中的函数?没有源代码,如何获得这种dll中的函数?
回楼上:
一是使用.def文件;
二是使用_declspec(dllexport)
对于第一种DEF方式,你可以设置导出dll的函数的NONAME属性,这样就给每个函数编了一个序号.外部程序要用dll的函数时,不直接调用函数名,而是用序号来调用.而且外部程序是无法直接看到dll函数名的,只能看到序号. 参考技术A 用到DLL不一定是函数,也可以是资源(resource),如:对话框模板,图标,光标,还有字符串。。。,既然没有什么函数导出,你也就没法用到它里面的函数,用depend.exe顶多能获得取函数的名字,但不能获得函数的参数,不知道参数是无法调用到这个函数 参考技术B 用dumpbin /exports 方法应该可以看到
如果没有的话,就是没有导出 错的DLL 参考技术C 引用:
dll里如果把函数设为隐式导出,用depend或者execope是看不到的
敢请教怎么设?
以上是关于为啥有的dll里没有导出函数?的主要内容,如果未能解决你的问题,请参考以下文章