[問題] dll export symbol的疑問
有一個疑問
因為跟dll產生方式不是很熟
一般我看教學文件 或是 VC的dll template
都是在要export的method or variable
前面冠上 __declspec(dllexport)
就連class or struct也是
但衍伸了一些問題
1. 我知道可以用LoadLibrary + GetProcAddress來動態使用
可是如果我只有對方的dll (沒有.h and .lib)
我該怎麼把
例如
MyType API(MyType2* obj); 給 load回來
因為我並沒有.h 我根本不知道MyType是什麼
這樣就很矛盾 我冠上 __declspec(dllexport)在struct前面要幹嘛?
除非對方有.h , 但有了.h 就不用寫 __declspec(dllexport)了吧?
這個struct都認得到了
所以問題可以變成 : __declspec(dllexport) 冠在class or struct 的用途是?
還是不寫上去run time會出問題
2. 我常常會看到有人export dll 搭配一個.def檔案
這很怪....def會記錄你export那些symbol 可是...
我還是不知道你的function prototype 我要怎麼使用你dll export的method..
.def給我的理解似乎是
你要是在.def裡面寫的symbol
就不用再code裡面冠上 __declspec(dllexport)
但.def真正的用途 是什麼 我實在不知道
若只是一個export API list....那我用dumpbin自己看就可以了
像是sqlite 他也只提供.dll + def...
http://www.sqlite.org/download.html Precompiled Binaries For Windows
比較好奇我不去偷看他.h 我怎麼可能會知道該怎麼invoke他的API
這樣看來 還是把.h .lib + dll 都給會最方便...這有甚麼缺點嗎?
除了program被載入需要花時間load dll外?
3. VC的dll template可以勾選 要不要export symbol....
我比較納悶的是 不溝的話 那這dll要幹嘛? 你不export symbol 那dll還有甚麼用途嗎
以上是我測試後 引發的一些疑惑跟想法
請各位有經驗的板友提供點意見
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.138.160
推
05/31 00:06, , 1F
05/31 00:06, 1F
→
05/31 00:08, , 2F
05/31 00:08, 2F
→
05/31 00:09, , 3F
05/31 00:09, 3F
→
05/31 00:11, , 4F
05/31 00:11, 4F
→
05/31 00:13, , 5F
05/31 00:13, 5F
→
05/31 00:19, , 6F
05/31 00:19, 6F
→
05/31 00:20, , 7F
05/31 00:20, 7F
→
05/31 00:20, , 8F
05/31 00:20, 8F
→
05/31 00:21, , 9F
05/31 00:21, 9F
→
05/31 00:23, , 10F
05/31 00:23, 10F
→
05/31 00:23, , 11F
05/31 00:23, 11F
→
05/31 00:23, , 12F
05/31 00:23, 12F
→
05/31 00:25, , 13F
05/31 00:25, 13F
→
05/31 00:25, , 14F
05/31 00:25, 14F
→
05/31 00:25, , 15F
05/31 00:25, 15F
→
05/31 00:26, , 16F
05/31 00:26, 16F
→
05/31 00:26, , 17F
05/31 00:26, 17F
→
05/31 00:27, , 18F
05/31 00:27, 18F
→
05/31 00:27, , 19F
05/31 00:27, 19F
推
05/31 00:33, , 20F
05/31 00:33, 20F
→
05/31 00:33, , 21F
05/31 00:33, 21F
→
05/31 00:39, , 22F
05/31 00:39, 22F
→
05/31 00:40, , 23F
05/31 00:40, 23F
→
05/31 00:41, , 24F
05/31 00:41, 24F
→
05/31 00:42, , 25F
05/31 00:42, 25F
→
05/31 00:43, , 26F
05/31 00:43, 26F
→
05/31 00:45, , 27F
05/31 00:45, 27F
→
05/31 00:46, , 28F
05/31 00:46, 28F
推
05/31 01:01, , 29F
05/31 01:01, 29F
→
05/31 01:02, , 30F
05/31 01:02, 30F
→
05/31 01:05, , 31F
05/31 01:05, 31F
→
05/31 01:06, , 32F
05/31 01:06, 32F
→
05/31 01:07, , 33F
05/31 01:07, 33F
→
05/31 01:07, , 34F
05/31 01:07, 34F
→
05/31 01:07, , 35F
05/31 01:07, 35F
→
05/31 01:08, , 36F
05/31 01:08, 36F
→
05/31 01:08, , 37F
05/31 01:08, 37F
→
05/31 01:09, , 38F
05/31 01:09, 38F
→
05/31 01:09, , 39F
05/31 01:09, 39F
→
05/31 01:09, , 40F
05/31 01:09, 40F
→
05/31 01:09, , 41F
05/31 01:09, 41F
推
05/31 01:10, , 42F
05/31 01:10, 42F
→
05/31 01:10, , 43F
05/31 01:10, 43F
→
05/31 01:11, , 44F
05/31 01:11, 44F
→
05/31 01:11, , 45F
05/31 01:11, 45F
→
05/31 01:11, , 46F
05/31 01:11, 46F
→
05/31 01:11, , 47F
05/31 01:11, 47F
→
05/31 01:12, , 48F
05/31 01:12, 48F
→
05/31 01:12, , 49F
05/31 01:12, 49F
→
05/31 01:13, , 50F
05/31 01:13, 50F
→
05/31 11:01, , 51F
05/31 11:01, 51F
→
05/31 11:01, , 52F
05/31 11:01, 52F
→
05/31 11:02, , 53F
05/31 11:02, 53F
→
05/31 11:09, , 54F
05/31 11:09, 54F
→
05/31 12:52, , 55F
05/31 12:52, 55F
→
05/31 12:53, , 56F
05/31 12:53, 56F
→
05/31 12:53, , 57F
05/31 12:53, 57F
→
05/31 12:53, , 58F
05/31 12:53, 58F
→
05/31 12:54, , 59F
05/31 12:54, 59F
→
05/31 12:55, , 60F
05/31 12:55, 60F
→
05/31 12:55, , 61F
05/31 12:55, 61F
→
05/31 13:03, , 62F
05/31 13:03, 62F
推
05/31 15:33, , 63F
05/31 15:33, 63F
→
05/31 15:34, , 64F
05/31 15:34, 64F
→
05/31 15:34, , 65F
05/31 15:34, 65F
→
05/31 20:20, , 66F
05/31 20:20, 66F
→
05/31 22:28, , 67F
05/31 22:28, 67F
→
05/31 22:29, , 68F
05/31 22:29, 68F
→
05/31 22:30, , 69F
05/31 22:30, 69F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章