相信用vs2005编译写.dll的工程的人一定对.def文件不陌生吧,.def文件是描述哪些要被导出来的函数。 格式如下: LIBRARY CMPNT2 -->dll名称
EXPORTS -------->导出函数的标记符Dll_Function_1 -->被导出的函数名称Dll_Function_2 .................. 在我们的Dll工程里添加好.def文件后编程,生成dll文件。
现在我们,打开调试工具"开始"->"Microsoft Visual Studio 2005"->"Visual Studio Tools"->"Visual Studio 2005 Command Prompt"在窗口输入dumpbin -EXPORTS XXX.dll 查看导出哪些函数被导出。 如: 结果发现没有导出任何函数来。这是为什么呢?
经过一番的折腾,才发现虽然我们把.def文件添加在工程里,但是那个文件根本就没有被编译。这时,我们还需要做一个事情是。在工程属性里,"Linker"->"Input"->"Module Definition File"加入.def文件名称,重新编译一下工程。 再次查看一下输出如下: