我試圖包括用C庫中的功能的結構的++參數不相容。參數類型的「常量[structname] *」是與類型「常量[structname] *」
的結構是這樣的:
struct NET_IN_OPERATE_FACERECONGNITIONDB{
DWORD dwSize;
EM_OPERATE_FACERECONGNITIONDB_TYPE emOperateType;
FACERECOGNITION_PERSON_INFO stPersonInfo;
char *pBuffer;
int nBufferLen;
}; `
和它包含的功能是這樣的:
BOOL CLIENT_OperateFaceRecognitionDB(
LLONG lLoginID,
const NET_IN_OPERATE_FACERECONGNITIONDB *pstInParam,
NET_OUT_OPERATE_FACERECONGNITIONDB *pstOutParam,
int nWaitTime = 1000,
);
我寫了下面幾行定義結構的指針:
const struct NET_OUT_OPERATE_FACERECONGNITIONDB{
DWORD dwSize = sizeof(NET_IN_OPERATE_FACERECONGNITIONDB);
EM_OPERATE_FACERECONGNITIONDB_TYPE emOperateType = NET_FACERECONGNITIONDB_ADD;
FACERECOGNITION_PERSON_INFO FACERECOGNITION_PERSON_INFO1;
char *pBuffer = '\0';
int nBufferLen = 10;
} *pstInParam;
但是當我使用這一行將該結構調用到函數中時:
CLIENT_OperateFaceRecognitionDB(m_LoginID, pstInParam, pstOutParam, 1000);
我收到一個錯誤說
參數類型的「常量NET_IN_OPERATE_FACERECONGNITIONDB *」是不符合類型的參數「常量NET_IN_OPERATE_FACERECONGNITIONDB *」
這是非常不尋常的,因爲無論是參數和參數是相同的類型。我做了什麼錯誤?
跆拳道是「結構的指針」? –
您的'pstInParam'定義看起來很奇怪。這是一個指針,但你想分配'NET_OUT_OPERATE_FACERECONGNITIONDB'成員被指向的實際上不保留該結構的任何記憶。 –