小编ned*_*ech的帖子

C++ 将导出的 DLL 函数从 int 更改为 BOOL 是否安全?

我正在处理一个遗留的 DLL,它有很多东西是从 DOS C 代码开始的,当时还没有布尔值的概念。但 DLL 仍在积极开发中并且仍在不断发展。许多旧的导出方法具有如下签名:

     _declspec(dllexport) int IsConditionTrue();
Run Code Online (Sandbox Code Playgroud)

从名称来看,该函数应该返回TRUE/FALSE值,但由于它被声明为int,程序员必须假设 API 可以返回任何内容。我正在对 DLL 进行一轮更改,并且想知道更改这些声明是否安全,BOOL以代替澄清预期的 API 用法:

     _declspec(dllexport) BOOL IsConditionTrue();
Run Code Online (Sandbox Code Playgroud)

BOOL被声明为typedef int BOOL;,所以我认为编译器或导出函数的已编译使用者应该没有区别,对吧?我只是不想对十几个导出函数进行更改,然后花一周的时间寻找并重新编译消耗导出版本的损坏的可执行文件int

c++ integer boolean dllexport

0
推荐指数
1
解决办法
80
查看次数

标签 统计

boolean ×1

c++ ×1

dllexport ×1

integer ×1