静态调用dll出现异常,急求高手指点!
自己编写了一个dll
dll1.h
#ifndef _WIN32_DLL_
#define _WIN32_DLL_
#ifdef __cplusplus
extern "C"{
#endif
#ifdef _DLL_
#define DLL_FUNCTIONTYPE __declspec(dllexport)
#else
#define DLL_FUNCTIONTYPE __declspec(dllimport)
#endif
DLL_FUNCTIONTYPE int max(int a,int b);
DLL_FUNCTIONTYPE int min(int a,int b);
#undef DLL_FUNCTIONTYPE
#ifdef __cplusplus
}
#endif
#endif
//dll1.cpp
#include "dll1.h"
#define _DLL_
int max(int a,int b)
{
return a>b?a:b;
}
int min(int a,int b)
{
return a>b?b:a;
}
然后用另外一个(exe)应用程序调用该dll
并把dll1.h文件和dll1.lib复制到应用程序目录下;
出现问题:dll1.h文件中,int类型是意料之外的类型,所有的int都报错,
郁闷啊。。。。。。。
[解决办法]
.cpp中的函数前也需要加DLL_FUNCTIONTYPE
[解决办法]
在文件“dll1.cpp”中“#include "dll1.h"”语句的前面 加上
“#ifndef _DLL_
#define _DLL_
#endif
”
[解决办法]
最近在网上搜索了如何编写链接库和使用连接库的文章,并且进行了测试。可参考:http://blog.csdn.net/yousheng324/article/details/6687011