Programming 板


LINE

以下还是引用我在 C_and_CPP 版用过的比喻 解释写在 [] 里面 ※ 引述《Orilla (企鹅 有股无比的魅力)》之铭言: : 最近在看C : 有些地方不太懂 : 希望知道的大大们帮解惑一下 : GOOGLE过 : 1. : header file是说里面可能有一些常数 函式的架构 : 是不是因为它只是一个骨架 所以还要用.cpp档去定义实体的运作内容?? header file 像是一个电路元件的说明书 里面有说什麽元件要用什麽方式留接头 [什麽函式要用什麽方式呼叫] 函数的实作(.cpp)则是那个元件本身 在各自组装完成之後再把元件跟接头焊起来 [连结器的连结功能] 这样就是一个完整可用的电路了 这些元件都会以功能做为分类, 每个分类就是元件库 [就是常听到的 library, 函式库, .lib 档案] 要用什麽元件就去什麽元件库里找, 当然也要记得查说明书知道怎麽留接头 [函式库都有随附的 header file 表示里面的函式要如何呼叫] 有的时候所连结的元件是预设就会帮你焊起来的那一包标准元件 [例如 C Runtime Library, 常用数学函式, 等等这些东西] 这时候不用指定也会去那一个元件库里找元件 [即是所谓"预先连结的函式库", VC++ 里它是以 libc 开头的 .lib 档案] 否则必须要指定对应的元件库, 这样才找得到正确的元件 [即是在连结器指定连结哪些函式库的参数] : 2. : DLL在撰写的过程 好像也是要编写.h档 然後用.cpp档去写里面的运作内容?? : 然後在写自己想要的程式时 看到都是要把该DLL的.h include进来才能用该DLL的功能 : 那DLL和header file不就一样吗?? 还是我哪边没弄懂?? : 还有 如果程式语言不同 为什麽DLL档可以互相引用?? : 3. : 查到.lib和DLL档有关连 但是不懂之间有什麽关联 : 是说.lib档是把一堆DLL档整合在一起吗?? DLL 就是一包随插即用的元件库 它的接头比较不一样, 不是用焊的而是做成插头插上去 [这个"插座"叫做 GetProcAddress, "插头"则是所谓的 export function] 因此呼叫时需要做出对应的插座才能使用 不过在制作 DLL 时也可以附带做出公版插座给要用的人自己焊 [这即是你 3. 在问的 .lib 的内容, 里面就是包含了自动生成的 GetProcAddress] 当然就算是公版插座, 东西还是有一定的焊法 所以当然也会有说明书表示要怎麽焊上这个插座 [即是 .dll 所随附的 header file] 因此你所焊上去的是这个公版插头, 实际的元件则是在执行时找出来插上去 [执行时寻找对应的 dll 载入函式] 也因为是执行时才找出来, 所以可以直接把元件包整包换掉 [抽换 dll] 只要插头还是对的就能够插上去用 同样的原因, 用这个元件的人跟元件本身是由不同人以不同方式制作也没有关系 只要插头插得上去就行了 [使用者跟 dll 使用不同语言写作也是没问题的, 只要 ABI 接口有对上即可] : 4. : API网路上有说是一种概念 : 如果自己要撰写程式 使用API来创造自己想要的功能或取得第三方的资讯 : 是不是只能使用第三方指定的软体去开发 : 还是说可以用所有的软体开发 然後用DLL去连结就可以??(第二题的问题之一) : 谢谢各位了解的大大们不吝惜教导 : 先在这边感谢 API 是比较高阶的概念 它是属於我的系统要用什麽架构下去运作的设计概念 像是你要用别人设计好的板子 要怎麽去跟板子沟通传输资料表示你要做的事情这些就是这块板子的 API 因此其中的的函式呼叫跟资料结构什麽的都是操作细节 重要的是整个系统的概念 那因为整套系统是绑在一起的, 自然就会将整个系统的函式制作成 lib 或 dll 让其他人直接把这一整包系统拉进他要写的东西里面去 (有些更大一点的系统还会分门别类打包 某些类别的系统包在一个档案里, 这样没用到这个系统就可以不用拉它进来) 有的系统会提供一些比较方便使用这套系统的人进行开发的工具 但这并不表示你一定要用它的工具进行开发 -- 'You've sort of made up for it tonight,' said Harry. 'Getting the sword. Finishing the Horcrux. Saving my life.' 'That makes me sound a lot cooler then I was,' Ron mumbled. 'Stuff like that always sounds cooler then it really was,' said Harry. 'I've been trying to tell you that for years.' -- Harry Potter and the Deathly Hollows, P.308 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.39.85
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1438787642.A.8B3.html
1F:→ Orilla: 感谢 大致懂 114.26.189.170 08/05 23:44







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP