2012-07-22 24 views
1

我想創建一個Windows DLL,我正在工作的一些Visual C++項目。我的更大目標是創建一個可以被客戶鏈接的dll,而不用擔心(太多)關於我的dll編譯方式的細微差別。關於建立一個Windows DLL的建議

  • 我想更好地理解,如果有幾個基本的編譯器標誌,我應該使用,廣泛接受。
  • 如果我需要從Dll中導出,應該如何編寫結構體是否有普遍接受的過程。特別是對包裝對齊不太敏感的東西。客戶端可能有4字節的包裝,或其他用於他們自己項目的東西。如何確保不會影響我的標頭是否對齊8byte。
  • 是否創建一個win32 DLL或MFC DLL的問題。

我做我的結構等項目的類是基於這裏提到的思路導出: http://www.codeproject.com/Articles/28969/HowTo-Export-C-classes-from-a-DLL

+0

DLL在您的界面上引入了一個很大的限制。一個DLL的接口基本上減少到C,所以你真的需要有一個很好的理由來使用DLL來證明懲罰。 – tenfour 2012-07-22 15:28:32

+0

鏈接文章中的所有內容都是準確的,除此之外很難看到您想要了解的內容。 – 2012-07-22 15:43:25

+0

感謝您的意見。任何關於創建一個win32 DLL與MFC DLL的想法。如果我真的不需要MFC庫,是否有創建MFC dll的開銷。 – Goutham 2012-07-22 16:10:25

回答

1

一些點女巫越過我的腦海裏。

  1. 不要在公共方法簽名或結構中使用stl對象。
  2. 如果可能,請在簽名中只使用簡單的數據類型。
  3. 如果您必須導出一些結構,請在標題中定義打包。
+0

我會打包我的結構。但是我遇到了一個奇怪的問題[這裏描述](http://stackoverflow.com/questions/11592775/pointers-and-release-build-in-visual-studio)。不知道我明白。 – Goutham 2012-07-22 16:07:11