我是C新手,我有以下C函数:
typedef unsigned short (API_ENTRY _DLL_PTR T_Lec_Dictionnaire)
( IN unsigned char FARPTR pcChemin,
IN short sNoTable,
IN char tcCode[9],
IN char tcPeriode[50],
OUT char FARPTR szLibelle,
IN_OUT short FARPTR psLgLibelle,
OUT unsigned short FARPTR pusCodeErreur);
我对szLibelle变量有疑问:我无法确定要声明的类型以及如何使用它。
我试过
char libelle[] = "";
char * szLibelle = &libelle;
但函数返回错误代码54,这意味着"参数的值不合适"。
根据" sz"前缀似乎我的声明不正确,但我无法弄清楚为什么...... 文档说,对于这个参数:"包含由地址传递的字符的内存区域" (抱歉,从法语中翻译出来......)。
先谢谢你的帮助。
答案 0 :(得分:0)
你的解散是100%正确的!但事实是第5个参数的处理方式取决于INOUT psLgLibelle的值。
博士对此很清楚......
再次感谢您的帮助!