0
#include"symapi.h"


int SymInit               (char                          * db_filename,
                           SYMINIT_ACCMODE_T               access_mode,
                           int                           * p_handle,
                           SYMAPI_CONNECTION_BLK_T       * cblk,
                           char                          * vendor_id)
{
return 0;
}

g++ -o symapi.o -c sym.cpp

sym.cpp:4:错误:数字常量之前的预期标识符

sym.cpp:4:错误:数字常量前应有“,”或“...”

编译这段代码时出现上述错误。我不知道如何进行。我已经从标题中复制了函数原型,并正在尝试定义它。我的头文件真的很大。所以上传到谷歌驱动器:https ://docs.google.com/file/d/0B8NCZDm0ClHVWFM3Qm5wU0MwUE0/edit?usp=sharing 请帮忙

4

1 回答 1

2

g++ -E test.cpp显示以下内容。-E停止预处理。

# 2 "test.cpp" 2
int SymInitV(char * db_filename, SYMINIT_ACCMODE_T access_mode, int * p_handle, SYMAPI_CONNECTION_BLK_T * cblk, char * vendor_id, 0x07000393)
{
    return 0;
}

看到最后一个参数是一个简单的数字,没有与之关联的数据类型。

SysInit 是在 symapi.h 中定义的宏,被以下宏替换

#define SymInit(f, a, h, cb, vid) SymInitV(f, a, h, cb, vid, SYMAPI_C_VERSION)

而是尝试实现 SymInitV 函数,该函数采用以下声明

int SymInitV(char * db_filename, SYMINIT_ACCMODE_T access_mode, int * p_handle, SYMAPI_CONNECTION_BLK_T * cblk, char * vendor_id, int version)
于 2013-08-19T11:03:28.977 回答