在Microsoft Visual C++中,可以使用/ Gz編譯器選項將默認調用約定設置爲stdcall。如何在MinGW g ++中做到這一點?如何更改MinGW中的默認調用約定gcc
0
A
回答
2
似乎是一個很好的方式去在腳下射擊自己;更好的是,國際海事組織明確地將默認值保留爲__cdecl
,並明確聲明__stdcall
函數,因此不存在混淆的可能性。但是,如果你決定這樣做,一個好的開始就是閱讀GCC在線文檔;嘗試使用谷歌搜索「gcc手冊」,這應該帶你(e.g.) here。
確保選擇與您的GCC版本相匹配的手冊版本,然後參考「功能屬性」部分;這應該將您指向-mrtd
選項作爲您想要執行的操作的候選對象。在選擇指數看這件事,並按照參考看到:
-mrtd
使用不同的函數調用約定,在其功能 稱取的參數固定數量與回報指令,它在返回時彈出它們的參數。由於不需要在該處彈出 參數,因此在調用者中將一條指令保存爲 。
您可以指定使用此調用序列調用具有函數屬性「stdcall」的單個函數。您也可以使用函數屬性'cdecl'覆蓋-mrtd選項 。請參閱 函數屬性。
警告:此調用約定與Unix上通常使用的調用約定不兼容,因此如果需要調用 使用Unix編譯器編譯的庫,則不能使用它。另外,您必須爲所有帶有可變數量參數(包括printf)的函數提供函數原型;否則 爲這些功能的調用生成不正確的代碼。
此外,如果您調用的函數參數太多,嚴重錯誤的代碼結果。 (通常,額外的參數 無害忽略。)
相關問題
- 1. 如何更改GCC中的默認搜索路徑?
- 2. 如何在Xcode 6中更改約束的默認優先級?
- 3. GCC cdecl調用約定
- 4. 更改默認的調色板中ggplot
- 5. mingw只升級gdb而不更改gcc
- 6. 如何更改ServiceStack中的默認ContentType?
- 7. 如何更改Crawler4j中的默認crawlStorageFolder?
- 8. 如何更改QDialogBox中的默認QPushButton
- 9. 如何更改autoconf中的默認值
- 10. 如何更改Postgres中的默認client_encoding?
- 11. 如何更改app.config中的默認桶
- 12. 更改默認的命名約定PhpStorm 2016.3
- 13. 是否有更改默認的Grails服務命名約定?
- 14. 如何更改下拉列表中的默認空白默認值(更改後)
- 15. 在Rails中使用約束更改默認root_path一些用戶
- 16. 如何更改默認選中=「選中」
- 17. 如何更改wicket中的調色板的默認標題?
- 18. JAX-WS和Enunciate - 如何更改Enunciate的默認XSD命名約定
- 19. 如何更改RxJS使用的默認調度程序?
- 20. 如何更改圖像中紅色的默認色調?
- 21. 如何計算默認約默認約60英里yii
- 22. 如何更改默認的GCC編譯器以便在Linux上使用MPI CentOS
- 23. 更改默認的NetBeans調試器?
- 24. 默認約定:UIInterfaceOrientationLandscapeRight或UIInterfaceOrientationLandscapeLeft
- 25. 流利NHibernate默認約定
- 26. 用於設置默認調用約定的編譯器選項?
- 27. GCC忽略調用約定屬性
- 28. 如何將字體更改爲Xml中定義的默認值?
- 29. 如何更改WPF中綁定選項的默認值?
- 30. 如何更改Django ChoiceField中的默認選定選項?