VC++6.0静态库的调用

oken2 2014-01-25 09:34:18
我是个初学者,这是个书上的例子,为什么我在编写的时候,不能出现书上的结果呢?有报警
有两个工程放到了一个工作区上(libtest和libcall)
libtest工程:

.h
#ifdef LIB_H
#define LIB_H
extern "C" int add(int x,int y);//声明为C编译、连接方式的外部函数
#endif

.cpp
#include "lib.h"
int add(int x,int y)
{
return x+y;
}

libcall工程:
main.cpp
#include <stdio.h>
#include "..\lib.h"
#pragma comment( lib, "..\\debug\\libTest.lib" ) //指定与静态库一起连接
int main(int argc, char* argv[])
{
printf( "2 + 3 = %d", add( 2, 3 ) );
}

编译以后出现一个报警还有一个警告
D:\libTest\libCall\main.cpp(6) : error C2065: 'add' : undeclared identifier
D:\libTest\libCall\main.cpp(7) : warning C4508: 'main' : function should return a value; 'void' return type assumed

请大侠们解释一下,谢了,小弟不胜感激。
...全文
89 点赞 收藏 3
写回复
3 条回复
michael2988 2014年01月25日
main 后面 return 0; 吧
回复 点赞
michael2988 2014年01月25日
最好是像下面这样子写: lib.h #ifdef DLL_API #else #define DLL_API extern "C" _declspec(dllimport) #endif DLL_API int add(int x,int y); lib.cpp #define DLL_API extern "C" _declspec(dllexport) #include "lib.h" int add(int x,int y) { return x+y; }
回复 点赞
michael2988 2014年01月25日
要声明为导出函数 extern "C" _declspec(dllexport) int add(int x,int y);
回复 点赞
发动态
发帖子
进程/线程/DLL
创建于2007-09-28

6376

社区成员

4.9w+

社区内容

VC/MFC 进程/线程/DLL
社区公告
暂无公告