2012-07-22 26 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