我正在尝试在C++应用程序中使用OpenCA(libPKI)库.但是,当包含文件pki_x509_data_st.h时,会遇到以下代码片段:
typedef struct pki_x509_callbacks_st {
/* ---------------- Memory Management -------------------- */
void * (*new) (void );
void (*free) (void *x );
void * (*dup) (void *x );
Run Code Online (Sandbox Code Playgroud)
由于"新"指针声明,这将无法编译.
我怎样才能使它工作?
更新
重命名"new"变量后,我遇到了一些新问题("在struct之后使用typedef name"等).我想避免改变过多的旧C代码(修改库标题会让我感到紧张)所以我决定只创建一个最小的隔离层.
#define new its_reserved_dammit
#include <pki_x509_data_st.h>
#undef new
Run Code Online (Sandbox Code Playgroud)
我怀疑链接器会对它感到不安.
但是,使用不准备使用C++的C库,链接器无论如何都会抱怨,因为标题缺少重要的extern "C"包装器...
| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |