当前位置: 代码迷 >> VC >> 静态调用dll出现错误,求
  详细解决方案

静态调用dll出现错误,求

热度:2188   发布时间:2013-02-25 00:00:00.0
静态调用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
  相关解决方案