| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1635 人关注过本帖
标题:我一直搞不明白__declspec(dllimport)的作用在哪里。(从事过这方面开发的人 ...
只看楼主 加入收藏
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:1 
火速进来围观一下,好多分呀

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-11-10 20:44
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:1 
你们都要疼我哦

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-11-10 20:47
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
你们到底能够不能够帮我解决这个问题呢??可是好多分呢!!
期待ing....

愿用余生致力编程
2010-11-10 20:50
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:1 
你的问题我是真的不会???

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-11-10 20:54
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
回复 14楼 vandychan
呵呵!我也不会的呀!希望有高手能够帮忙解决一下吧!!还是期待ing......

愿用余生致力编程
2010-11-10 21:25
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:20 
不知道回答到什么程度才能得到你的100分。
简单说来,它是声明导入动态链接库函数及变量的关键字。与之对应还有一个声明导出的关键字__declspec(dllexport)。
动态链接库函数的导入可以不用ddlimport关键字,但数据变量必须用。

重剑无锋,大巧不工
2010-11-10 21:34
yxwsbobo
Rank: 5Rank: 5
等 级:职业侠客
帖 子:345
专家分:306
注 册:2007-10-29
收藏
得分:10 
每一个程序都有一个导入表,用来告诉系统"我"需要调用哪些外部函数,__declspec(dllimport) 就是将某个函数加入到导入表中

How are you 怎么是你?
How old are you   怎么老是你?
2010-11-10 21:43
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
回复 17楼 yxwsbobo
可是为什么我看见别人写的程序使用到了编译预处理:
比如
Dll.h头文件:
#ifdef
#else
#define DLL_API __declspec(dllimport)
#endif
DLL_API int add(int x , int y) ;

add.c文件
#define DLL_API __declspec(dllexport)
#include "Dll.h"
int add(int x , int y)
{
    return x + y ;
}
这个头文件Dll.h中的编译预处理有什么作用???有必要加这个编译预处理吗??

愿用余生致力编程
2010-11-10 21:54
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:50 
有必要,在你编译生成这个dll的时候,需要使用__declspec(dllimport)表明这个函数加入导入表
但是,在别人使用这个h头文件的时候,需要使用的刚好相反,需要__declspec(dllexport)表明这个函数从dll里调用
为了使一个h文件,能在不同的环境下自动适应,那就需要借助宏预处理达到这个目的

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-11-10 23:13
古手梨花
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:340
专家分:615
注 册:2010-11-1
收藏
得分:5 
以下是引用我菜119在2010-11-10 21:54:30的发言:

可是为什么我看见别人写的程序使用到了编译预处理:
比如
Dll.h头文件:
#ifdef
#else
#define DLL_API __declspec(dllimport)
#endif
DLL_API int add(int x , int y) ;

add.c文件
#define DLL_API __declspec(dllexport)
#include "Dll.h"
int add(int x , int y)
{
    return x + y ;
}
这个头文件Dll.h中的编译预处理有什么作用???有必要加这个编译预处理吗??
原来是 API函数 里面的
无力爬过
我恨API
N多 函数

其实我只会一点“hello world”程序。
2010-11-10 23:20
快速回复:我一直搞不明白__declspec(dllimport)的作用在哪里。(从事过这方面开发 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033773 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved