才开始学习DLL编程,感觉一切好陌生,静下心来学习好了.

http://blog.csdn.net/zy122/archive/2006/11/17/1389884.aspx 
这个地址的博客里面简单而又明了的说明了DLL的工作原理和使用,制作.

不过在自己做的时候遇到一点小问题,记录下来,免得以后再犯.

DEF 文件定义,一不小心犯了个小错误:

编译连接时候出现:
Linking...
.\DllTest.def : warning LNK4017: LIBRARRY statement not supported for the target platform; ignored
   Creating library Release/DLLTest.lib and object Release/DLLTest.exp

DLLTest.dll - 0 error(s), 1 warning(s)

虽然出现警告,但是不会影响程序的结果.
在MSDN 中有说明.

The given module-definition statement is not supported by this version of the linker tools. The tool ignored the statement in the .def file.



http://forums.msdn.microsoft.com/zh-CN/vcgeneral/thread/80c00135-6de2-499e-bc51-f5ceab32eacf/
 


找到答案,原因在于LIBRARRY 这个关键字不能被现在的连接器认识,仔细看看果然是写错了.

所以类似的问题应该可以同样理解,不要把系统不认识的定义关键字放到DEF文件中去,可能会导致问题.

使用DLL时导入DLL 和LIB文件到当前编译目录下:

头文件申明时要 使用 类型 _declspec(dllimport) 函数()
记得载入库文件 #pragma comment (lib,"yourlib.lib") 或在工程中添加.