dll文件应用过程中发现的问题。1.运用VC6.0的非MFC动态链接库建立动态链接库工程dlltest,包含头文件lib.h和源文件lib.c/* 文件名:lib.h */#ifndef LIB_H
#define LIB_H
extern int __declspec(dllexport) add(int x, int y);//导出
#endif/* 文件名:lib.c */#include "lib.h"
int add(int x, int y)
{
return x + y;
}2.调用此动态链接库
将编译上述所生成的.lib和.dll文件拷入/* 文件名:dllcall.c */#include <stdio.h>
#pragma comment(lib,"dlltest.lib")/*extern __declspec(dllimport)*/ int add(int x,int y); int main()
{
int result = add(2,3);
printf("2 + 3 = %d\n",result);
return 0;
}
3.问题
我将导入函数声明 __declspec(dllimport)隐藏后,仍能使用add函数,那是否说明在动态链接库的使用过程中没必要做__declspec(dllimport)的声明?还请各位大虾指导其中的原因?
#define LIB_H
extern int __declspec(dllexport) add(int x, int y);//导出
#endif/* 文件名:lib.c */#include "lib.h"
int add(int x, int y)
{
return x + y;
}2.调用此动态链接库
将编译上述所生成的.lib和.dll文件拷入/* 文件名:dllcall.c */#include <stdio.h>
#pragma comment(lib,"dlltest.lib")/*extern __declspec(dllimport)*/ int add(int x,int y); int main()
{
int result = add(2,3);
printf("2 + 3 = %d\n",result);
return 0;
}
3.问题
我将导入函数声明 __declspec(dllimport)隐藏后,仍能使用add函数,那是否说明在动态链接库的使用过程中没必要做__declspec(dllimport)的声明?还请各位大虾指导其中的原因?
解决方案 »
- 再次关于socket,跪求指点
- 如何用socket传递一个数组
- 小弟正在做毕业设计,是一个基于内网的邮件监控的,各位大虾帮帮忙!
- 问一下为什么我在OnInitDialog()给类里面的变量赋值的时候没有作用??
- 如何实现在richedit中输入的文字可以缩进
- 请教一下,我如果获得CListCtrl有多少列啊???谢谢,在线等
- 有哪位大哥有兴趣来东莞发展吗?熟vc就行,最好对dvr有点了解。
- 我是一个VC初学者推荐我几本书好吗!!
- run time error出现的原因
- 哪位有http下载的源程序(或下载地址),C++的。。。
- 关于继承CButton的子类获得初始化消息的问题
- 关于GetClassInfo的问题,谢谢
我将导入函数声明 __declspec(dllimport)隐藏后,仍能使用add函数,那是否说明在动态链接库的使用过程中没必要做__declspec(dllimport)的声明?还请各位大虾指导其中的原因?
答复:
你这应该是静态调用,不是动态库调用吧
你把dll删除,看你的程序能不能使用
The DllMain function is an optional method of entry into a dynamic-link library (DLL)。(简要翻译:对于动态链接库,DllMain是一个可选的入口函数。)这句话很重要,很多初学者可能都认为一个动态链接库肯定要有 DllMain函数。其实不然,像很多仅仅包含资源信息的DLL是没有DllMain函数的。