微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 库的.h文件中“{return 0;}”或“{;}”的原因

我目前正在开发一个项目,其中包含一些陈旧的文档错误代码,并且我试图浏览各种.h文件,他们提供了有关所有包含的所有函数的完整文档(定义保存在.lib中)和.dll文件).其中一个.h文件具有不仅声明的函数,而且还使用简单的返回语句或空语句来定义
class DLL ExampleLibraryClass {
public:
    int exampleGetValue() {return 0;}
    void exampleSetValue(Type val) {;}
    void exampleActionFxn() {;}
};

这些将是我期望返回当前变量状态或执行某些操作的函数,这就是为什么这让我感到困惑.

另外:

>我使用了Dependency Walker,发现每个函数在dll中都有匹配的定义.
>关键字DLL已定义为

#ifndef _PWSDLL_
#   define _PWSDLL_
#   define WINCALL  _stdcall
#   ifdef _USRDLL
#       define DLL  __declspec(dllexport)
#   else
#       define DLL  __declspec(dllimport)
#   endif
#endif

_USRDLL未定义,因此DLL定义为__declspec(dllimport)

我的问题很少涉及空定义的明显效果(我没有做任何事情,并且已经在SO上进行了讨论)以及更多关于.h文件以这种方式编写以及如何利用文件的原因.这是一种常见的还是已知的做法?链接器是否仍会在链接库中查找函数的定义?还有其他代码片段我应该寻找更多线索吗?或者从最广泛的意义上讲,我该如何回应呢?

非常感谢,如果您需要更多信息来解决这个问题,请告诉我,我不确定在这个问题上究竟有什么重要.

编辑:在示例代码添加了遗忘的返回类型.

编辑:添加了有关DLL定义的注释.

解决方法

将此代码用于某些用途的一种情况是覆盖这些函数.这些函数包含一些代码,可以在以后覆盖.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐