导出 C 函数以用于 C 或 C++ 语言可执行文件
如果在 DLL 中有用 C 编写的函数,则可以使用预处理器宏从 C 语言和 C++ 语言代码轻松访问这些函数。 __cplusplus
预处理器宏指示正在编译的语言。 当从 C++ 语言代码调用时,可以使用它来声明具有 C 链接的函数。 如果使用此方法并为 DLL 提供头文件,则 C 和 C++ 用户可以在不进行任何更改的情况下使用这些函数。
下面的代码演示 C 和 C++ 客户端应用程序可以使用的头文件:
// MyCFuncs.h
#ifdef __cplusplus
extern "C" { // only need to export C interface if
// used by C++ source code
#endif
__declspec( dllimport ) void MyCFunc();
__declspec( dllimport ) void AnotherCFunc();
#ifdef __cplusplus
}
#endif
有时可能需要将 C 函数链接到 C++ 可执行文件,但函数声明头文件尚未使用上述技术。 仍然可以从 C++ 调用函数。 在 C++ 源文件中,包装 #include
指令以防止编译器修饰 C 函数名称:
extern "C" {
#include "MyCHeader.h"
}
你希望做什么?
你想进一步了解什么?
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈