- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我只是 c++ 的初学者,对我来说这似乎是不必要的代码膨胀。我知道 dllimport/export 用于共享 dll 功能,但仅使用公共(public)/私有(private)访问器有什么问题?
如果我正在制作一个大型 dll 库,似乎我必须检查每个函数/类并确保将其导出。使用托管 dll(如来自 c#)我不需要做任何事情。将它导入到我的项目中,只要该函数是公共(public)的就可以访问它!
最佳答案
因为当您创建更大的 dll(或共享库)时,您可能希望将其组合成多个目标文件,但又不想在每个目标文件中公开所有公共(public)(对链接器)符号。也就是说,在某些情况下,一个符号在一个目标文件中是公共(public)的,其唯一目的是使其可用于同一库中的另一个目标文件。
请注意,public
和private
访问器与对象文件中的私有(private)符号并不完全相同。对象文件中的私有(private)符号(使用全局 static
限定符创建的 fx)文件意味着该符号在对象文件之外根本不可见,而 private
访问器仅意味着无法从类外部访问符号(它仍然可以将其作为公共(public)对象文件放入目标文件中,因为它可以从另一个翻译单元中的同一类访问)。
如果你想导出目标文件中的所有公共(public)符号,可能有一种机制可以做到这一点,而不必诉诸明确地将每个符号标记为 dllexport
- 你必须检查文档,显然有 a way在微软。
关于 dllimport
的故事,您可以在这里阅读:Why/when is __declspec( dllimport ) not needed?
关于c++ - dllexport/dllimport 背后的推理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32003015/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!