我正在创建一个要在 vb.net 中导入的 c++ dll。
我发现在 dll 的头文件中组织导入和导出的最佳方法是以下类型:
#ifndef MY_DLL_EXPORTS
#define MY_DLL_EXPORT __declspec(dllexport)
#else
#define MY_DLL_EXPORT __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C"
{
#endif
MY_DLL_EXPORT BOOL my_function(uint32_t x);
#ifdef __cplusplus
}
#endif
我的问题是,应该在哪里定义 __cplusplus 和 MY_DLL_EXPORTS ?
我以前没有这样做过,我似乎无法在代码中找到它的位置。我读了一些关于将这些定义放在
Project Properties -> Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions
我是否将它们放在 DLL 的项目属性中?如果我这样做了,在使用这个 DLL 时,它们是否总是被定义,所以 if 语句总是会转到dllimport
?
另外,__cplusplus
已经定义还是必须定义它?