关于构建windows dll的建议
Recommendations for building a windows dll
我正试图从我正在处理的几个visual c++项目中创建一个Windows dll。我的更大目标是创建一个可以由客户端链接的dll,而不必担心(太多)我的dll是如何编译的细微差别。
- 如果有一些基本的编译器标志可以被广泛接受,我想更好地理解
- 如果我需要从Dll中导出,那么应该如何编写结构,是否有公认的过程。尤其是对包装对齐不会太敏感的东西。客户可能有一个4字节的包装,或者他们自己的项目的其他东西。如何确保这不会影响我的标题是否对齐了8字节
- 创建win32 dll或MFC dll是否重要
我确实构建了我的项目,以便根据这里提到的想法导出类:http://www.codeproject.com/Articles/28969/HowTo-Export-C-classes-from-a-DLL
我脑海中闪过一个要点。
- 不要在公共方法签名或结构中使用stl对象
- 如果可能的话,在签名中只使用简单的数据类型
- 如果必须导出一些结构,请在标头中定义包装
看看创建DLL的最佳实践,这是基本的东西,但经常被忽视的问题,可能会导致非常丑陋的副作用。
相关文章:
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- Windows 链接器是否使用 LoadLibrary 解析 DLL 中未定义的符号?
- 如何链接 DLL 以供 LoadLibrary() 使用(在 Windows 上的 C++ 中)并从调用 exe 导入变
- 我可以從 DLL 中匯出 Windows CRITICAL_SECTION嗎?
- 我可以用C++/WinRT编写一个DLL,供windows桌面应用程序(而不是UWP)或Unity插件使用吗
- 名为DLL的C++windows服务程序工作不正常
- sf::Windows上的音乐:api-ms-win-crt-locale-l1-1-0.dll:无法打开共享对象文件
- 从Windows 10编译VS2017在Windows 7和…上部署..找不到DLL
- 从 dll 调用 opencv 垫到 Windows 表单,图像出现故障
- 在通用 Windows 应用程序C++上使用 win32 DLL 库
- 从 Python 调用 Windows DLL 函数时出错
- 从 C# Windows 应用程序调用 C dll 会导致 svchost.exe 崩溃
- 在 gdb (Windows) 中添加 dll 的调试符号
- UCRTbase.dll涉及TCP通信的C ++ Windows Embedded Standard崩溃
- 链接 .lib 并在 Windows 中使用 .dll 在 C++ 在 Eclipse 中
- Windows错误:异常:使用从C++到Python的ctypes创建DLL时出现访问冲突或Windows错误193
- C++ - 从DLL(Windows,Visual Studio)自动加载类
- SWIG c++ Java DLL Windows