1 vc6中选择Win32 Dynamic-Link Library
2 起名后下一步,使用A simple DLL project
3 编译时报错 error C2491: ‘MYTest’: definition of dllimport function not allowed
原因:.h中
#ifdef MYDLL_EXPORTS //此处定义可能出现 error C2491: : definition of dllimport function not allowed
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
4 链接mysql时的问题:
#include<winsock2.h>//否则报错 error C2146: syntax error : missing ';' before identifier 'fd'
#include "mysql/mysql.h"
不用afxsock.h
把libmysql.dll放到debug中或者到附加项里加进来;否则提示“因为计算机中丢失libmysql.dll”等系列问题
5 编译时自动拷贝DLL Lib到指定的路径
dll 是要给其它工程使用的,避免不了调试时的链接;可直接把需要的dll lib放到指定的目录,调用工程也连接到相应目录;省事的同时也确保使用的是最新的,确保一致
vc6 设置: Project---Setting---Post-build Step中 copy Debug\Your.dll ..\Bin\
copy Debug\Your.lib ..\Lin\
vs中设置好像:Build Events > Post Build Event > Command Line
( 上述拷贝路径设置好后,如果不rebuildall;就要在每个工程每次build之前先clean一次,不然不会拷贝,也就是说你的lib、dll仍是上次的,不是新的)
这样,你的Debug中和指定的路径里就同时有了相同的库
6 编译时只生成了dll,没有lib文件
如果执行了1、2两步后,就直接编译,那么只会生成dll文件,而没有lib文件。当有一个导出函数或者导出变量时,再编译就会有lib文件
7 待续。。。。。。