亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建DLL時導出所有符號

創建DLL時導出所有符號

C++
桃花長相依 2019-10-28 10:59:01
使用VS2005,我想創建一個DLL并自動導出所有符號,而無需在各處添加__declspec(dllexport)且無需手動創建.def文件。請問這是一種方法嗎?
查看完整描述

3 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

可以辦到...


我們在這里做的方法是使用鏈接器的/ DEF選項來傳遞包含出口列表的“模塊定義文件”。我從您的問題中了解到您了解這些文件。但是,我們不是手工完成的。導出列表本身是由dumpbin / LINKERMEMBER命令創建的,并通過簡單的腳本將輸出操縱為模塊定義文件的格式。


設置需要很多工作,但是它允許我們編譯在Windows上沒有Unix的dllexport聲明的情況下創建的代碼。


查看完整回答
反對 回復 2019-10-28
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

我編寫了一個小程序來解析.lib文件中“ dumpbin / linkermember”的輸出。我有超過8,000個函數引用要從一個DLL導出。

在DLL上執行此操作的問題在于,必須一次鏈接沒有導出定義的DLL才能創建.lib文件,然后生成.def,這意味著您現在必須再次將DLL與.def文件重新鏈接為實際導出參考。

使用靜態庫更容易。將所有源代碼編譯為靜態庫,運行dumbin,使用小程序生成.def,然后在導出名稱可用的情況下將庫鏈接到DLL中。

不幸的是,我的公司不允許我向您顯示來源。所涉及的工作是識別def文件中轉儲輸出中不需要哪些“公共符號”。您必須丟棄很多引用,NULL_IMPORT_DESCRIPTOR,NULL_THUNK_DATA,__imp *等。


查看完整回答
反對 回復 2019-10-28
  • 3 回答
  • 0 關注
  • 1431 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號